Matthew Lang avatar

Matthew Lang

Family guy and web developer

Finding the balance with AI dev tools

As a relatively late adopter of AI tools, well, amongst software developers anyway, I am slowly coming round to the benefits of AI. Like most people, I started with the big-name AI tool, ChatGPT, but it didn’t take me long to discover Anthropic and their Claude and Claude Code tools.

Over the last six months, I’ve been a heavy user of Claude Code. It definitely provides serious productivity gains. Here are a few examples of where I have used Claude Code in the past few weeks.

  • Upgrading a couple of Rails applications from 7.0 through to the latest 8.1 - The Rails upgrade process is fairly straightforward, and I’ve done quite a few upgrades over the years. Using Claude Code with this has sped up the upgrade process.
  • Re-starting development on Dailymuse - work on this has been slow over the last couple of years, but the last few months have seen some big changes in my micro-product.
  • Exploring Hugo and Jekyll themes - I had been working on a Hugo theme I planned to use on Micro.blog, but since moving to self-hosting, I have migrated this over to Jekyll.
  • Built supporting tools for my blog - Self-hosting with Jekyll is easy, but I wanted to still have the option of hosting images and posting on the go as I used to with Micro.blog. I managed to build a number of these features to support my Jekyll blog over the course of a week.

The accelerated pace of development is probably the first thing software developers notice when using AI tools like Claude Code. You can build features and even applications at such a rapid pace, which is good, but it’s also been a red flag for me since I started using these tools.

With increased production rates, I am concerned about retaining the knowledge of what I am building. Will I know enough about the code base to support it in the future? When my code breaks, how will I know how to fix it?

I am exploring a few ways of ensuring that I know the code that I am shipping, including:

  • Taking notes on code changes, especially in areas of the code base that are important and application or business-critical.
  • Adding more comments to my code - this might serve the AI tools more than me, but having comments throughout the code does give me a quicker understanding of the code I am adding and where I am adding it to.
  • Spending more time reviewing code — especially AI-generated code. What is this code doing? Do I understand it? Can I make this code better? Is this code even suitable?

There are other ways I can improve my retention of the codebase, and yes, AI tools can help with that. However, as good as the AI tools are, there still needs to be human understanding of the codebase to make the right decisions about future changes, and that begins with understanding the code and ensuring I retain enough knowledge about it.

We finished watching Schitt’s Creek over the weekend. Yes, we’re a bit late to this one, but we tend not to watch many things as soon as they’re released. It was great fun to watch.

Tonight we started watching Shrinking on Apple TV. Good so far!

A change to my blog

After a few years of being on the Micro.blog platform, it’s time to host my own blog again. I’ve thoroughly enjoyed hosting my blog on Micro.blog, but I want to have more control over what my blog does for me.

Having my blog on Jekyll wasn’t enough, though. I needed to be able to blog from my phone if needed. So, over the last couple of days, I have been building a Rails app that helps me to do what Micro.blog offers. I’ve tried to do this in the past and failed miserably, but this time I’ve added enough knowledge to know what I need.

The Rails application handles two important steps that I need to continue blogging about when I have my phone.

Uploading and hosting images

The first is the uploading and hosting of images. I previously included all images in the blog itself when I last ran my blog using Jekyll. As expected, it led to some seriously long build times for Jekyll.

The new application allows me to upload and serve all the images for my blog. Each image is saved in different sizes, and I’m using an LLM to generate alt text as it’s uploaded.

This allows me to manage uploads separately from the blog itself and keeps the blog’s build time fast.

Posting on the go

The second is creating posts on the go. I previously did this using GitHub’s web interface, pasting the post directly into my repo. Not exactly straightforward, and it worked to an extent, but it became more of a chore than anything else.

The new application allows me to compose posts on a much friendlier web page. I can save the post as a draft and come back to it later. When it is ready to publish, it commits the post directly to my blog’s repository on SourceHut, where I have a build script to deploy the code to my server after each commit.

What I’ll miss

Yes, features are missing from my setup, like cross-posting, bookmarks, and bookshelves, and over time, I might replace them with my own take on these features. For the moment, though, I’m quite happy knowing that my blog is back to being something I have full control over, and I have more of a say in how it’s built and displayed.

And yes, this means I have parked the three-column theme I was building for Micro.blog. I doubt I will finish it. Apologies if you have been looking forward to it.

I will still be keeping my blog pointed at the Micro.blog community and I wish nothing but success for the platform. It’s a great community, and I hope it continues to grow.

I’m slightly divided on who to support in the curling tonight. The all-Scottish GBR team or the Canada team? Either way, it’s going to be a great final for the gold medal.

Jennifer planted these bulbs in October in a layered fashion so that we would see all the flowers through springtime. Looking good so far.

A budding plant emerges from the soil in a garden bed, surrounded by smaller shoots with a blurred background of artificial grass and a net.

My wife is having a serious geek out moment with her new record player tonight. Dug these two classics out from the loft. Time to start collecting vinyl again!

Two vintage record albums are shown: one is of Jeff Wayne’s War of the Worlds and the other is the Star Wars soundtrack.

I’ve been hesitating to unfollow a blogger I have followed for years. This morning I decided to unsubscribe. The silence from them is deafening.

It’s great to see a player like Sam Darnold win a Super Bowl. A real testament to not only his physical ability, but also his mental resistance. Also, it pays to be patient. The NFL is a tough league to crack, but players need time to develop their skills. Sam Darnold played the long game and won.