The startup mode is over
The company I used to work for transitioned from the startup phase into a scaleup phase. During this transition, there were many challenges for the company but I’m here to tell you what challenges I faced personally and how I tried to solve for them, some more successfully than others.
I had recently been promoted to Vice President of Engineering around the time the company decided it was time to look for investment and increase the number of bets we were going to make in order to grow. The target was not only to grow but to grow fast. My new role made me responsible for all existing engineering teams. The whole organization was only 30 something engineers, we only had 3 engineering managers and all played a weird mix of product and engineering.
As we started scaling, the strategy was (1) To introduce a strong layer of product managers so PMs would focus on features and roadmap while EMs would focus on quality and scalability. (2) To grow the engineering headcount 4x so we could work on everything at once. And (3) to attract outstanding engineering talent at every level. Here it is where my challenges started.
Good engineering
How does great software engineering look like? I mean, I have worked in software engineering the last 20 years but I consider myself an average engineer at best. I’m not completely oblivious to good engineering, good code, good teams, etc. But I have never worked at what can be considered a top notch tech company. I have read a lot of books and blogs and asked around with friends at bigger companies, but I do think you have to live things for them to really sink. How did I solve for this? I went out looking for exactly that! Leaders in other organization that had seen growth and managed to solve its complexity. Recruitment started.
I managed to hire a couple of incredible directors. These folks were hardcore engineers, true nerds that were as passionate about management as they were about systems design. Their ideas immediately had a huge impact in our organization. I think the one that has stick with me the most is true ownership. Not how to develop ownership myself but how to make ownership sprout by trusting your teams to take the best decisions once you have described a problem and objective. With this in mind, I jumped into recruiting engineering managers that were aligned in terms of management, quality, scalability, etc. As we were growing I found my next personal challenge.
Finding my place and focus
I was with the company since day one. A scrappy startup where I had to jump into every role. I had been in charge of websites, APIs, team management, product definition, experimentation, reporting, you name it. The thing is that on every job I was the sole owner of a given area. I understood it inside out. From both the technology and business perspectives. When I was assigned to new areas I just did the same. Started from scratch, got involved into every decision, in retrospective I was a bit of a micromanager but we were a small team so I thought it still made sense.
Eventually I hired managers, stopped jumping into everything and worked hard not be a micro manager. It paid off. As I hired more and more managers and engineers, things started moving on their own. Unavoidably, I started to feel that I was getting out of context on the day to day. Man, I love the heat of the kitchen, I love working side by side with engineers. It took me a long to understand, that it was not my job anymore. That I was complicating things by jumping into conversations with little context. I felt like I was losing control.
My focus jumped to talent attraction, team structuring, budget allocation, engineering culture and all of this through my managers and directors. After some time, my day to day started to look very different. Less and less meetings. More time gave the opportunity to work on small projects with positive impact on the organization. Some examples include: a small website to demo our paging and alerting system and a pipeline that pushes code coverage metrics to centralized dashboards. Working on these projects reminded me why I love engineering.
Remembered why I love engineering
This is not a challenge per se. It is more about the realization that my personal growth and career path took me off my original passion which was software engineering. Laser focus on solving a problem, optimizing resources, making your solution elegant, readable, scaleable. You name it, it is still exciting to me. Remembering it and comparing it to my now day to day life made me understand that software engineering is a two sided problem. One is systems and software and the other is people and they are equally important.
I am returning stronger
I realized that I manage engineers and managers that are way better at software and systems than I am or will ever be. That I can learn from everyone that I work. That I need to stay humble until I die.