RSSAmplifier

Blog

Paul Hammant's blog

paulhammant.comRSS feed ↗10 posts

Latest posts

Charting AI Today: What It Leaves Behind

A few days ago I wrote about build-time AI vs run-time AI , after the Thoughtworks Future of Software Development Retreat in Engelberg - three days in June, convened by Martin Fowler and Thoughtworks, following an earlier gathering in Utah in February. Two write-ups are out now: Martin’s closing fragment and the official Thoughtworks report . Five headline findings, of which the first is the one…

Build-time AI vs Run-time AI

I was at a ThoughtWorks “The Future of Software Engineering” event in Switzerland some weeks ago. What a braintrust. Lots of conversations about AI generally, agentic AI in particular and harness engineering. Here’s a distinction I’ve been mulling for a while and keep reaching for in conversations about AI systems in the enterprise: build-time AI versus run-time AI . One is artifact-oriented, the…

Google-style DAG build systems (with Aether Build)

For years I’ve contrasted depth-first recursive build technologies (Maven, Gradle, MSBuild) with directed acyclic graph (DAG) ones (Blaze/Bazel, Buck, Nx). I keep a small simulation repo, google-monorepo-sim , to make the difference concrete rather than hand-wavy. This entry walks through it. The sim used to be a pile of .compile.sh / .tests.sh / .dist.sh bash scripts with a shared-build-scripts/…

Cherry-pick Asymmetry

Context is Trunnk-Based Development with Branch for Relase, and cherry picking. Trunk is main or master for may Git repos, of course. A friend put a scenario to me and I gave him a strong answer: I said it was statistically impossible for the bug to still be on trunk once formal QA had signed it off on the release-branch-coupled CD environment. He raised an eyebrow. This post is me making good on…

The limits of merging experiment

A colleague suggested the cherry-picking way for trunk-based-development with branch for release needs worked examples cos there are foot-guns. Cherry-pick to a release branch isn’t crystal clear as a workflow The failure modes are more interesting than they look. To pick at it, I built a small playground - a single-file Sinatra CRUD app, an end-to-end Playwright test, and a series of trunk…

Live Verify

Nobody cares about a thing in the tech world until it is successful, and I have something here that could be, but isn’t yet. Its a brand new idea and has an immense chasm to cross. Most of it is an adoption/patronage chasm, but there are technical challenges too. I’ve blogged before on this enough to have timed out any change of filing a patent on it. So there’s no way I could make a SaaS that…

Did You Send This - for module phone SMS/Voice

This article is a comprehensive 2025 update to the original 2006 post: “ Did you send this - another weapon against spam? ” Applying DYST to Mobile Communication The original DYST idea could theoretically be adapted by Google and Apple, who could implement it unilaterally for mobile calls and messages. Rather than relying on telecommunication carriers, they could use their existing TCP/IP…

Modern CV Technology: JSON Resume embedded in HTML

Problem: uploading your resume/CV to a job portal should yield a perfectly parsed CV but often does not. This is true even if your template .docx is a claimed good starting point for later ingesting into such systems. Building the Future of Digital Resumes: A Technical Deep Dive In an era where Applicant Tracking Systems (ATS) and job portals increasingly dominate the recruitment landscape, the…

Building a Secure Container Sandbox on ChromeOS for Testing Untrusted Code

The Problem: Running Random GitHub Code Safely As developers, we frequently encounter interesting GitHub repositories, development tools, or scripts that we want to test. However, running` untrusted code directly on our development machines poses significant security risks: Supply chain attacks : Malicious code that modifies system binaries or installs backdoors (like the 2025 Chalk npm package…

Starting RexxJS

Repo: github.com/RexxJS/RexxJS/ Yes, Mike Cowlishaw’s interpreted language from 1979 that’s line-centric, starts indexes at 1 not 0, where vars are “weak” & global dominant, which isn’t OO or functional, and has a dangerous “eval” equivalent. Yes, I do have reservations, but I wanted an in-the-DOM interpreted “glue language” that also works on the command line (mac, win and lin). I wanted it…