AI declaration

Updated

The long and short of it

I use AI as tool, but this site has not been built by AI.

The ethics of AI in software engineering

My general stance on AI is mixed. I am ethically opposed to AI in some applications, such as art, but I am happy to use it in others, such as coding. As far as I see it, coding has always been about layers of abstraction. We don’t generally write websites in assembly language! In my career as a software engineer, there has always been a steady growth in the number of layers of abstraction1. It’s been a very long time since you’ve had to truly understand how the whole thing works in order to get things done.

That’s not to say that I believe we’re in a place now where we can rely on AI to code. I absolutely don’t think that. It’s far too shonky, and makes a lot of terrible decisions - although I am increasingly impressed every time I try it. I just won’t be surprised if we do get to a point where software engineers spend more time like helmsmen steering the ship2, rather than churning out code by hand.

I do use AI to code in my professional life (where appropriate, where approved, and always sanity checked). But this website is not my job, it’s my hobby, where I want to engage with coding manually for the pure fun of it. This site’s entire purpose is to celebrate slower living, the handmade, the joy of the slog. As such, I use different principles for how I do things here.

There is no AI-generated content on this website

The point of this website is to express myself. Synthetic content would be counter to the goal. Unless otherwise specified, all text is written by me, all photographs are taken by me, and all drawings are by my own hand.

This website has not been vibe-coded

The code behind this website is written by me, barring any tools that I’ve already disclosed. I do use AI in my coding process (see below), but not to generate code - in fact I explicitly instruct it not to.

AI as a research tool

I use AI for research, in a similar way to how I use Google for research. It’s a great way to interrogate documentation, or to figure out the right approach to use to solve a problem.

AI as a rubber duck, and an aide to learning

I do sometimes ask AI to debug an issue if I’m using a tool I’m not familiar with. This has become part of my learning process - I’m not asking it to fix the code, but to explain what I’ve done wrong.

I also sometimes use small code snippets that arise in conversations with chatbots, in the same way I may use code snippets found through Googling or on StackOverflow. My baseline principle is that I have to understand how it works before using it.


  1. Object orientation. Bootstrapping frameworks like Spring in Java. Database ORMs so you don’t have to write SQL joins. JavaScript wrappers like jQuery, and then entire ecosystems like React. CSS baselines like Bootstrap. Virtual machines and containerisation. Functions as a service like AWS Lambda, so you don’t even need to think about infrastructure. Et cetera, et cetera. ↩︎

  2. Not a Kubernetes joke ↩︎