AI News HubLIVE
站内改写6 分钟阅读

待翻译:Reflections on software engineering in the age of AI

AI 服务暂时不可用,以下为来源摘要,待恢复后补全翻译:Reflections on software engineering in the age of AI 2026-08-06 In September 2025, I had the idea to revive my self-hosted music streaming platform Coral. I had just discovered the website cosine.club and was blown away…

来源Hacker News AI作者: GOATS-

AI 服务暂时不可用,以下为来源正文,待恢复后补全翻译。

Reflections on software engineering in the age of AI 2026-08-06 In September 2025, I had the idea to revive my self-hosted music streaming platform Coral. I had just discovered the website cosine.club and was blown away by how accurate the recommendations were for electronic music. I found out that it was using public machine learning models from Essentia and thought of a way to integrate it into Coral. The way the website works lies in its name, it uses Essentia’s inference pipeline and models to get audio embeddings, which are searched through via a vector database using their cosine distance. The lower the cosine distance is, the more similar the embeddings are and thereby the more likely the tracks in the list are to match. I started by using their Python-based inference pipeline, which uses their C++ library under the hood to get my embeddings and built an inference API to use in Coral, which worked, but was complicated to distribute to users who weren’t using Docker. I had recently learned about .NET’s Platform Invoke capabilities, which allows you to call unmanaged code from C# and thought that it’d be relatively easy to call Essentia’s C++ library from C#. Needless to say, I struggled quite a bit having never built a C++ library before - and Essentia was no easy build. After a lot of research and struggling, I ended up using Gemini and Claude’s chat interface to create a C-style wrapper for the C++ library, exporting the functions I needed to call from C#. At this time, I was copy pasting code in and out of Gemini, which was a painful experience - then I tried Claude Code. I managed to call the wrapper from C# and I was super happy to see it all working, except for one major problem, the library suffered from severe memory leaks. After scanning about 500 tracks, Essentia’s library had consumed all of my memory. Essentia’s memory leak after ~500 tracks I had to fix the memory leak somehow and together with Claude, I figured out that the best way to solve the issue was by spawning an ephemeral CLI process which ran per track. This also meant that I could easily parallelize the process of getting track embeddings. This was also around the time when I started the frontend rewrite to use React Native instead of React, so that I could listen to music on my phone. It was at this point I got hooked, if it could figure out how I could use Essentia’s tooling in Coral, surely it could also figure out how to rewrite my frontend. It was crazy to me to feel like I had the music player of my dreams within arm’s reach. Over the course of 3 months, Coral got a gapless audio player, a desktop client powered by mpv which could play any audio format under the sun, a recommendation engine which worked incredibly well, bulk inserting rows in its SQLite database for rapid indexing of music collections, full-text powered search for instant lookups, an aesthetically pleasing user interface and the list goes on. The back and forth process with Claude was fun in the beginning, but when bugs started appearing, I went into the codebase and realized that I didn’t understand most of what was going on anymore. Coral wasn’t my project anymore, it was Claude’s. I lost the sense of ownership of my codebase, trapped in a pile of technical debt and sadly ended up upgrading to their Max plan so it could continue working for me. I kept paying for the Max plan for a few months until I ran out of steam, until I got tired of prompting and became sad about losing ownership of what once was my favorite project. I am however glad to have experienced what it was like to work with coding agents in a personal project, because 4 months after using them in Coral, my manager asked me “why aren’t you using any AI tools to do your work?”. I told him about my experience using Claude Code, both how productive I became, but also about the feeling of losing ownership and not knowing my way around the codebase anymore - to which he responded something along the lines of, “upper management wants engineers to start using AI tools more and you are one of the few people with no AI usage in the last few months, give it a shot and see how it works out for you”. My employer gave what seemed to me like an unlimited token budget to spend with Cursor - and the cycle repeated itself. It has now been 6 months since my manager asked me to adopt AI tools in my day-to-day work and I’m worried about the trends I am seeing, as well as the impact it has had on my personal satisfaction and happiness at work. While browsing through Hacker News last year, I stumbled upon this article, which really resonated with me. Technical Work as Emotional Regulation I believe sometimes building things is how we self-soothe. We write a new tool or a script because we are in a desperate need for a small victory. We write a new tool because we are overwhelmed. Refactor it, not because the code is messy, but your life is. We chase the perfect system because it gives us something to hold onto when everything else is spinning. I have written entire applications just to avoid thinking about why I was unhappy. Programming gives you instant feedback. You run the thing, and it works. Or it doesn’t, and you fix it. Either way, you’re doing something. That kind of agency is addictive. Especially when the rest of life doesn’t offer it. We program because we can, even when we shouldn’t. Because at least it gives us something to rebel against. -raf, 2025 I finally understood why I spent so much time working on my personal projects while I was going through tough periods of my life. I understood why programming made me so happy, why I care more about the process of building something than the result. Prior to my AI adoption at work, I had been given a massive project which had taken me 4 months to build with many complex requirements - which was exactly my cup of tea. At times I was so absorbed in the project that I ended up losing track of time and forgetting to take care of myself. I had so much fun with it though. I was looking forward to work every single day, excited to get back into hyper-focus state, excited to tackle the next part of my project. The day I adopted agentic coding tools at work was the day I lost the ability to enter a true hyper-focused state there and my sense of self-fulfillment along with it. In the past 6 months, my job satisfaction has slowly decreased because of a multitude of things, most of them being related to shoving AI into every process where possible. We are constantly getting pinged in Slack by our automated alert triaging system, receiving phone calls from AI alerting systems for non-critical incidents. A decline in code quality, observed cognitive atrophy in both myself and my peers and forgotten context of codebases the team generally had great knowledge of. Finally, most important to me, I’ve lost the ability to focus on a difficult problem now that we’re heavily advised to use agentic tools to generate code to implement our features. The agentic coding loop is slow. It takes a lot of time to correctly plan out a feature, as the first thing you must do is to scope the work, write, verify then execute the plan. LLMs will often over-engineer the code they write, so you must spend time on simplifying and cleaning it up. On average, it takes me 1-3 days to knock out a few high quality PRs for a large ticket. This is often due to the time it takes to clean up after the LLM after it has completed the code it generates, even with strict rules and skills to ensure that the model is guided while the code is generated. I often wonder if I would’ve spent the same amount of time implementing the feature myself by hand. I know for a fact I would’ve had a lot more fun doing so. I feel more like a babysitter than an engineer. I still use the Cursor CLI daily at work, but sometimes I wonder if I can gain my job satisfaction back by going back to coding by hand - or using more advanced tab completion models which allow me to handle the complex parts while the LLM fills out the boilerplate. The social dynamics have also changed since the adoption of AI at work. Instead of messaging a member of another team about how their services work or how best we should integrate with their service, we often defer this analysis to an LLM. This has made it trickier to get to know people across teams as it feels like the mental threshold for getting in touch with them over Slack has increased. This has made working for a fully remote company feel even more isolating than it was before. I have also observed communication from peers that has been fully generated by an LLM. I spend most of my day speaking to an LLM - for once I’d like to feel like I am communicating with a human on the other end - not a meat proxy. I for one hope that the current performance expectations will ease up once members of leadership who aren’t engineers truly understand how mentally draining the status quo has become. I long for the old days, the old days where I could focus on having fun programming. Instead, I’m stuck waiting for an agent to write sloppy code that I’ll need to spend a few hours refactoring later. I used to love programming after work as a way to wind down for the night. I also used to love learning new things on my computer over the weekend. I haven’t done either of those things since the AI adoption at work. Coral’s development has been dormant since January. This is the Rootly on-call system. You have a triggered alert. I don’t even pick up the phone anymore. I have 30 unread voicemails, all from Rootly. If you’re calling me from the UK, I’m sorry I missed your call, an AI agent was busy telling me about an alert I can’t do anything about. Reply to this post by email ↪