Uber Engineering Blog
Uber's engineering blog, with more than 750 articles on real time matching, geospatial systems, payments, identity, databases, ML platforms and Go performance. The problems are concrete and easy to picture (find a driver, estimate an arrival, stop overload), which makes it a good first engineering blog for anyone who finds abstract architecture writing hard to follow.
Guide
System Design
Uber
Advanced
Free
What it covers
Uber's blog spans AI and ML, backend, data, mobile, security and web engineering. Recent posts (checked September 2026) include:
- Taming the ML firehose: scaling feature consistency (September 2026).
- Running a software factory efficiently at Uber scale (August 2026).
- Scaling Verify with Wallet for identity verification (June 2026).
- Scaling real time traffic forecasting with a graph aware transformer (May 2026).
- Zero growth stack, real gains: how stack allocation can save 10% CPU in Go (May 2026).
- How Uber conquered database overload: from static rate limiting to intelligent load management (April 2026).
- Hybrid core allocation: from overallocation to reliable sharing (April 2026).
The archive covers well known work such as H3 (Uber's hexagonal geospatial index), the Schemaless and Docstore databases, the move from a monolith to microservices and then to domain oriented microservices, Cadence (the workflow engine that preceded Temporal) and Michelangelo, Uber's ML platform.
Why it is a good blog to start with
Uber's problems are unusually concrete: matching riders and drivers, routing, pricing, payments, all in real time and all geographic. That makes the posts easier to follow than abstract architecture writing. You can picture what the system is doing and why latency or consistency matters.
Who should read it
- Backend engineers, especially those working in Go or Java.
- Engineers interested in geospatial systems, maps or logistics.
- Data and ML engineers working on feature stores and real time predictions.
- Students preparing for system design discussions who want a real "design a ride sharing app" reference.
How to read it well
- Start with the database overload post. Load shedding and adaptive rate limiting are useful in almost any backend.
- Read the H3 posts if you have ever wondered how "find nearby drivers" works. Then try the open source H3 library.
- Read the domain oriented microservices post to see how a very large company corrected an over split architecture.
- For the Go performance post, reproduce the idea with Go's escape analysis flags on your own code.
Weak spots
- Many posts depend on Uber scale. A small company does not need domain oriented microservices.
- Posting is roughly monthly, with some quiet months.
- Several important internal systems are described but not open source.
Pair it with
- Lyft's engineering blog for the same marketplace problems from a different angle.
- Temporal's documentation, since Temporal grew out of Uber's Cadence project.
Best for: backend engineers and students who want concrete, easy to picture case studies of real time, geographic systems at scale.
Ready to start?
Opens on Uber in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.