Matthew Lang avatar

Matthew Lang

Family guy and web developer

Three hours later, and I’ve managed to deploy my first Rails application using Kamal. I’m not completely sold on it yet, but I can see the appeal. Now that I have something working and can refer to, over the next few weeks, I’ll aim to deploy a more complex Rails application.

I am having a go at deploying a Rails application with Kamal tonight. I’m at the point where I am wondering why it doesn’t work the first time as it does in the demo video on the Kamal website.

I am trying to determine other ways to measure in-app activity besides tracking email open rates for Dailymuse. Difficult to do for an email product, but I’d rather not go down the tracking-pixel road.

Jen put me on to a Japanese stationery store called Bungu, which came up in her Instagram feed. I ordered a variety of things to try out, as well as a couple of things for Drew. It arrived this morning, with the items wrapped in new cloth. Very fancy. Will write more about the contents later.

A furoshiki-style cloth wrapping in white, red, and brown with the text "bungu" printed in red, tied in a knot on a desk next to a white mechanical keyboard and smartphone.

A clear plastic bag of Japanese stationery items labelled "bungu," containing various office supplies including pens, erasers (PLUS brand), a book clip, washi tape, and other writing accessories, displayed on a light fabric surface.

I think Drew and I are going to make a start on The Goonies set tonight. He’s been itching to get started on it. I think I’ve made him wait long enough.

A LEGO Ideas set based on The Goonies, showing the box art featuring One-Eyed Willy's pirate ship built in brown and grey bricks. Multiple minifigures representing characters from the 1985 film are arranged across the multi-level ship interior. The box sits on a wooden surface, with a retro space-themed poster partially visible in the background.

Just uploaded my own bookmarking app, Cairn. Uses an HN-like algorithm to age links from the board over time, but adds weights to different tags, so that combinations of tags for each bookmark produce different scores and should show the more important tags at the top. Will write more on this later.

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.