Introduction

I work as the CTO at Giant; managing software engineering teams, leading product development, creating resilient systems, and operating internet infrastructure. I've been doing this for the last 15-or-so years.

My professional interests lie in digital giving; I help charities, NGOs and other ethically-positive organisations promote themselves online, and raise funds through digital. Outside of my work, I'm interested in UNIX, open source, and digital history.

This website doesn't represent the views of Giant, but there's probably a lot of overlap.

I have profiles on Github and LinkedIn.

Right now

Like many people in technology, I'm trying to figure out what AI means for our industry, and the people who work in it. I've written about AI's utility and how it's different from other bubbles, and the impact AI might have on companies like mine. While using LLMs to write code, I've been thinking about how human practice can help code agents, verification of AI-generated code, and a few articles about tools and services; but these articles are probably outdated by the time you read this.

Articles

See all articles

mastodon-to-bluesky

June 14, 2025

I've been using Bluesky more and more recently. It's a pleasant enough place to post, though I'm still not entirely convinced by the AT Protocol, but ...

python bluesky mastodon social-media howto

Good practice is good for LLMs too

June 08, 2025

LLMs are changing how we write software. In the face of this unheaval, it's tempting to think these tools somehow absolve us from following good engin...

ai llm development practices code

Codex, Jules, and Claude Code comparison

May 23, 2025

I've tried three of the newer agentic code assistants this week: OpenAI Codex, Google Jules, and Claude Code. I asked each of them to operate in the s...

codex openai claude gemini jules anthropic agent ai

Four Bubbles I've Lived Through, With One Exception

April 29, 2025

Working in technology means riding wave after wave of hype. Some waves reshape the landscape; others crash on the shore, leaving behind damp sand and ...

technology hype metaverse nft crypto ai opinion

Social

See all posts
Amusing.
June 14, 2025
Claude Code getting a plan/implement mode is sure saving me a lot of typing. I've probably typed the phrase "show me your plan, don't implement any changes until I approve the plan" a thousand times in the last few months.
June 14, 2025
Using 20GB of GPU VRAM to OCR and extract your ridiculous PDF format API docs into some readable Markdown. 2025.
June 14, 2025
Claude Code wastes so many tokens on figuring out what folder it's currently in. This happens regularly when it's prefixing commands with `cd whatever &&`. Is anyone else experiencing this, or is there some local quirk with my project layout?
June 14, 2025
This is because I am trying to factory-reset a Thinkpad, using the Lenovo recovery tools. Despite my ~25-year career in technology this task has taken me almost a full day at this point.
June 14, 2025

Other Content

Contact

If you need to contact me:

Don't assume I will reply quickly.

About This Site

This site is just some Markdown documents which I maintain by hand, with a one-function Python wrapper to manage responses. I'm sure there are a lot of inconsistencies and broken links. I keep a site todo list.

Atom Logo