Engineering Manager at Uber
November 12, 2018#consulting #entrepreneur #front-end #open-source #public-speaking
I've started my journey as a manager when I've co-founded RisingStack, a Node.js consultancy. With RisingStack, we've become one of the most known Node.js agencies, working with clients like Cisco or Lufthansa. During this time, we've grown from two co-founders to fifteen employees.
After four years at RisingStack, I decided to look for new challenges, and I started working for GoDaddy in San Francisco. I led a small team of engineers, while I was also part of the open source group. As part of the open source group, I had started GoDaddy's Open Source Center.
After GoDaddy, I've joined Uber as the engineering manager responsible for the UI Platform team. With the UI Platform team we are building the React implementation of Uber's new design language called Base UI.
The transition for me started with RisingStack, and it was quite gradual. In the early days, we were only a team of two, meaning that I was essentially a full time software developer who did business development too. As we had added more and more individual contributors to the team, I shifted more and more to become an engineering manager.
One of the biggest lessons learned for me was how your work product changes - it is not about shipping features anymore, but about unblocking team members and help them in any way you can so they can be productive and happy.
My day-to-day varies a lot - usually it is filled with 1:1s, demo meetings, interviews and some time I block out for myself to focus on different areas without interruptions. What I enjoy the most about being an engineering manager is introducing efficiencies to the team or the broader company. I find joy in automating grunt work, and in helping my colleagues grow in their career.
One of the biggest challenges I had happened in the early days of RisingStack. I was wearing a lot of hats: software engineer, sales development representative, technical writer and project manager. At first, I did not realize that if I keep trying to do all these roles, at best, I'll do mediocre job in all of these. Both me and the team struggled because I never had time for anything.
This was the time I've started to read a lot on engineering leadership, started to make friends in the community - well, to learn the job I was doing already. As a result of this, we had hired folks into those positions and we greatly reduced the friction caused by me.
To always be candid. For all new managers, I highly recommend the book called Radical Candor by Kim Scott.
Depends on the company - different companies have different definitions of what an engineering manager does. For example at GoDaddy, most engineering managers I've worked with still coded for 30% of their time. While for example at Heroku, most engineering managers contribute 100% of their time to project and people management, and they don't have the time at all to code. If you are working at a company where engineering managers still code, the transition may be easier as it is more gradual. However, you must keep in mind that your priority is not coding anymore, but to mentor your team, help set and achieve goals, among others.
The reason I've started with explaining different engineering manager flavors is because one must understand that as an engineering managers, you'll have to find new ways to get job satisfaction. It is no longer measured in the number of features you ship or the performance of an application, but in the performance and effectiveness of your team.
If there’s anyone who would like to meet me in person to chat about engineering management, I live in San Francisco and happy to grab coffee during the week! Just send me a DM on Twitter to schedule. If you’re interested in getting updates about my writings, or conference talks, you can follow me on Twitter at @nthgergo.