When I was first asked to be a software engineering manager, I knew that saying yes would come with tradeoffs. On the one hand, it would be a chance to have more impact, mentor people, and develop my leadership skills. On the other, it was a job change: instead of solving technical problems myself, I would be helping others do the problem solving.
I said yes, and I’m happy I did. Being a manager has been rewarding. I like the variety of the job, being involved in a bunch of different things at once, and helping people. But I do miss the creativity and concreteness of building things myself. Some managers find time to code on the job, but for me it’s usually seemed more impactful to step back and focus on enabling others.
So, a year ago I decided to start a side project. It’s called Cortado. It’s a website that allows users to create a personalized daily email with content from sources like RSS feeds, email newsletters, Twitter, Reddit, YouTube, and Hacker News. I built it to solve a problem in my own life, which was that there were a bunch of information sources I wanted to read every day, but they existed across platforms, and there wasn’t an easy way for me to keep up without getting sucked into a bunch of feeds and losing hours of my time.
Cortado has given me a chance to do what I missed from my job: writing and shipping code. And I do it with complete autonomy. I prioritize what to work on, design the UI, and talk directly to customers myself.
Now, I don’t miss doing this stuff at work as much, and -- to my surprise -- I think the side project is actually making me a better manager. I’m no longer as tempted to write my own code or unnecessarily inject my own taste into technical discussions. I can retain my identity of being someone who builds things without having to reinforce that identity in counterproductive ways at work. I can, in the words of Molly Graham, “give up my legos” without it feeling like a loss.
There have been other benefits. For one, working on Cortado has helped me stay up to date on technology. It has exposed me to Lambda, DynamoDB, CloudFormation, Docker, Heroku, React, and Webpack. Now, I can be prepared to contribute to discussions when these technologies are mentioned in a work context. Instead of faking my way through them, I can speak from a place of deep, experiential knowledge.
Another benefit is that I’ve increased my understanding of non-engineering jobs. With Cortado, I play the role of individual contributor, product manager, designer, customer support specialist, and marketer. This increases my empathy for people in these functions at work. I experience how hard it is to predict how long a bug will take to fix, how hard it can be to get simple things to work. So I remember to cut my reports slack when things take longer than expected. I experience how hard it can be to prioritize things when everything feels important, how there is often a direct short-term tradeoff between building things the right way and solving problems for customers. So I remember to empathize with product managers when we are discussing difficult tradeoffs. And I learn that without marketing there are no users. So I develop a deeper appreciation for the sales and marketing teams who ensure that I actually have a job.
Of course, nothing comes for free, and the cost of a side project is time. Not everyone wants to, or can, spend their time outside of work coding, designing, and marketing a side project. I have two small kids, and it’s important to me to spend lots of my non-work time with them. So making progress on a side project has required me to step up my time-management game significantly. For me -- to be honest -- this has mostly meant streaming fewer TV shows.
I’ve also had to be patient. I can only spend a few hours on the project each week, which means that progress goes more slowly than I want it to go. But in this case having kids probably helps: if they’ve done anything for me, they’ve helped me become more patient!
People often ask me if, as an engineering manager, I miss coding. I used to say yes but that the tradeoffs were worth it. That was true. But now I don’t need to hedge. I don’t miss coding because I don’t have to give it up. And the coding that I’m doing isn’t distracting me from being a better engineering manager. It’s helping.