Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scaling Happiness Horizontally

Scaling Happiness Horizontally

This talk will discuss how Gilt has grown its technology organization to optimize for engineer autonomy and happiness and how that optimization has affected its software. Conway's Law states that an organization that designs systems will inevitably produce systems that are copies of the communication structures of the organization. This talk will work its way between both the (gnarly) technical details of Gilt's application architecture (something we internally call "LOSA") and the Gilt Tech organization structure. I'll discuss the technical challenges we came up against, and how these often pointed out areas of contention in the organization. I'll discuss quorums, failover, and latency in the context of building a distributed, decentralized, peer-to-peer technical organization.

Presented at RICON|East 2013


Mark Wunsch

May 13, 2013


  1. Scaling Happiness Horizontally Mark Wunsch @markwunsch

  2. None
  3. None
  4. Agenda ‣ Gilt Organization ‣ Gilt Architecture ‣ Organization ⟳

  5. Conway’s Law “Organizations which design systems…are constrained to produce designs

    which are copies of the communication structures of these organizations.”
  6. Conway’s Law? “Organizations which design systems…are doomed to produce designs

    which are copies of the communication structures of these organizations.”
  7. None
  8. None
  9. None
  10. None
  11. shared nothing architecture

  12. “Resources”

  13. ‣ Front End Engineer ‣ Back End Engineer ‣ UX

    Designer ‣ Visual Designer ‣ Product Manager ‣ Project Manager ‣ QA Engineer
  14. Deadlock.

  15. None
  16. A monolith is a mutex.

  17. None
  18. highly concurrent, distributed, & fault tolerant

  19. http://tmblr.co/ZcvzqxsOM8 Teams Ingredients Initiatives KPIs

  20. Initiatives & KPIs

  21. Teams & Ingredients

  22. None
  23. Hive Mind! vs Pen Pals! [^1] [^1]: http://livestre.am/3ZHDH

  24. L O S A

  25. Lots Of Small Applications

  26. Fallacies of Distributed Computing Organizations 1. The network is reliable.

    2. Latency is zero. 3. Bandwidth is infinite. 4. The network is secure. 5. Topology doesn’t change. 6. There is one administrator. 7. Transport cost is zero. 8. The network is homogeneous. http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing
  27. Consistency& Availability& Partition Tolerance.

  28. Consistency& Availability& Partition Tolerance. [^2] [^2]: http://codahale.com/you-cant-sacrifice-partition-tolerance/

  29. None
  30. https://code.google.com/p/gerrit/

  31. None
  32. None
  33. http://tomayko.com/writings/adopt-an-open-source-process-constraints

  34. None
  35. Appendix 1. http://www.melconway.com/Home/Conways_Law.html 2. http://en.wikipedia.org/wiki/Dining_philosophers_problem 3. http://en.wikipedia.org/wiki/Sleeping_barber_problem 4. Scaling Agile

    at Gilt → http://tmblr.co/ZcvzqxsOM8 5. Code as Craft: Coda Hale → http://livestre.am/3ZHDH 6. The Eight Fallacies of Distributed Computing → http:// nighthacks.com/roller/jag/resource/Fallacies.html 7. http://codahale.com/you-cant-sacrifice-partition-tolerance/ 8. http://tomayko.com/writings/adopt-an-open-source-process- constraints