Engineering Manager at Twitter
May 27, 2019#devops #music #product #web
I grew up in Indore, India (one of the cleanest cities in India) and also completed my undergraduate studies in computer science and engineering there. Soon after I came to USA to pursue Masters degree in Information Management from the University of Washington iSchool in Seattle.
My masters project was related to analysing health queries from an AOL search corpus. I interned at Walt Disney Interactive Group in Seattle and then at a small but established company called WhatCounts. It was in the business of sending large scale customize emails for companies like Costco, Alaska Airlines etc.
After finishing Masters degree I joined WhatCounts as a full time engineer writing UI, analytics and reporting software. I worked there for a couple of years, had a stint at another Seattle startup. During this time, I wrote a music search engine for fun as a side project. I sent the link to my music search engine to a south Asian music startup called Saavn in 2011 to see if they might be interested in hiring me.
Our conversation went well and I joined a 4 people engineering team (20 person company in total). I built a lot of things at Saavn and helped it grow from 200,000 users in 2011 to 100 million users in 2018. Saavn raised $100+ million funding and eventually merged with a large Indian telco Jio to create an entity worth $1 billion called JioSaavn.
At Saavn, I grew from an Individual contributor engineering role to a tech lead, to an Engineering Manager and became a Director of Engineering. I worked on various projects throughout my tenure at Saavn ranging from core platforms projects to infrastructure work to building user facing products. I also worked on building engineering processes to help 50+ engineers deliver software efficiently and reliably.
In late 2018, I had a conversation with Twitter which went well and I joined Twitter’s Ads group as an engineering manager, working on building advertising products and foundational ads API product infrastructure, which are in critical path of Twitter’s $3 billion revenue. I work with an amazing group of wickedly smart engineers and product managers who are some of the best in the business.
It was more of a natural evolution from an IC to becoming a de facto leader of the team. As Saavn grew, we hired more people, I was involved in building some extremely complex software. Eventually there was a need for someone who wanted to be hands on engineer but also was interested in people aspects specifically around mentoring, coaching and supporting the team with technical leadership. I stayed in a technical lead role for a few months and eventually became an extremely hands on engineering manager and eventually a director.
At Twitter, a typical day involves having 1:1s where topics of discussion can be around career growth, providing (and receiving) positive or a constructive feedback , trying to build a healthy rapport between me and the other person, team dynamics, processes and team health, etc.
It also involves meetings around organizational alignment where I talk with my peer team managers to make sure we are providing (and getting) the support that unblocks our teams. Alignment also means distilling the messages coming from the chain of command and making sure we work on the right priority items.
Depending on the day of week, I spend time having our in person or virtual standup, sprint planning, retrospective review meetings.
A significant chunk also goes into hiring related activities which involves working with sourcing teams, screening, discussing interview rubrics, interviewing over phone or in person, debriefing huddles, sell calls, following up, etc.
I also try to spend my time on coding, technical reviews, product reviews, code reviews. I end up prioritizing them at the low end of my list as I have an amazing engineering team. I believe that my incremental value to the team that I provide technically is not that great compared to value generated performing managerial tasks and unblocking them.
My main motivation comes from the challenge to provide maximum value that I can provide to my team, org and company. It does not matter if it involves working on code, design docs, reviews, hiring, having conversations etc. Everyday I want to make sure that I have put my team in a place where they have clarity in terms of expectations and have all the tools / support they need to perform their job. These teams are full of extremely smart people so I tend to get out of their way instead of micro managing and let them run with the work cut out for them.
The biggest challenge was to understand that management is a very context aware role. Context can be different based on company, org, size and experience of the team etc. I see the duties of a front line engineering manager as a sliding scale. At one extreme you have a tech lead manager role who is involved heavily in technical work. On another extreme, it’s a pure people manager role where focus is on team alignment, career growth and mentorship.
It was hard for me to transition from a hands on manager to a more people manager role earlier between a startup and a bigger company. I felt that I was not providing value to the team being very hands on.
I found a mentor within the company, talked to various peer managers, read some really good articles around management philosophies on Plato HQ and medium.com. All of this helped me realize that my role at Twitter was very different then my role at Saavn.
I went back to my value based approach and that helped me to align myself in the right way with the team.
It has been said many times before but people management is a different role then technical management. It is not a promotion but rather a completely different job.
I tend to see a common pattern of making the best engineer on the team to be a manager. A lot of times this backfires as it hurts the team as you need a lot of soft skills, empathy, high emotional IQ to succeed as a manager and all of these might not be there in someone who wants to focus mainly on technical aspects.
It was to take a step back when joining a new team. It was recommend to focus on identifying team dynamics, building rapport, letting the team guide, observing processes to identify strong points and gaps in execution. It also involves understanding the team values, how the team identifies, what are potential pain points etc.
All of the above helps in building a much deeper understanding of the work and finding places that you can provide maximum value.
Understand that it’s a different job. Being a manager is sometimes very lonely. But understand that many managers have gone through the path you are on and have succeeded. Ask for help, talk with other managers, reach out to the wonderful community on various forums, read books, listen to audiobooks. In short, do whatever it takes to improve your understanding of how to get humans to work as a team collaboratively.
The immediate gratification of compiling something and the high of having a computer do what you are asking it to do will not be there. You will self doubt yourself in early days and would want to go back to writing software but persist and give it some time.
You will have to learn to delegate work and trust your team to deliver. It is about losing control and putting people in the right roles which helps them to grow and at the same time allows your team to achieve the goals.
Finally, understand that your success is not only dependent on you but rather on the outcome of the whole team effort.