Building and maintaining complex distributed systems
June 19–20, 2017: Training
June 20–22, 2017: Tutorials & Conference
San Jose, CA

Building distributed systems is accessible. I promise.

Jamie Winsor (Chef Software)
2:10pm–2:50pm Thursday, June 22, 2017
Distributed Systems
Location: 230 B
Level: Beginner
Average rating: ****.
(4.50, 4 ratings)

Who is this presentation for?

  • Software engineers, server programmers, and network programmers

Prerequisite knowledge

  • A working knowledge of at least one programming language and the basics of TCP/UDP communication over networked sockets

What you'll learn

  • Learn the basics of building and understanding distributed systems
  • Understand things that distributed systems are good at (and things they are bad at)
  • Know how to think about applications when building them in a distributed manner


Understanding and building distributed systems can be a daunting task, but like most other software development patterns, distributed systems mimic concepts in the real world that you’re already familiar with. Jamie Winsor walks you through building a mental model to help you understand the basics of building distributed systems based on concrete, real-world systems, equipping you with the ability to digest the academic papers that form the basis of distributed systems as we know it.

Not every software development technique is a perfect fit for every problem, and distributed programming is no different. Jamie outlines the pros and cons of building distributed programs to demonstrate when you may or may not want to use this technique. As you explore these trade-offs, you’ll learn how understanding distributed systems helps you find solutions to some of your unanswered problems as well as new solutions to problems you may have previously seen as solved. Jamie discusses his own experience in how rethinking a problem with an eye for distributed systems turned some of his career’s work on its head and gave him a new passion for an old and tiresome problem.

Photo of Jamie Winsor

Jamie Winsor

Chef Software

Jamie Winsor is a lead engineer at Chef Software and the coauthor of Habitat, an open source project built upon distributed system protocol Butterfly to provide a self-healing, self-configuring, stack-agnostic, frictionless abstraction for running applications—regardless of their complexity—to software developers. Jamie has been a software engineer in the video game industry for 10 years, focusing on networked application servers on such titles as League of Legends, Lord of the Rings Online, and Dungeons and Dragons Online. One of Jamie’s responsibilities in his game development tenure was to bring what we today know as DevOps into the daily lives of the other developers on his team, which Jamie accomplished by building, evangelizing, and teaching methods to his peers. He draws on that experience today in building Habitat, as he helps enable all software developers, regardless of their experience, bring their ideas to life without investing in the details of operationalizing an application.

Leave a Comment or Question

Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?

Join the conversation here (requires login)


06/27/2017 4:30am PDT

Great session Jamie. Will you be posting slides or better yet a video of this session?