I started my professional software engineer career around the year 2000. For the next 14 years I was in an individual contributor role. When I joined Allegro in 2014 I had a choice: be a senior software engineer or become a team leader. I wanted to try something new and I started working as a team leader. After 9 years I decided to go back to a senior engineering role. If you are curious why I made such step, read on 😀

Why I liked being a team leader

As a team leader I was responsible for a team of 4–5 software engineers. In 2014 Allegro was a relatively small company with flat organizational structure and processes like in a startup. Line management duties weren’t that demanding, I had to accept vacation requests, hire new engineers and help with the promotion process. Most of my time I spent on coaching and mentoring team members, designing architecture, doing code reviews, writing documentation and fighting with technical debt. Quite often I developed new features and fixed bugs. I regularly participated in on-call 24/7 shifts and debug production issues. I felt like a technical leader, not like a team leader or manager.

Team leaders in Allegro have a great technological autonomy and authority to make decisions.

Why I decided to be a senior engineer again

Nowadays Allegro is a large company listed on a stock exchange. Organizational structure is more complex and processes are more formalized. As a leader you have a lot of interactions with other leaders, managers and stakeholders. You’re expected to work from the office, remote work is better suited for individual contributors. In my opinion, the technical leader role is evolving into a regular team leader/manager role. Some leaders I know are still coding and participate in on-call shifts, others are not.

All these changes made me think about my career path.

  • What do I really want to do in the next 10 years?
  • What makes me happy?
  • What I’m good at and what I’m not?
  • If I want to be a software engineer again, will I be able to compete with younger engineers?
  • If I stay in a management position, will I be able to go back to the technical path in the future?

I decided to go back to a senior engineering role.

I’m in a transition period, but I spend more and more time on coding and less on management duties. I’m still responsible for the team, although I handed over technical leadership of some parts of the platform. The technical leadership of each subsystem is distributed among the most experienced engineers in the team. I’m trying hard to not abuse my authority and to not make final decisions for the parts I don’t own. We’re working together as before to make the platform better, and to make sure that there is no silo effect.

Everything is going well so far, and I’m happy with my decision.

How to manage a transition

  • Never stop coding, even if it requires personal time.
  • Be on-duty to get constant feedback loop from production incidents.
  • Read a lot of technical books and articles, learn new programming languages, try new tools and technologies.
  • Do computer science courses or tests regularly.
  • Always seek to replace yourself, always be leaving, avoid the bus factor.
  • Share technical leadership of the managed tools and products with other team members.
  • Be fair and transparent for all your subordinates, you will be one of them soon.
  • Talk with your manager and focus on the good parts of such a transition.
  • Together with your manager, find a new leader for your team.

What about staff/principal engineer

Staff/principal engineer role seems to be a next step in a technical career path. In my previous company I was in a similar role for a while, but it looked more like a manager role than a software engineering role. In short, I was responsible for a new on-the-shelf product adoption. I managed a task force of a few engineers from various teams, and we evaluated the product and its integration with our systems. From the technical perspective, it wasn’t a technically challenging task. I spent most of my time on Excel sheets and on setting up the meetings.

I don’t want to repeat this mistake, so I decided to not apply for a principal engineer role in Allegro as for now. I’m going to watch this position for a while and see how it evolves.

Staff/principal engineer role doesn’t have to mean what you initially think.

What’s next

I’m looking for a team leader who will be able to lead a team better than I did. Organize team meetings, do performance reviews, hire new engineers, communicate with other managers, manage budgets and take care of the team’s overall happiness.

The team consists of 5 software engineers, we’re not afraid to make mistakes and learn from them, we’re A-players:

  • Three experienced senior engineers including me
  • One just promoted senior engineer
  • One promising junior engineer

If you’re interested in the team leader role, please contact me.