Vibe Coding Does Not Solve GIGO

I fondly remember this quote when I first heard it - and it made me chuckle. However this is such a good reminder of “GIGO” (Garbage In, Garbage Out) that is so relevant in today’s world of AI and especially Vibe Coding. ‘Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?’ Charles Babbage Garbage In, Garbage Out is a principle of systems design, and also common sense, that simply means that if you feed in the wrong questions, clearly you will get the wrong answers.

Continue reading...

Life Planning (with AI!)

The problem statement When you’re young, single, without family and with a job that you love, it’s easy to give that a lot of focus and energy. When I was promoted to Principal Solution Architect at work, I was about 12th in EMEA, and the youngest by a long way - in March 2019 at age 32. Soon after that I got married, started a family, COVID happened (!), bought a much nicer house and I would say life got a lot more complicated!

Continue reading...

How Do I Name My Projects?

It is often said that there are two hard problems in computer science; cache invalidation, naming things, and off-by-one errors. This post is about the approach I’ve taken over the years to name things - how I’ve named my projects. The very first project that I ever really created is also one that I released - called technowax. It’s actually still online today, in a fashion; http://technowax.net/ . I’m ashamed so say now, after all these years that the name was not original - and it was actually a distant family friend who had a web design company, I think it was, called TechnoWax.

Continue reading...

That time I got an E450 Workstation

I got a SUN E450 workstation for free back in the mid 2000s. I got it because it looked super cool, but I wish I had more skills back then to be able to use it! Back in the mid 2000s, I was helping my Dad move his offices from one site to another. While we were there, I had spotted another company that was moving out the offices at the same time, and in particular, saw what looked like a very cool computer.

Continue reading...

The downside of '26 years of web developer experience' — an unhelpful belief about how to write frontend code

I’m 37 today (2025), but I started coding for the web 26 years ago at around 11 (~1999). That’s “26 years of web developer experience,” but I’ve realised it also bred an unhelpful belief about how to write frontend code. I started with Windows Notepad at school, producing HTML pages for Internet Explorer 4. Early tools included Dreamweaver (pre-Macromedia) and Microsoft FrontPage. Without a FrontPage license at home, I used Microsoft Publisher (yes, the desktop publishing app).

Continue reading...

Semantic Versions, Commits, and now Releases

Nearly every technologist knows about semantic versioning (semver), it’s familiar for developers and sysadmins alike. However, what’s really cool is implementing semantic commits and semantic releasing! I only really started to become familiar with the concept of semantic commits a couple of years ago. When you’re a hobbyiest writing lots of code, there isn’t much motivation or need to write a commit message - because nobody is going to read it.

Continue reading...

Fastmail Review

A couple of years ago I switched from Gmail to Fastmail for my email, and I have to say I’ve been super impressed. The reason that I switched from Gmail was that I was becoming less and less willing to support big tech companies that were not respecting my privacy, and Google is one of the worst offenders. Fastmail was one the few candidates that a took a look at, and honestly I cannot remember now what other providers I looked at.

Continue reading...

Markdown vs AsciiDoc - which is better?

Over the years I’ve used both markdown and asciidoc for writing technical documentation. Many more people are familiar with Markdown because it’s used on GitHub. However, I think I probably found AsciiDoc first because it is the standard used by Red Hat technical documentation. Both have their pros and cons, but I’ve come to realize that one is not necessarily better than the other. It really depends on the use case.

Continue reading...

Implementing 15 Factor Apps with GoConnSPA

This is just a quick article to describe how the GoConSPA stack implements the 15 Factor App principles. 1. One Codebase, Ont Application GitHub: All code for the application is stored in a single repository. 2. API First ConnectRPC: The api is defined in protobuf, and exposed via ConnectRPC. 3. Dependencies Go Modules: All dependencies are managed via Go modules, and vendored in the repository. 4. Configuration GitOps: Configuration is stored in Git, allowing for version control and easy collaboration.

Continue reading...

The GoConnSPA Stack

I’m eager to write about a technology stack that I’ve stumbled into, which I believe is the nicest one I’ve ever worked with. The stack is called GoConnSPA, and it consists of the following technologies and tools; Overview flowchart TD A[Backend Service] <-->|websocket| B[Single Page App] Technologies Go: The Go programming language, which is known for its simplicity and efficiency. ConnectRPC: A gRPC framework for Go that simplifies the process of building and consuming gRPC services.

Continue reading...

About James Read

Picture of James Read James is a "full stack" Open Source enthusiast, who enjoys creating no-nonsense open source software.

Dad, hobbyist developer, open-source enthusiast and Red Hatter.