Presentation: Designed For Deployment


11:50am - 12:40pm



Software design is often seen as the process of introducing abstractions and protocols to simplify the act of composing larger programs from smaller ones.

However, these days, hardly any complex system is a monolith and is often composed of many interacting components (services, modules, other applications etc). In addition, infrastructure-as-code tools such as Chef are as much a part of the codebase as application code. When development teams run such systems, a good chunk of their time involves triaging errors or triaging user facing problems. The process of analysis and reasoning about a running system or designing for deployment concerns is very different from the process of synthesis and composition involved in writing application software. In this talk, I would like to explore some patterns and lessons learned in deploying & maintaining a complex system ( over the past few years.

Speaker: Badri Janakiraman

Developer @ThoughtWorks Inc

Badri is a developer with ThoughtWorks Studios. For over 15 years, he has worked with ThoughtWorks as a consultant/coach with various clients and then as a developer/tech-lead on the Mingle team. From 2012 to 2015, he was the the Product Manager of Snap, a hosted Continuous Delivery tool that seeks to lower the barrier to entry to CD. Since 2015, he has gone back to development and continues to build and maintain Snap.

Find Badri Janakiraman at

Similar Talks

Tech Lead of Manhattan Team @Twitter
Staff Engineer, JVM Team @Twitter
Technical Manager Aurora / Mesos Team @Twitter
Provisioning Engineering SE @Twitter
Apache Mesos PMC member, Committer, & SE @Mesosphere
Software Engineer @Dropbox



Monday Nov 7

Tuesday Nov 8

Wednesday Nov 9

Conference for Professional Software Developers