Engineering Management 101
I started as an "engineering manager" (more on my personal feelings for the title later) about 9 months ago. Prior to that I was a founder/CEO. The peak size of my team as a founder was 8 and the peak size of my team as an EM has been 9. So I would say that at this point I have around 3.5 years of total management experience. I think being a "manager" is mostly the same as being an IC, but with additional responsibilities like managing headcount, budget, and providing coaching. You're also expected to do things like executive writing, speaking engagements, vendor procurement, 1:1's, team bonding events, shoutouts, and project planning that you wouldn't have been responsible for as an IC. Personally, rating myself on the Dunning-Kruger chart, I think I'm about here right now. I still ship code, write product specs, write engineering specs, approve PRs, and post on socials. The biggest adjustment from CEO to EM was the responsibility change, specifically not being responsible for fundraising. Thankfully, I didn't particularly enjoy fundraising. In general I just like working hard and solving problems so there's nothing specific that I really care to focus on or maintain doing. In the future, I could see myself fundraising again. I subscribe to the servant leader approach to a large extent. To me that means my priorities are: Even when it comes to 1, I am usually motivated to make the business grow because it means that there is now space for the folks I support to be promoted. I also really resent the words "manage" and "report to." I think they create a hierarchy that doesn't really exist. I use the term "support" instead. Once you're not the IC actually doing the thing, you immediately have less authority over how it gets done. I basically acknowledge that at this point I make general suggestions for things and then people decide to what extent they want to listen. Usually their instincts are right. I hired well at my startup and Mintlify hires well too. That said, people definitely aren't "reporting to" or "being managed by" me. When someone ignores my suggestion and their instinct turns out to be wrong (which is rare in my experience), usually it just comes out as the work being less successful than it otherwise would have been. What I care about in this case is that they acknowledge that they'll try something different next time. Sometimes that's my original suggestion and sometimes it's not, but what's important is that there's a learning. One thing I used to believe is that you were also a servant to those who are supposed to be supporting you. I no longer believe that. You should support who is supporting you, but not serve them. Keep your own priorities intact in places where you might otherwise discard them for someone you have explicit leadership responsibility to. I have two expectations: To help people skill up, you usually have to do some amount of the work for them then hand it off. So, for example, you make a half-finished markdown doc with a list of issues then you hand it off and the person you're helping to skill up finishes it and gets tickets into the issue tracking system. This method is often described as founder mode'ing . Or, if they are very junior, you can get a PR into draft state such that they can finish it. You slowly get them to 100% of the task by doing it repeatedly with this handoff method scaling from them doing 10% then 20%, and so on. Then, following, support them such that they can maintain 100% of the task's complexity for 6 months without burning out. I reject the whole frame of throwing people you support into the deep end with a "what doesn't kill you makes you stronger" mindset. I think there is failing and it's incredibly important to fail. But that should feel like a comfortable and supported experience instead of a painful struggle. People grow more in healthy and supportive environments. Sometimes people who move into "management" start thinking work is beneath them. They take so many meetings and burn so much of their time writing docs that people don't read that they stop actually getting work over the finish line. When you see someone struggling who you are in charge of supporting, you have to get in there and embrace the burden so you can support them in digging their way out. This is the most important part of the job. Occasionally I see a project where no code goes out to production for an entire day. In these specific cases I always will jump in and get some work over the finish line. Or it can be gigantic issues in the issue tracker that need to be broken down. I'll just go in and break them down myself. You have to parachute in sometimes. I don't like the signal that I am taking over and now have distrust, but if you are being earnest about it and doing it in a way that is supportive, then you can avoid those bad vibes. You just need to communicate clearly and explicitly explain your intentions. "Hey guys, I see that we haven't gotten any PRs in. I'm going to help kickstart the process. If I'm stepping on your toes or repeating work here, please let me know." My hot take in management is that 1:1s are not entirely the meeting of who you are supporting. Of course it's their meeting if they push and take ownership of it, but I have personally rarely found that to be the case. I usually ask what they're working on, what they want to do better, what they would want me to do if they could wave a magic wand, and what feedback they have for me. You likely shouldn't fight overly hard to surface interpersonal problems if they aren't brought up somewhat naturally. It's much more important to focus on helping people actually complete their work. The job of an IC is to get contributions out into the world for people to use. Focus your energy on supporting every aspect of that for the person you are working with instead of magnifying problems interpersonally to the extent you can. Of course, if there are major issues then you need to address and work those out, I just personally err on the side of caution here. Increasing pace and getting work shipped usually solves most problems in my experience thus far. But again, Dunning-Kruger, this out of all my opinions is where I think I will continue to evolve my thinking the most. I have a few techniques I like a lot. Replace standup with an async todolist Slack channel. Have people post a list of what they are doing every day in the morning instead of having a synchronous meeting. There are many reasons for that which I explain in the linked article. Write a monthly brag doc for everyone you support. I do this after every single month. It gives me a clear picture of what each person did and I often change my opinions on performance level when I write them. Throughout the month you can just lose track of things so it's really important that you confront your biases on a recurring basis. I use the Slack MCP and Claude Code to look back through everything and compile all the information. AI has really changed the game here. I frequently redirect conversations being had over DM into public channels. I see a lot of my job as supporting the folks I am responsible for in feeling secure communicating there in public. Ultimately it's incredibly important that their contributions are visible to the entire org as much as possible. Sometimes when I redirect, people feel like their idea isn't clear enough. So you can rewrite their message into something clearer and say "hey, would you be comfortable sending this?" People need reassurance that if they make mistakes, you will cover them. Which I do. You have to really encourage the act of failure. No successes will ever happen if people don't feel comfortable failing. Limit testing in a corporation is not natural for most, so it's your job as a "manager" to encourage it. You want people to find the level of complexity where they either don't know what to do or mess up. If they don't get there frequently then they won't have rapid skill growth. In my opinion, leveling (by title) primarily exists so people don't feel awkward. You want everyone to have clear and fair expectations for themselves and those around them. When someone is overleveled, there is tension because people try to hand off work or get help from someone who is supposed to be at a higher skill threshold than them. But in reality they are not higher skill and it's just an awful time for everyone. Then, when someone is underleveled, there is an issue where that person becomes restricted in how much impact they can actually have. Instead of scaling themselves and spreading techniques and processes, they leave your company for another job, start doing work on the side, or just quiet quit. Occasionally a super motivated person will stick it out, but I think that is relatively rare and ultimately not in their best interest. Anyone who is able to do that without a company change is incredibly high grit and special. Rarely can you demote someone. More often than not you just have to fire. When I have had to fire, it is usually because of two things. There is either a lack of will -- someone just can't summon the energy to try -- or it is a lack of skill. Almost always I have learned when firing (including myself out of being a founder/ceo) that for some reason or another there is a lack of will. People get stuck and stop taking actions altogether. When it comes to underleveling, you never want to promote too fast. I am very firm on 6 months of sustained performance. When people have asked for faster, if they are crushing it and you need to promote to retain them, then do it with compensation instead of title. I think the best founders and managers are not naturally bossy people. Rarely are you successful when you come across as domineering. To that end, founders can often struggle with being in a drive by management mode trying to get work done. They sometimes feel overly shy about being bossy. They want everyone to take high ownership of problems and therefore default to understeering. The problem is that without explicit framing, people misinterpret fyi's as plea's or plea's as fyi's. Wade Foster from Zapier has a great system for preventing this. #fyi : something interesting. An article and podcast, etc. I thought you might like it. But if not no worries. Nothing to see here. #suggestion : a passing thought. I sometimes have good ideas. You might like to hear good ideas. If I'm in your shoes, I consider it. But I'm not in your shoes so do what you'd like. A friendly response if you don't go with the suggestion is nice, so I make better suggestions over time, but is by no means necessary. #recommendation : I've thought a lot about this. Perhaps even lost sleep. I've invested deeply. I think this is a good plan. You can still disagree and go a different direction, but walking me through why you are doing this is kindly requested. #plea : We don't have a lot of mandates at Zapier, but this is one. Please do this. If you disagree enough that you can't go along with it, we should both reconsider our roles here. It's that important. I use #fyi and #suggestions all the time. #recommendation much less so. And #plea is almost entirely unused. I learned it from Andreas Klinger who is a great follow on X by the way. Whenever I am communicating directionally, I explicitly callout where I'm at from fyi to plea. It's rare I exceed a suggestion, but does happen. Plea's usually at most once a quarter. You cannot burn your social capital being at a recommendation or above all the time. People will just get annoyed and quit or stop taking you seriously. I strongly suggest you adopt some system like this when you begin supporting people as a career path. I think building a personal brand is an incredibly important part of being a leader. You want to be known for things. You want to have a reputation. You want people to understand your values and what you care about so they can properly assess how to engage and work with you. If you expect to be able to change companies or orgs and continue leading, then it's important there is an incredibly public track record of your work. Unlike being an IC, you are rarely directly "shipping" things when in manager mode, so you need to have social influence beyond. Good leaders can own go to market for their projects and part of that is having a personal brand. This was true before social media when you would write columns in newspapers and it's even more true post-social media when you can build a huge following from your phone in the moments between spinning up your favorite coding agent. I fall on the become a thought leader end of the spectrum. You want to have trust both internally at your org and externally with peers in your industry that you are first-principled, make rational decisions, and can be trusted to own blame for your own decisions and those of who you support. If you don't have a personal brand then I do not think you would be able to escape middle management. Getting to a manager of managers level in my opinion requires a personal brand to some extent, likely closer to the thought leader end of the spectrum. You can be a great IC with no personal brand. I think that's the appeal of staff IC. But for leadership, you do, unfortunately, need to build one. Look at Bill Belichick, famously terse with media during his Patriots tenure, then immediately started his own podcast and network TV appearances once he was out to justify another coaching role. Same for JJ Redick, built a massive audience as a podcaster soon after retiring from the NBA, then parlayed that into coaching the LA Lakers. They built credibility through public performance at first by being on professional sports teams who had games broadcasted on primetime TV slots and then, once that was over, they pivoted to alternative media forms prior to getting back onto a high performing and visible team. Post instead of cruising early and dodging media like they did, because odds are that you're not an athlete performing on primetime TV every week. You need to build your brand through other channels. I am always pushing the people I support to build and write in public. If someone is resistant to it, I let it go. It's not a hard requirement unless they are going from manager to manager of managers level. My personal brand, in my opinion, is a strong attracting force for hires and customers. It's effectively a marketing channel for the business, particularly for brand marketing. The ROI is hard to attribute directly, but it is certainly there. I spend between 10 to 20 hours a week outside of the 9-5 work hours on personal brand. Writing, recording, commenting, and scrolling. I think of scrolling as research. It's very intentional. Final note on this, if you do decide to work on a personal brand then you'll find that some people don't like your style. I think that's fine and you shouldn't worry about it. The beauty of the brand being personal is that it's yours and not everyone has to be aligned with it. Do whatever you're comfortable doing. Ignore haters. If you take nothing else away from this post, please let it be this section. I think the best "managers" (🙄) are optimistic and positive. They earnestly want to contribute to growing the organization they are at and the people they support. I heavily disagree with Sean Goedecke's writing on management. He overindexes on politics and managing stakeholders which I think is incredibly cynical and short-sighted. Nothing good is going to happen from analyzing and kissing ass all the time. High performing teams and organizations are all aligned in being high action and throughput. If you are high action and throughput then, in my opinion, things usually work out. Of course, that is to an extent. Be a good person, be kind, apologize when you make mistakes, buy people gifts when they do things that help you, say thank you, say please, say good morning. Don't be a cold and unfeeling curmudgeon. But do also primarily focus on doing your best work and putting things out there into the world. Everyone wants to solve problems and build cool shit at the end of the day. Or well, at least everyone I would be excited to work with. Help the business grow Get the people I'm supporting promoted People who I am supporting skill up to get promoted. Usually this means embracing additional complexity. As a software engineer that can mean hiring, doing planning, leading and making sure the right work is prioritized throughout, or owning product by interviewing customers, having vision, pitching, etc. Once they reach 100% ownership of a new skill level, they maintain that performance proactively and without active support for 6 months leading up to a promotion.