Lyncredible Navigating the tech stack of engineering and management

Reflecting on my IC path, Part II

I left Microsoft to join Uber in October 2015. Applying the lessons from my Microsoft stint, I experienced accelerated growth at Uber’s Seattle office with the help of some amazing leaders and managers. In the second post, I continue to reflect on my journey there, and I am immensely grateful to everyone who guided me along the way.


Earning leadership

“Leadership is not given, but earned”, said Jonah Cohen, my first manager at Uber. In a 1:1 with him in April 2016, six months into my Uber ride, I asked Jonah whether I was ready for the Senior Software Engineer role. He replied, “I think you have earned your leadership”.

I joined Uber to initially work on Driver Incentives, where they subsidize drivers to provide higher liquidity to riders in under-served markets. There was already a separate team owning the Driver Incentives product, which ran on a single-instance analytical database that left a lot to be desired. It only supported batch jobs which caused latency issues; it more often than not reported inaccurate results; and it ground to a halt as volume increased week over week. To solve these problems, my team’s mission was to build a streaming backend to power 1 Because Driver Incentives were all about spending money, we joked that our mission was to help Uber lose more money more quickly and more accurately..

I was the last engineer to join the team of four. I was also the most junior one as each of my three teammates was already a senior engineer with more than ten years of professional experience. To get me up to speed, my first task was to create a script to compare the results between the existing batch solution and the new streaming pipeline. It was not a “senior-shaped” project by any measure, if such thing exists in the first place. However, the job turned out to be a great opportunity for me:

A different job

My Uber ride would continue for another year until the end of 2017. My second project was to build an internal tool for sales specialists to do customer outreach. One key use case was to help prospective drivers with the onboarding flow via integrated text messaging. The specialists would help them, among other things, upload ID and insurance documents, inspect their vehicles via video chats, and keep an eye on their background checks.

Zhi Li, my manager over the span of the entire project, empowered me with great trust and flexibility. I learned Go and built the initial backend. I learned React and architected the initial frontend. However, I think my most important value-add was to serve as the glue across teams. We did not have a Product Manager on our team for a while, so I flew down to our call center and interviewed the sales team to design the prototype. I made a second trip to train the specialists once our tool was ready to be tested. It was an iterative process where lots of incredible feedbacks were exchanged and incorporated in the product, and I was happy to do whatever I could to make the product useful and valuable.

When I looked back on my Uber ride, it became clear that I was indeed doing a different job as Rus had 2 Rus said leveling up was to some extent doing a different job. See Part I of the story.. While I certainly made some technical contributions at Uber, and while I already had product management and customer support skills in my toolkit prior to Uber, my primary role was to lead projects. That meant setting or influencing directions on both the product and the technology fronts. That also meant consistently making forward progress regardless of the type of work I did.

I was not explicitly put in a place to lead. It would be absurd for my managers to do that in the first place. Luckily for me, I earned my leadership, which would continue to serve me well for my transition into Stripe.

Share via

Related Posts

Recent Posts