AI Timeline

My running log of milestones in agentic engineering, interleaved with the code experiments I've been building between them.

Each entry is a moment I noted at the time: a model release that shifted my daily practice, a vocabulary change, a tool that crossed a threshold. The projects between them are the experiments those moments enabled. Not a comprehensive chronicle of the field; just what I noticed and built, in order.

An abstract still life of modern forms stepping forward across a desk toward a sleek dark device, suggesting forward momentum

Claude Lane Orchestrator

A Python CLI that hands work from a Claude Code session to a chosen model running in its own separate process — a Lane — so a task can reach a wider context window and cheaper capacity than the built-in way of delegating allows.

View project →

LiteLLM Model Config Maintainer

A Python CLI that keeps a local LiteLLM proxy's model list current. It reads a model discovery feed, applies the rules you wrote about which models you want, checks that each one answers, and then writes the config.

View project →

Model Discovery Feed

A provider-agnostic specification and Next.js reference implementation for publishing a model discovery feed, with validated fixtures, an HTTP contract, and named delegation profiles for picking a model.

View project →

Snake TUI

A dependency-free Python Snake game with a curses terminal UI, an optional tkinter GUI, local and AI arena modes, deterministic replay, and TCP multiplayer, built to stress-test an agent delegation workflow.

View project →

Tetris TUI

A pure-Python Tetris with NES-style and modern rule sets, a curses terminal UI, an optional pygame GUI, a heuristic bot, deterministic replays, and local and network versus play.

View project →

Cline Plugin for Claude Code and Codex

A Claude Code and Codex plugin that delegates coding tasks to the Cline CLI, so implementation work runs on a flat-rate subscription or any provider you have configured in Cline, rather than the orchestrating agent's own budget.

View project →

Fable 5 pulled offline

Anthropic pulled Claude Fable 5 and Mythos 5 worldwide after a US government directive, only three days after launch. The important part was not only that a frontier model disappeared. It was the mechanism: a remote model endpoint became a policy lever, and every customer using it inherited someone else's jurisdictional decision.

For my own AI tooling, this made the boring portability work feel less optional: provider-agnostic harnesses, open-weight fallback paths, and local copies of the context that actually make a model useful. The question stopped being "which model is best today?" and became "what still works if that endpoint is gone tomorrow?"

Amiga Juggler HTML/JS Raytracer

A browser-based reconstruction of Eric Graham's 1987 Amiga Juggler raytracer, built as a single self-contained HTML file with source-faithful and modern render profiles alongside reconstructed juggling motion.

View project →

Personal Website

A personal portfolio for presenting analytics, architecture, product work, and selected experiments in a quiet editorial format.

View project →

Exasol Postgres Proxy

A PostgreSQL-wire-compatible proxy that lets PostgreSQL clients and Qlik Cloud query Exasol without requiring a native Exasol driver on the client side.

View project →

Agent swarms

Running multiple agents with different models, skills, and tools in parallel. Codex 5.3, Opus 4.6. That same month, Karpathy renamed the whole thing "agentic engineering". The name and my daily practice converged at the same time, which is probably not a coincidence.

Obesian Oats

A cross-platform Markdown note workspace for web and desktop, built around plain files, Git-backed storage, local folders, AI indexing, and optional MCP access.

View project →

"Agentic engineering" replaces "vibe coding"

On the one-year anniversary of "vibe coding", Karpathy retired his own term in favour of "agentic engineering". His reasoning: agentic because the new default is that you are not writing the code directly most of the time. You orchestrate agents who do, and act as oversight. Engineering because there is real craft to it, something you can learn and get better at.

The third of his three coinages, and the one that matches my daily practice closest.

Qlik Documentation MCP

An offline-first MCP server that gives AI assistants structured access to Qlik Cloud documentation, examples, endpoints, and symbols through local stdio or hosted HTTP transport.

View project →

Achtung! Die Kurve!

A browser-based take on Achtung! Die Kurve! with local shared-keyboard play, CPU opponents, spectator support, and LAN multiplayer through a small host-authoritative relay.

View project →

GlyphBlaster

A React and Canvas creative-coding tool that reconstructs images with text glyphs using scanline and painterly rendering modes.

View project →

The December 2025 breakthrough

The curve bent. Models got dramatically better at coding and at managing themselves. Plan mode showed up everywhere. The rigorous spec-kit discipline stopped being a prerequisite, because the agents started handling that themselves.

Agent skills arrived alongside: installable knowledge packs that give an agent domain expertise on demand. The inflection wasn't a new model, it was self-management.

Multi-model CLI agents arrive

Multi-model agents arrived in earnest. I started using CLI-based agents instead of only editor extensions, mixing models with different temperaments (Gemini 3, Opus 4.5, GPT-5.2 and Codex) depending on the kind of task in front of me.

Skybridge

A commercial Office and web analytics suite that connects Excel, PowerPoint, Word, and browser-based reporting workflows to Qlik Cloud through shared licensing and reusable integration packages.

View project →

Server Metrics

A lightweight PowerShell telemetry collector for Windows servers that records CPU, memory, network, disk, and optional process metrics into rolling CSV logs.

View project →

Task API

A localhost-only PowerShell HTTP API for listing, inspecting, and controlling whitelisted Windows Scheduled Tasks.

View project →

Neon Llama Chaos

A self-contained browser arena shooter where Captain Vlam fights escalating neon waves, collects power-ups and upgrades, dives through portals, and chases a depth-based high score, with its own music and sound.

View project →

Vaibes Content

A structured AI learning content library containing documentation pages, curated learning paths, flashcards, badges, analysis data, and manifest generation for Vaibes.

View project →

Vaibes

An AI-assisted documentation explorer and project initiator for learning paths, curated technical content, recommendations, flashcards, and project bootstrapping.

View project →

Fiken Proxy

A Vercel-hosted proxy that maps bearer-token clients to Fiken form-login sessions, manages cookies, and forwards requests to upstream Fiken endpoints.

View project →

Codex cloud tasks, from a phone

September brought Codex Cloud Tasks. A lot of the output was bad. But I managed to build a complete, non-trivial application entirely through cloud tasks, managed from my phone.

That changed what I thought was possible more than any single demo had. Shipping a real app with no editor open and no code in front of me was the point where "assistant" stopped being the right word for these tools.

Deck CRM

A commercial CRM and marketing operations platform with role-based permissions, reporting, admin workflows, database migrations, and production deployment on Vercel.

View project →

Share

A link-sharing and knowledge workflow app with enriched links, short tracked URLs, AI summaries, newsletters, reading lists, contacts, voting, tagging, and click metrics.

View project →

The Spec-Kit phase

I went the other direction: detailed specs and task breakdowns, treating the agent like a junior-junior programmer with no memory and no architecture sense. Spec-Kit and similar approaches.

It helped. It was also exhausting. The discipline that made it work was almost as much effort as writing the code yourself.

Claude Code ships; VS Code gets agent mode

Claude Code shipped and the timeline lit up with agentic demos and bold claims. That spring, VS Code Copilot got agent mode too.

I ran experiments and found the agents hard to control: hours spent keeping them on track, undoing bugs they introduced, fighting them on coding style. "Vibe coding" was the right name for it. It felt like vibes, not engineering.

"Vibe coding" coined

Karpathy coined "vibe coding": building software by describing what you want and, in his framing, letting yourself forget that the code even exists. The second of his three coinages from this era; the name landed at exactly the moment the tools made it feel right.

ChatGPT Canvas and a sense of room

Through 2024 I kept ChatGPT around as a discussion partner while my actual work stayed in VS Code with Copilot. Then Canvas arrived, and I could generate small games and prototypes and run them right there. Fun, but hemmed in: the editor would break, and you were stuck in a single file.

In November 2024 Anthropic published the Model Context Protocol and the noise around agent tooling started to build. It planted a question: if I can build this much in a chat window, what could I do with a real setup?

Copilot in the editor

The real change for me was small and cheap: subscribing to GitHub Copilot for $10 a month. Ghost text, inline chat, a chat panel: AI inside the editor instead of in a separate tab.

For PowerShell it was basically perfect. That was the moment it stopped feeling like a toy.

Tm Custom Visualizations

A Qlik visualization extension that renders hypercube data as custom HTML templates, Tabulator tables, or Chart.js charts through a configurable rendering pipeline.

View project →

Tm Image Carousel

A Qlik Sense visualization extension for displaying configurable image carousels with adjustable captions, buttons, opacity, and presentation settings.

View project →

Tm Direct JSON Visualizations

A Qlik extension that connects JSON REST APIs directly to interactive tables, charts, and custom HTML visualizations without first loading the data into Qlik's associative model.

View project →

Tm Flexible Selections

A Qlik Sense and Qlik Cloud visualization extension for building selectable field controls in horizontal, vertical, and grid layouts when the standard filter pane is too rigid.

View project →

GPT-4 shifts the floor

GPT-4 changed the baseline. PowerShell scripts mostly worked on the first try. Qlik load scripts became semi-useful. Extension development got noticeably easier, though still not good.

The defining shift was confidence: it was now worth trying the model on a task before reaching for the manual.

English, the new programming language

Andrej Karpathy wrote that the hottest new programming language is English. It read like a joke at the time. Three years on, it reads like a forecast, and the first of three coinages from him that bracket this whole era.

ChatGPT (GPT-3.5) lands

I did what everyone did: pasted problems into the chat box. The results were entertaining. I got some simple Qlik Sense extensions working, but only with a lot of patience and a lot of manual pasting of documentation.

The Qlik load scripts it wrote were hilariously wrong: invented function names, made-up parameters. Good material for office jokes about how AI would never take our jobs. PowerShell scripts worked, sometimes, kind of.