When you find the right project, and the right lifecycle of the right project, your life is great. You are challenged, and you get to learn new things. You have a lot of control over your day-to-day, and certainly fewer meetings than your management counterparts, but your days are not always spent in a blissful flow state. For every project there’s the period where you have the idea and you’re selling it to people, trying to convince them that it is the right approach. Or you’ve implemented the system, but now you need to get other teams to start using it, so you sit with them for days showing them the ins and outs, explaining why it is useful, and trying to convince them to lobby their manager for time to adopt it.
Your upward trajectory is not as fast and easy as you had hoped it would be. In fact, it is pretty slow. Those big projects that prove you to be an invaluable architect are hard to find. The team doesn’t need a new programming language, a new database, or a new web framework. Your manager isn’t great at handing you plum assignments that showcase your talents to the whole organization; she expects you to tell her where these opportunities live. Discovering good projects seems to be a matter of luck. Pick the wrong project, and you spend months or even years on something that might get cancelled despite all of your best efforts. You are a little jealous of your friends in management who seem to be getting promoted faster while they keep growing their teams.
The other developers are a mixed bag. You’re a nice person, so some of them admire you and listen to your opinions, but others seem to be jealous of your influence. New developers either want too much of your time or seem to be scared of you for whatever reason. There’s definitely some competitiveness with your peers around who gets to lead big, interesting projects.
Your manager is kind of a pain. She isn’t terribly supportive of your desire to open source a system because you think it provides a new twist on logging that the industry needs, and she suggests that if you want to give talks or write books perhaps you need to spend some of your personal time on those efforts. She seeks out your feedback on technical matters, but sometimes forgets to tell you about new initiatives until it’s too late for you to put in your two cents. You suspect that you are missing out on crucial information because you aren’t in the right meetings, but every time she invites you to sit in those meetings you remember how boring and inefficient they are, and how much valuable focus time you’re losing. And she doesn’t have much patience for your desire to be free of tedious work like answering email, interviewing, or responding to code reviews promptly.
Still, you get to build things most of the time. You get to spend your time focused on technical problems, systems design, and engineering issues, and you don’t have to do all that much dealing with people or sitting in boring meetings. You can often choose your projects and can easily move between teams if you want something new. And you just found out that you get paid more than your manager! So, life isn’t all bad.