We all strive for better quality and beauty in our design and code, but the guidelines and rules to achieve them are inherently fuzzy. Moreover, in a world with huge appetite for new software, necessity and pace often trump craftsmanship, and developers don't always get the break they need to refine their work.
After working on datacenter caching for years, I had the luxury to start a project – Pelikan cache (pelikan.io) – with betterment as a primary goal. This talk shares our stories as a case study, providing a bridge between design theory and practice, past lessons and future guidelines. This is an account of how we navigate the complex world of constraints and goals in real-life systems. By focusing on the process itself rather than the results, we hope our experiences will provide some insight into the general development life cycle, and inspire others to improve, and more importantly enjoy, the development of software and distributed systems.
Yao Yue is a member of Twitter Platform. She is the tech lead and manager of the Cache Team, and has spent the past few years maintaining, designing and implementing various cache-related projects. She maintains several open source projects, including Twemcache and Twemproxy. Yao has a particular interest in building and simplifying systems deployed at-scale. Over the years she has spent much time studying and playing with computer networks, various distributed systems, databases, and parallel programming. Yao has a BS in Math and Physics and a MS in Computer Science. Before joining Twitter, she interned at Facebook, NVIDIA and IBM Research. In her spare time, Yao has been introducing programming to middle/high school girls via drawing and games. She is also a baker.