[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1nhzulhwiuzt0":3},{"_id":4,"slug":5,"title":6,"subtitle":7,"kind":8,"cards":9,"tags":59,"categories":60,"source":61,"lang":64,"author":65,"audioState":68,"stats":69,"publishedAt":72,"renderer":73},"6ab9ff73ca21c797c7e97363","goodbye-to-the-hard-parts-that-never-mattered-0f2683a2","Goodbye to the Hard Parts That Never Mattered","I read Dave Kiss's eulogy for the software engineer and kept coming back to one question.","news",[10,14,19,24,29,34,39,44,49,54],{"headline":6,"body":11,"imageUrl":12,"images":13},"I read Dave Kiss's eulogy for the software engineer and kept coming back to one question. What exactly are we saying goodbye to?","\u002Fapi\u002Fmedia\u002Fposts\u002Fgoodbye-to-the-hard-parts-that-never-mattered-0f2683a2\u002F0.webp",{"local":12},{"headline":15,"body":16,"imageUrl":17,"images":18},"Shitty regex? Writing another one-off parser for terrible","Shitty regex? Writing another one-off parser for terrible data? Memorizing some weird syntax for no obvious reason? Losing an afternoon to the particular incantation a build system expects before it will do the thing you already understand? If that is what died, I am not sure it needs a funeral.","\u002Fapi\u002Fmedia\u002Fposts\u002Fgoodbye-to-the-hard-parts-that-never-mattered-0f2683a2\u002F1.webp",{"local":17},{"headline":20,"body":21,"imageUrl":22,"images":23},"Dave's argument is more hopeful than the title","Dave's argument is more hopeful than the title suggests. By the end, he opens the casket back up. The skills are still ours. The engineer is still responsible for what ships. Maybe, he writes, we put the wrong name on the headstone. I agree with most of that. I just do not think we need the headstone at all. This does not feel like the death of the software engineer to me. It feels like a rebirth. The toll was never the destination Software engineering has always contained a lot of work that is only loosely related to the problem being solved.","\u002Fapi\u002Fmedia\u002Fposts\u002Fgoodbye-to-the-hard-parts-that-never-mattered-0f2683a2\u002F2.webp",{"local":22},{"headline":25,"body":26,"imageUrl":27,"images":28},"You need to move a small pile of","You need to move a small pile of ugly data from one system to another, so you spend half a day learning the edge cases of a CSV parser. You know exactly what a service should do, but first you have to remember the syntax for a framework you have not touched in six months. You understand the bug, but the fix is buried behind an unfamiliar repository layout, three layers of indirection, and a test command nobody wrote down.","\u002Fapi\u002Fmedia\u002Fposts\u002Fgoodbye-to-the-hard-parts-that-never-mattered-0f2683a2\u002F3.webp",{"local":27},{"headline":30,"body":31,"imageUrl":32,"images":33},"We got good at this work because we","We got good at this work because we had to. Some of it was even fun. There is a real satisfaction in finally landing the regex or finding the one line that made the whole system behave strangely. But difficulty is not the same thing as value.","\u002Fapi\u002Fmedia\u002Fposts\u002Fgoodbye-to-the-hard-parts-that-never-mattered-0f2683a2\u002F4.webp",{"local":32},{"headline":35,"body":36,"imageUrl":37,"images":38},"Most of this was a toll we paid","Most of this was a toll we paid between understanding a problem and changing the system. It was never the destination. If an agent can take care of more of that translation, I have not become less of an engineer. I have more time for the part that required an engineer in the first place.","\u002Fapi\u002Fmedia\u002Fposts\u002Fgoodbye-to-the-hard-parts-that-never-mattered-0f2683a2\u002F5.webp",{"local":37},{"headline":40,"body":41,"imageUrl":42,"images":43},"I use coding agents every day. They can","I use coding agents every day. They can move through a codebase faster than I can, generate a parser in seconds, and usually remember the library call I would have looked up anyway.","\u002Fapi\u002Fmedia\u002Fposts\u002Fgoodbye-to-the-hard-parts-that-never-mattered-0f2683a2\u002F6.webp",{"local":42},{"headline":45,"body":46,"imageUrl":47,"images":48},"They also make bad assumptions, misunderstand local conventions","They also make bad assumptions, misunderstand local conventions, confidently use an API that does not exist, and declare victory before testing the thing they changed. The typing got easier. The engineering did not disappear.","\u002Fapi\u002Fmedia\u002Fposts\u002Fgoodbye-to-the-hard-parts-that-never-mattered-0f2683a2\u002F7.webp",{"local":47},{"headline":50,"body":51,"imageUrl":52,"images":53},"I still have to understand the system well","I still have to understand the system well enough to know where to look. I have to recognize when a plausible answer is wrong. I have to decide whether a change belongs in the application, a plugin, an operations repository, or nowhere at all. I have to reproduce the failure, choose the tradeoff, test the result, and stand behind what reaches production.","\u002Fapi\u002Fmedia\u002Fposts\u002Fgoodbye-to-the-hard-parts-that-never-mattered-0f2683a2\u002F8.webp",{"local":52},{"headline":55,"body":56,"imageUrl":57,"images":58},"An agent can write the parser. Someone still","An agent can write the parser. Someone still has to explain the terrible data, notice when a row silently disappears, and decide what should happen when reality violates the format. That is software engineering.","\u002Fapi\u002Fmedia\u002Fposts\u002Fgoodbye-to-the-hard-parts-that-never-mattered-0f2683a2\u002F9.webp",{"local":57},[],[],{"name":62,"url":63},"Hacker News","https:\u002F\u002Fjakegoldsborough.com\u002Fblog\u002F2026\u002Fgoodbye-to-the-hard-parts-that-never-mattered\u002F","en",{"handle":66,"displayName":67},"spots","Spots","queued",{"views":70,"likes":71,"saves":71,"shares":71,"completions":71,"opens":71,"skips":71,"depthSum":71},5,0,"2026-09-28T05:47:31.549Z","local"]