Lead Engineer (previously Product Manager and Engineering Manager) at Trivago
November 19, 2018#product #web
My background is in traditional Computer Science, with a focus on Software Engineering. Before, during, and after my studies, I had a couple of jobs as a software developer. During a rapid-growth phase at trivago, I transitioned into people management.
It was mainly learning by doing. The team had grown too large for one person to manage, and my manager was looking for additional people leads. I had already been involved in conducting job interviews for some time. I had some people skills, so my manager asked me if I was willing to take over some people to manage.
The number of people grew quickly, so I found myself unable to do much software development work after a couple of months. I missed it, but I also liked the relationships with people that I could build up in my new role, and that made up for the lack of coding.
There was some formal training over time, on how to do one-on-ones, how to give proper feedback, and so on. Unfortunately, I did not receive much mentoring, and I did not take it in my own hands to get a mentor. Everybody makes mistakes as a first-time manager, but I think a mentor can help you avoid some of the worst ones.
As a manager (currently, I’m an IC), it was mainly communication. At some point, I was up to 20 direct reports, which is too much to be there for everyone in a way you would like to. I did regular one-on-ones with everyone, and that took up some time. Recruiting took up 20% or more of my time sometimes. I was still somewhat involved in technical planning and training, and of course there are meetings with managers, peers, and stakeholders. Sometimes, I had to moderate personal conflicts on the team, which can also be time-consuming, but doesn’t happen all the time.
The aspect that motivated me most about the role was seeing other people grow and do things that surprise you. For example, I was able to encourage people to give talks who thought they would be too shy to do it. And they did it really well.
At the beginning, I felt terribly unproductive. As a developer, you have pretty clear signs of progress: Commits made, features delivered, bugs fixed, etc. As a manager, most of this goes away. I had to re-define completely what productivity means for me, and that took a while. Even if you understand it rationally, you might still feel unproductive.
I hated running meetings, because I am not a big talker, and I do not like being the center of attention. The advice here is the same as with presenting in front of an audience: Practice, practice, practice. The more you do it, the better you get. You might still not like it very much, but it will not annoy you as much, and at some point, it’s just something you do.
In general, as a manager, you have more visibility. People perceive you differently, in a way. I had to be present in a different way. The days of hiding behind my screen and quietly coding away for hours when I did not feel like interacting with people were over. This can be exhausting at the beginning.
One of the biggest surprises, and something that I only understood after a while, was how much care and attention you have to invest in your communication. Your words have more weight now, because your decisions affect more people, and you have to handle more delicate subjects. It’s easy to hurt people’s feelings, or to convey a wrong impression if you do not carefully craft your communication.
After a while, before important conversations, I would go through what I would say in my head, sometimes even write it down. I would mentally put myself in the recipients’ shoes, and try to predict their reaction. This process exposes weaknesses in your argumentation, or aspects that need special attention.
I think the best advice that I have taken to heart is that you have to find your own style. It won’t work if you try to imitate somebody else’s style. That will come across as fake and inauthentic. And to find that style will take time and practice. There is no shortcut.
If you are considering the switch, please ask yourself if you feel comfortable to spend more time talking to people than to code and do technical work. Do you care about your colleagues’ development, and can you stand the thought of them surpassing you technically? If not, then a management role might not be the right fit for you.
If you are new to the role: Get a mentor. If your organization does not provide one, proactively look for one, either within or outside of your organization. One hour of mentoring per month can already help a lot.
Finally: You will make mistakes. It’s a fact, everybody does. I have made some pretty bad ones. Don’t freak out over it, but accept it as an important part of your learning. You cannot learn this job merely from books and blog posts (you should nevertheless read about your new role), but you have to live through a couple of difficult situations.