The Job We Loved
Hey!
Welcome back to another week of musings. I'm still enjoying fall and getting ready to take some time off!
Hopefully you had an uneventful weekend and managed to rest!
This week we keep thinking about transitions. The days get shorter.
Was this forwarded to you? You can subscribe here!
Things I enjoyed in the past week
- How to effectively debug when you no longer understand the code
- If your team is happy, are you doing a good job?
I hear a lot about how the software engineer role is changing, and it is, but not as exaggerated as it sounds; when working with teams and codebases in large corporations, you realize that code is only one piece of the puzzle. Sure, it's the visible output for most, but in reality, coordination, documentation, and work planning (scheduling, prioritization) take a lot of time.
If I think back to the beginning of my career, or earlier, to college or my last year of high school, when I learned to program, the joy of programming was what initially got me; that feeling of debugging and solving a nasty bug in my tiny college project got me hooked.
Even after years in the industry (pre-agents), I still loved the time I got to help people debug complicated bugs, or open an IDE and do a step-by-step code analysis, etc. Now a lot of the effort goes into the things I mentioned: coordinating agents, documentation, and work planning (for agents). So the corporate role of a software engineer is still there, just not what got me hooked at the beginning.
With every step we take in our careers, like moving from software engineers to managers or staff, those are effectively different roles. Either role has less emphasis on coding, so maybe some folks were already detached from coding; adopting a fleet of agents to pursue work that wasn't possible as a single person became how we scaled.
I see people at all stages of the AI adoption curve. But the problem is that Innovators/Early Adopters get so deep into it that they can't explain what's going on to others, and working at that accelerated pace definitely rewires your brain. It's hard to explain to people who aren't even using AI as a "search engine" that they can switch their workflows to fully let go of research, coding, testing, reviewing, and instead work on building trust with the agents.
When our identity and output were tied to tickets closed or code produced, we valued people who could hide themselves and produce high-leverage PRs, or fix a hard bug by changing this flag, or that configuration, etc. On the flip side, some people took longer to work on a ticket, picked low-leverage work, and worked on only 1 or 2 tickets per sprint. Can both extremes be somehow averaged to a new normal? Or can we simply push everyone to become high-output people?
In the minds of CEOs and management, it is probably the desired outcome: a very small group of folks (or none at all) and an army of agents pushing code, fixing bugs, taking direction on what to build, and letting them rip.
The reality on the ground is very different; yes, coding with agents feels sort of magical in some ways, but in many (and most) ways it is still failure after failure. So the work has become building context for the agents, or even building harnesses that allow for a narrower description of the outcome and have focused output without going too much into the weeds. The work has become writing in English about how to design, how to code, how to code review, how to triage. Even going through code has become a pairing adventure; you need an agent to help you navigate codebases, review functionality, etc.
So, these people living at the edge are letting these agents rip, but building counterweights that analyze and review code, review production logs and produce bug descriptions or fixes, analyze the risk of pull requests, etc.
So, if agents take away code as the output of our role, would we still love this job?
Your turn!
Following up on the month of transitions, I've been thinking about how our industry is changing the role of software engineers. How are you seeing this change? How are your teammates handling it? Let me know your thoughts by replying to this email!
Happy coding!