Thread

🛡️
- How do you code these days? This is a common question these days. I've been evolving my way of coding since LLMs came into play, before the term vibe code was issued. I've been exploring the different paradigms and shiny new approaches that appear almost every week, but to be honest, it is not really for me how the industry and devs are leaning into these new tools and framing. Fully autonomous development is not for me. I use the tools, I test the tools, but I don't fully embrace the whole vibe coding propaganda campaign that big AI labs are shilling. I use LLMs to assist in my work, not to fully delegate it to them. By doing that, I can maintain a consistent mental model of the software I'm writing. I can make critical decisions on the architecture, security considerations, and everything related to crafting sustainable software. By using LLMs to assist during my work, I can delegate tedious tasks, assert spec compliance, iterate and polish parts of the code without introducing breaking changes, and make maintainability easier, while effectively being more efficient and performant in my work. I avoid embracing the fully autonomous paradigm because we are not there yet, and tbh I think we will never be. By observing the current trends in companies, we can see that a handful of them are firing people, not just devs or engineers, but also salespersons, technical assistance, etc. The result now days is very low to zero benefits and a perceptible degradation of their services, together with an horrifying generalized burst of CVEs, attacks, and instability. Humans with knowledge and expertise are very competent and they cannot be replaced without sacrificing quality, scrutiny, critical attitude, and the capacity to make aligned and informed decisions. Why am I writing this? I think we are at a tipping point, and since last year things have started to change drastically. I think it is really important to talk and reflect on these things. I conceive LLMs and these new tools as enhancements, but not as fully autonomous entities with the capacity to take critical decisions in long term scenarios. They are like the Iron Man suit or a Mecha suit, an exoskeleton. They provide you with new skills and empower you with new tools and capabilities, but good luck with letting your agent run free for hours, days, weeks... as the industry is claiming, this is just my Pov, but I think it can also be a bit misleading for new people who haven't ever coded before, as they are finding loads of frustration when maintaining or just after coming out of the first MVP. Don't get me wrong, I love to see people who haven't touched any line of code before developing apps that serve them and their community, discovering the power and freedom that comes with creating your own software. But I think the approach should be to keep using LLMs to assist you, to learn and accompany you, and to dialogue, instead of fully detached development. This is a great opportunity to learn new things. It has never been so easy to get answers to your coding questions and learn. If you reject seeing a line of code, you'll end up with a mess, and if you don't know how to deal with that mess, you'll get really frustrated. And yes, it's true that LLMs are going to get better and more capable, but so is the mess they create, as they are delegated to perform bigger and more critical tasks due to the assumed competency. The bigger the mess, and again, of course, these things can be mitigated with guardrails, evaluation loops, etc., but there are no real solutions, and there never will be perfect solutions. So just final words: Use the tools and don't let the tools use you. Take advantage of them; it has never been so easy to learn new things. There is no such thing as a free lunch, but all of this doesn't mean that you cannot embrace the fully vibe coding experience, especially with something like Shakespeare.dyi that already paves the way and reduces the 'free wheel' risk or 'hallucination' tendencies. But once you have a shiny new thing, good luck maintaining it

Replies (2)