Revisiting Your Craft

About ten years ago, I reached a point in my career where I had to make a decision. Sitting across the table from me was my manager, who made it very clear that if I didn’t change my approach to work, I would be let go. I had recently had my second child and was, without realizing it, shifting in and out of depression. There were a myriad of reasons why I wasn’t taking my job seriously, but none was a valid excuse. Looking back, I had just come out of a difficult part of my life, and that moment was when I decided to change my approach to work. It made all the difference.

I’ll add my voice to the community of people expressing concern about their futures in this world of AI. I’ve found myself in the same hopeless pattern I was in ten years ago. Again, there are a myriad of reasons why I’ve drifted in and out of engagement at work, but none is a valid excuse. What I’ve learned, though, is that the quote I put on my GitHub profile over a decade ago is as true now as it was then:

“No, I don’t like work. I had rather laze about and think of all the fine things that can be done. I don’t like work—no man does—but I like what is in the work,—the chance to find yourself. Your own reality—for yourself, not for others—what no other man can ever know.” - Joseph Conrad, Heart of Darkness

Ten years ago, and again now, I couldn’t find myself in my work. It was just work, and it seemed unimportant in the grand scheme of my life. I have a family, a community I want to be part of, and friends. I don’t want to identify as a workaholic or as someone “focused on their career.” But that’s not what the quote is saying. Work is an opportunity to connect with yourself. You can be in a job you hate, and it will still tell you about your values, your self-worth, and what doesn’t interest you. Those are all things about you. Then and now, the job wasn’t the issue. It was me in the job. I didn’t see the value.

After my reprimand, I was called into a meeting with the head of software engineering, who also wanted to talk about my performance. It wasn’t to comfort me, nor was it to pile on more negative feedback. Instead, it was a talk about craft. He suggested I read The Pragmatic Programmer and focus on improving the way I work. Reading that book changed my life, as it has for so many others. Programming was no longer something I did for a customer or for a company’s bottom line. It was something I could make my own, like the carpenter the book so often references.

From there, I launched into all sorts of self-education, from learning to focus on business needs to watching talks on microservices to reading old process books. I couldn’t get enough information on how to build quality software and tools that help people. I wrote a book on the subject and inundated my manager with ideas for improvement. I was sent to conferences and to other countries, and it felt like nothing could stop my momentum.

Then life happened again. I lost my job. Other losses. Depression. And honestly, it’s been difficult getting back up. But I’m trying.

AI has and hasn’t been helpful, but it’s something new, and maybe it can pull me forward a bit. Like the voices behind thousands of other posts and podcasts out there, I feel AI has left me unmoored from my career. Much of the problem-solving and engagement with the software has been automated and stripped away. To borrow The Pragmatic Programmer’s woodworking analogy, I’ve gone from building handcrafted chairs to assembling IKEA furniture. Both function the same, but one has an aesthetic that makes you appreciate the human element.

I saw an example of this the other day during a code review. I spotted a code smell I was familiar with and left a comment. My coworker had his LLM address the issue, and it told me “I’m not making that change” before explaining why the change wasn’t necessary. In the end, I was right, and I gave it some additional context to work from, but the exchange confirmed a suspicion I’d been having: no one cares about that kind of stuff anymore.

Did all the time and energy I spent over the past decade honing my software engineering skills go out the window? Will I spend my life fending off hordes of LLM agents writing inelegant code and cleaning up their messes? Am I doomed never to write code again and to become a mid-level manager of robots instead?

Upon reflection, the answer is no.

This past week, in a one-on-one with my (new) manager, I brought up my existential crisis and my low energy. When I told him the code review story, he said, “Ah, I know what it is. You’re missing the teaching element of this job.” And it clicked. I’ve written three books and held countless meetings to discuss patterns and designs. I’ve always been involved in internship and mentorship programs. Teaching taps into a deeper joy I have in sharing fun facts and in learning new things just so I can share them: getting to the roots of things to better understand them and the decisions behind them. I’m constantly searching for how things work deeper down, or why something is the way it is.

“A man who has written three books likes to share knowledge.” That’s what made me think of The Pragmatic Programmer and the teaching of a craft. Automation may keep increasing, but we’re still going to need people to help make decisions. You can get far by having an LLM write your code, but it will be difficult to maintain if you don’t know what’s going on. I don’t need to know how my car’s engine works to drive it. But even in a self-driving car, I need to know where I’m going, and someone needs to know how to fix it when it breaks down.

So if you’re a software engineer who’s afraid of the future, I’ll leave you with this. Share your knowledge. Learn to document, design, and architect. Establish shared rules for your code, your process, and your standards, and then follow them. Test the crap out of all of it, and make sure it’s visible and legible to you. Pull out all the stops on integrations that help you support the LLMs, giving you visibility and telemetry on everything from production metrics to code quality dashboards.

I’ve been working on a lot recently, and I intend to share some of it here, in the spirit of the books I’ve written, to help others down this same road.