Software at Scale
“If you're offered a seat on a rocket ship, don't ask what seat! Just get on.”
- Sheryl Sandberg
Reflecting on over 6.5 years working at Uber, my trajectory
has changed significantly over the years..
2016 - Uber Maps
→ Map Making SRE - Network Engineer
2017-2018 - Uber Maps
→ Map Making SRE - Systems Engineer
2019-2020 - Uber Prime
→ Production Network SRE - Systems Engineer
2021-2022 - Uber Prime
→ Production Fleet SRE - Software Engineer
The team I operated with in Colorado started off maintaining
a
small offline datacenter with ~6k servers, from the concrete to the OS. Now, we
operate a fleet of >200k physical on-premise servers, alongside a significant
cloud
presence.
That original team now owns on-premise hardware repairs - I
provide
much of the custom software they and other internal customers use.
Systems to Software Engineering
My transition from systems to software engineering eventually became a necessity.
As I gained proficiency as a systems engineer at Uber, I
often found my proposed solutions hobbled.. A systems engineer's main job is to
create systems, typically composed of microservices.
I spent years building coding proficiency, which allowed me to tweak
internal & third-party services. However, when writing code at the scale Uber
operates, you more-often end up needing to completely rewrite certain
microservices for which the provided options don't meet your custom use case.
The conclusion was obvious; if I wanted to continue to deliver impact, I needed
to know how to develop code.