October 22, 2026
Keep in touch with your software
Building software is in the middle of a full-fledged transformation. At times, it has felt like a metamorphosis. In some sense, this reminds me of my relationships with friends from college. We keep in touch, and we wouldn't be the same without everything we've gone through together. But we don't share daily highs and lows together in the same way we used to. In many ways, the game has changed. Allow me to elaborate on the deeper parallels this has with agentic software engineering in 2026.
After graduation, at least for me, I was quite devastated on the car ride home back to Minneapolis, and I couldn't stop thinking about all the people, places, and moments that are officially behind me. As days went on, my mind naturally began focussing on the life I had in front of me. I went for vacation, began a new job, and moved into a new apartment. My new life had jumped into full swing. In this new life, I didn't get to see my college friends everyday anymore. Even with my best of friends from college, we had to navigate keeping in touch via text, facetimes, and planned trips. The ease-of-communication was simply not there anymore, unfortunately. A little thing called effort became essential for us to keep in touch.
Fast forward seven years, and I'm a grizzled software engineer - I feel like I've lived multiple lives since my college years! At this pace, I might live hundreds. Anyway, this recent evolution of software engineering in the agentic era has got me questioning everything (what's new?). I've been swept up in agentic engineering for the better part of two years now, for eight hours a day. One thing I've felt a lot, and heard from others too, is a constant tension between learning and shipping.
For one, with agentic engineering, it is easier than ever to get away without learning. For certain things where speed is more important than correctness, this can be a beautiful thing. I don't want to bang my head against the wall to get a static site deployed for a friend - I'd rather just have my agent take care of it in a pinch. But for real work, and for career progression purposes, learning is generally a helpful thing! On professional projects, there can be even greater pressures at play telling you to take the easy route. Rushing tickets to completion to hit milestones, to free up your own free time, or simply to give your brain a break are all very real and common temptations. These kinds of temptations never existed to the same extent before LLMs came along.
Most engineers will fall into these temptations from time-to-time - that seems like human nature. But over time I've started to see with more clarity which details are worth spending time on, and which might not be. To relate this to college friends, I don't necessarily need to see them all every single year, because I don't have enough time or money to do that. But showing up for their wedding is something that holds enough importance to warrant buying a suit, flying, and dedicating a weekend to them.
At the end of the day, keeping in touch is important. It's important for me to know where to find each of my friends, and it's important to have a general idea of what they are up to. It's also important to know which relationships are still providing value to me, and to be honest about which ones might not be. And when given the time and space, it's important to dive deeper into those relationships so we can learn from our friends, and learn how to show up for them better too.
I've been viewing software development in a similar vein, recently. It's important to resist falling out-of-touch with those college friends that matter to you. Just like it's important to resist falling out-of-touch with the software your building at work. Choose moments to dive deeper into code, learn more, and grow alongside your software.
Thanks for reading!