I started coding in 2012 and I fell in love with it instantly. The ability to bring ideas to reality, got me hooked. Creation is such a rewarding activity.
In all these years, my only goal was to become technically strong & grow my career in the tech vertical, an architect or a staff engineer.
Unknowingly after working at startups for a few years, I was doing a few things that managers would do. I used to be the voice for my team. I used to get meaningful work & was happy in keeping both the business & clients happy. Usually I've seen managers compromising on quality over speed. I made better tradeoffs and I ensured to explain it to the relevant parties about them.
If I asked engineers to cut corners, I would promise them that I would find some time for them to refactor and I almost always kept my promise.
Delivering value is the goal of any business & developers build apps that help deliver that value. Without business, there is no need for developers. Perfect code that doesn't provide value, won't be able to pay developers. Badly written code hogs development speed. The key lies in communicating these tradeoffs and make a collective informed choice. An engineering manager is the best person to do it.
Having worked as a developer for the last 10 years, I've worked with all types of managers. The worst one's are those who have not been a developer themselves.
The best thing I like about being a manager is that I can be an enabler. I can get good work for my team. I can evangelise about my team's capabilities.
There is a different kind of satisfaction, when you are the one who is enabling other's to do their best work. This helped me accept the role & I am happy about it.
Am I liking my new role as a manager? The answer is yes.
Do I miss coding? Yes. But I got over it by working on my side projects.