I love Nystrom's writing, and he's so good at it because he's written so much. A huge part of the value of things is how we grow in the making of them, and I worry that in a world where we accept generative slop, we'll never have the opportunity to woodshed enough to become excellent at a craft. I'm a good engineer because I've written tons of code, I've taken no shortcuts, and I've focused on improving over my many…
I think this will be a problem in the middle term, and I've written about such deskilling before [0]. With the latest crop of foundational coding models and harnesses, and more progress on the way, I'm beginning to wonder if it will matter? If there's a future where agents are designing the code, implementing the code, and reading and reviewing the code... At that point the code is no longer the thing. "Software engineers" will continue to sit at the interface of product and software, but the software will be writing itself. Of course there will be a need for programmers who can actually read and write computer code, the same way there's a need for Fortran and compiler devs today.
The skill that all software engineers will need to learn, regardless of level, is how to leverage commoditized reasoning to build products effectively.
- how to design systems declaratively and in terms of requirements and constraints
- how to configure the systems in such a way that they're automatically testable end-to-end
- how to move tacit knowledge out of people's heads and into the context (all of our meetings will be transcribed; questions from the agent will be generated during the meeting resolve ambiguity; the agent will be an omnipresent attendee in all meetings: "Agent: The topic you're discussing overlaps with what Sally said three days ago when she met with Mike. They covered xyz..."; companies that follow remote work best practices will have an advantage here)
- how to allocate and orchestrate teams of people and agents