Here are some of the most read articles on this blog.
- Distributed architecture concepts I learned while building a large payments system. When I joined Uber as a mobile engineer, I did not think I'd be building distributed systems. But I did, and had quite the learning curve to get up to speed. Consistency, durability, message persistence, idempotency and other important concepts broken down in layman's terms, explaining how they are important.
- Software Architecture is Overrated, Clear and Simple Design is Underrated. What if I told you that we used no formal planning methods when building massive systems at Uber, Skype and Microsoft? A dive into why jargonless and simple software design works just as good - if not better - than some formal methods.
- Undervalued Software Engineering Skills: Writing Well. A short piece on why writing clearly and concisely is so important for engineers, who want to grow their skill to influence.
- Operating a Large, Distributed System in a Reliable Way: Practices I Learned. After operating a large and mission-critical system at Uber - the one powering all of payments - there are a few good lessons to share, on how we keep this up and running reliably.
- Things I've learned transitioning from engineer to engineering manager. Moving from development to management is no walk in the park. Here I share the key learnings I had. Also see the follow-up post: seven things that helped me move into engineering management.
- Scaling Engineering Teams via Writing Things Down and Sharing - aka RFCs
The planning process we use at Uber. Write down the plan and the architecture in a short document, then send it out to - gulp! - all of engineering, allowing anyone to comment on it. We did this up to about 2,000 engineers.