Things I've done with AI

| View comments on Hacker News

I started programming in middle school. The first thing I remember writing is HTML for my neopets homepage. That morphed into writing static sites for Minecraft servers, and later on Java plugins for Minecraft.

Programming is so fun. I took it on as a hobby and it became an obvious career path, but I didn’t realize how well engineers were paid until my junior year in college. I had received an internship at AWS and was astonished. That led to a return offer and eventually to where I am today, with about seven years of professional experience and another seven of self-teaching/programming as a hobby.

I felt I was a year or two ahead of the application-focused classes I took. The more theoretical courses helped round out my knowledge and was the foundation I needed to work at tech companies.

In college I programmed all of the time. I found problems to solve. I found libraries and languages to try. I always wanted to learn more — to make sure my code was well-architected, maintainable, “clean”. This led to me reading programming books for fun. Clean Code taught me how to write better Java. You Don’t Know JavaScript taught me that JavaScript is actually quite a good language. Category Theory for Programmers taught me that it’s really hard to find a job writing Haskell.

I tend to qualify my statements before talking about AI. I write this to make it clear that I have a passion for programming. The money is quite nice but it’s incidental. I would be doing this if I were rich. I honestly cannot imagine my life without programming — it’s so satisfying to learn, solve problems, and build something others can use.

I was initially quite hesitant on applying AI to programming. I avoided GitHib Copilot when it came out. I thought Cursor was overhyped. I didn’t understand why someone would use Claude Code (a CLI/TUI interface) over an IDE.

I have spent years caring about architecture, type systems, maintainability. I am quite good at paying attention to every little detail. I wanted full control over my code. How could I have control if AI is writing everything? How could I be sure it wasn’t writing my project in a substandard way?

Effectively using AI required fundamental shift in how I thought about my projects. Why did I care about types? Why do we have design patterns? Why does code need to be maintainable or “well written”. For hobby projects, it can be a source of pleasure to write and see beautiful code.

That’s not an acceptable reason for projects I’m paid to work on, though. At work, all that matters is that value is delivered to the business. Code needs to be maintainable so that new requirements can be met. Code follows design patterns, when appropriate, because they are known solutions to common problems, and thus are easy to talk about with others. Code has type systems and static analysis so that programmers make fewer mistakes.

Speaking in the context of solving a problem: does AI need to write beautiful code? No. It needs to write code that works. The code doesn’t need to be maintainable in the traditional sense. If you have sufficient tests, you can throw some LLMs at a pile of “bad” code and have them figure it out. Type systems and static analysis continue to be useful to LLMs, if not more so than humans.

This is all to say: if you care about solving a problem more than gaining satisfaction, LLMS fit the bill. I’ve discovered that, largely, I enjoy solving problems more than I care about writing code. I haven’t written code, for work or personal projects, since October 2025. I’ve only written prompts and reviewed (a lot of) LLM output. This has led to me making a massive number of projects.

Projects

Personal

I’ve done all of these in the last 9 months with the help of Cursor and Claude Code.

Work

  • Writing complex design docs to migrate projects or add features
  • Writing bespoke tools for investigations, data analysis, etc.
  • Automating common tasks around operations, root causing, etc.
  • Quickly adding new features or fixing bugs
    • Small requests from PMs or users are now essentially free to implement. The only work left is reviewing code and manual testing.

Final Thoughts

I’ve accomplished so much with AI. I still am figuring out how to use it effectively. There is so much power in these tools — there has never been a better time to be a programmer who just wants to build things.

At the same time, it is a bit exhausting. Work in particular has been difficult as we slowly embrace these new tools. There are many problems to solve around testing, developer experience, and velocity.

For personal projects, testing and documentation has been become the bottleneck. I have to make sure that the LLM has produced the correct thing, and that the documentation it has written is truthful.

As an industry I think we have to invest a significant amount of effort into better tools for testing and generated documentation.

I’ll continue use these tools with the hope that they don’t make me obsolete too quickly.

Recent posts from blogs that I like

Perhaps not Boring Technology after all

via Simon Willison

Jerusalem Delivered: 7 The death of Clorinda

Tancred loses Erminia's trail in a wood, and is tricked into stepping into a dungeon. Battle rages outside Jerusalem, and Godfrey is forced to try to take the city, putting Clorinda at risk.

via The Eclectic Light Company

How AI Assistants are Moving the Security Goalposts

AI-based assistants or "agents" -- autonomous programs that have access to the user's computer, files, online services and can automate virtually any task -- are growing in popularity with developers and IT workers. But as so many eyebrow-raising headlines over the past few weeks have shown, these p...

via Krebs on Security