I currently work as an Engineering Manager at N26. We are going through a hyper-growth phase that involves many different challenges. This is extremely exciting as I have the opportunity to help in shaping how the organization can grow but still maintain its principles and alignment.
By definition, in this role, I step away from coding as my focus changed. This does not mean you need to completely stop to code. What I’d like to share is, a few ideas that I use to keep coding on a regular basis.
I want to write an article talking just about this topic, but that’s something for another occasion. To help answer this question I’d like to quote Shivani Sharma, Senior Engineering Manager at Slack.
Let’s put this into perspective. As an Engineer, you are responsible for working with lines of code and making it work in an efficient system. As an Engineering Manager, you are responsible for groups of people working as an efficient system.
Another interesting thing that Shivani emphasized and I totally agree with her was: If you are considering an Engineering Manager role, keep in mind that this is not a promotion but a career change.
EM’s have to take care of growing, coaching, mentoring and inspiring teams. To able to do that we need to make sure that we focus on 3 main things: People, Process, and Culture. And believe me, that requires a lot of time and dedication.
Even with such challenges, I truly believe that Engineering Managers should stay in touch with coding. This will not only help you keep up to date but also you’ll be able to help your team when they need some technical support.
This is one of the most valuable advice I can give. Keep contributing to OS projects whenever you can. It’s probably the best thing you can do and it’s quite fun. You’ll be able to practice your coding and architectural skills, you’ll get constant feedback, and stay on top of what’s happening on the community.
I like contributing to OS projects in my free time. If you’re interested check out my Github profile 😃
Whatever language or technology you’re into, make sure to find in your city a community that supports it. Go to this community’s meetups, try to participate in projects, and make sure to build a good network. One example is the Gophers Slack group, which is great for any kind of discussion around the language. I’m also a huge fan of the GDG Berlin Golang.
Read everything that you can (and that you like), books, articles, or papers. This is a great way to see what’s happening in the technology field. Interestingly enough, I like using the discover functionality on Github to discover new OS projects that are out there.
Podcasts and audiobooks are also a great option to stay up to date. I like podcasts a lot as I can listen to them while I’m commuting.
One side note — do not only read technical books. A great part of our ideas and realizations comes from romance and fictional books, so be sure to enjoy some of those as well.
I have an interesting story about this. I was working with one of my teams on building a Natural Language Processing service and the team was discussing how they would like to load test this service. As this was a topic I had experience with I could quickly jump into the discussion and throw a few ideas into the table.
On the next day, I headed to their table to see how things were going. We spent a couple of hours pair programming using the Vegeta library and building a small PoC of how we wanted the testing to look like. After that, the team took the initiative to a whole new level automating and integrating that into our CI pipeline.
The point of this example is that in the team(s) you manage there are always technical discussions happening. Very likely you have the opportunity to be involved in the high-level technical discussions and even contribute to its design.
Time won’t allow you to take part in the implementation details, and that is fine! You should trust that your team have made the right decision and can move on with it. You in the other hand already got a high-level insight and is on-boarded with the tech specs.
You must be wondering… “How in the world will I find time to do that?”. And you’re right, not every EM will have the opportunity to review some PRs. I know some engineering managers at Google that have the opportunity to review some code, but that’s because they are expected to contribute to coding as managers. In most companies that’s not the case. This is a task that requires time, attention and dedication as the main goal is to provide feedback and not simply approve changes.
If you feel that you can contribute to this, I encourage you to do so. Just make sure to remember to not be a bottleneck for your team, maybe focus on things that are not on the critical path.
Being on top of technical topics requires quite some time. It’s important to remember that as an Engineering Manager your role is to provide a healthy environment for your team. You are the one that they will look for support and inspiration on their careers, issues, blockers and many other things. Keep that in mind when diving into coding.
What I can recommend is, organize your time! Put a blocker on your calendar to work on your technical backlog. This way you’ll always have some time to invest on this topic.
Luckily at N26, we have the Get Stuff Done Days where we have 2 days every 6 weeks to work on any topic we want. This means I can spend this automating a few bits of my day to day tasks in my favorite technology.
That’s what I have to share for now. I hope you’ve enjoyed the article and that I could shed some light on how you can code a bit more while being a manager. Please leave some comments if you have any other strategies that you use.
See you in the next article 👋