Engineering the Future of Software
November 13–14, 2016: Training
November 14–16, 2016: Tutorials & Conference
San Francisco, CA

Designed for deployment

Badrinath Janakiraman (ThoughtWorks)
2:15pm–3:05pm Tuesday, 11/15/2016
Location: Olympic
Average rating: *****
(5.00, 1 rating)

What you'll learn

  • Explore patterns and lessons ThoughtWorks learned while deploying and maintaining distributed platform Snap CI


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 systems are monoliths—instead, they are 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. Badrinath Janakiraman explores patterns and lessons learned while deploying and maintaining a complex system: Snap CI.

This session is sponsored by ThoughtWorks.

Photo of Badrinath Janakiraman

Badrinath Janakiraman


Badrinath Janakiraman is a developer with ThoughtWorks Studios. For over 15 years, Badri has worked at ThoughtWorks as a consultant/coach for various clients and as a developer and tech lead on the Mingle team. Previously, he was the the product manager of Snap, a hosted continuous delivery tool that seeks to lower the barrier to entry to CD.