Elements of Scalable Architecture
An overview of technical and non-technical elements that should be taken into account when working with systems at scale.
While working on systems of varying complexity, I've noticed a set of patterns that make systems easier to understand, work with, improve, scale and onboard new engineers. I have also seen things that don’t work and should be avoided.
This talk will present an overview of areas to consider when working with systems at scale, from both technical perspective, addressing topics such as system design, protocols, interfaces, data stores, etc., as well as social perspective, with suggestions on how to make a system easy to work with and how to keep tech debt at a minimum. I will use examples from Twitter's systems that handle tens of millions of RPS to explain how and why we do things certain way, but lessons learned can also be applied to smaller systems and teams.
By the end of this talk, the audience will have a specific set of practices they can apply to improve their systems.
Friday, 2017-10-06 @ 15:35
> Skill level: intermediate
> Duration: 45 min
Goran is a staff engineer at Twitter, working on services that handle tens of millions of RPS and making sure Tweets can be sent and read. Prior to that, he spent 3 years at Amazon, writing systems that automatically fixed the network. He used to do mainly Python for about 7 years, but recently switched to the functional side and now mostly does Scala. His passion are scalable systems and architectures that are easy to work with and evolve. Occasionally, he speaks at conferences and has had 2 appearances at WebCampZg, in 2012 and 2013.
Outside of work, he likes to spend time working on WOPR, an algorithmic trading system, or go for a day-long bike rides on one of trails around San Francisco.
Goran lives and works in San Francisco.