Writing

Notes on AI-assisted engineering, MCP, and building software that lasts.

Red squiggles for agents: building Weft with Weft

Red squiggles for agents: building Weft with Weft

GitHub coordinates people at merge time. Agents need coordination at edit time. Weft is my entry to Cloudflare's next-Git-platform competition, and the agents that built it were coordinated by it.

agentscloudflareopen-source
The end of web apps

The end of web apps

AI-powered native app development is transforming software creation, making web apps and traditional project management increasingly obsolete.

Tidy, Offload, and the Shape of Personal Infrastructure

Tidy, Offload, and the Shape of Personal Infrastructure

Notes from building a small pair of terminal tools: one that understands what is taking space on a machine, and one that safely moves the things that do not belong there.

aitoolingterminalinfrastructure
Building the Definitive Guide to MCP Servers

Building the Definitive Guide to MCP Servers

Why I'm writing a practical book on building MCP servers, who it's for, and what readers can expect from the draft today.

aimcpengineeringbooks
Vestigial Interview Processes

Vestigial Interview Processes

Explore how outdated tech interview processes fail to predict engineering success, and discover the transformative impact of AI tools in modern software development.

Coding is (finally) for Dinosaurs

Coding is (finally) for Dinosaurs

A short follow-up on how the “autocomplete era” quietly evolved into “intent-first” software creation—where shipping is mostly conversation, and touching code starts to look like nostalgia.

aidevelopmentcodingfuture of software
Building a Family Electronic Bulletin Board with Next.js

Building a Family Electronic Bulletin Board with Next.js

How I built a full-featured family bulletin board with Next.js, SQLite, and Tailwind CSS - perfect for a mud room kiosk display

Bulletin BoardNext.jsSQLiteFamily Tech
Prefer type over interface

Prefer type over interface

Prefer Type over Interface

Typescript
Building a Salesforce Sync pipe with Node.js

Building a Salesforce Sync pipe with Node.js

Architecture notes

Architecture
Config Based Data Layer

Config Based Data Layer

A pattern for building declarative, configuration-driven data layers using Redux Toolkit and Redux Observable that eliminates useEffect hooks and simplifies React components.

reduxredux toolkitredux observablereact
I just can't do this anymore, Copilot

I just can't do this anymore, Copilot

After two weeks with GitHub Copilot, I’m convinced it quietly injects subtle bugs and breaks my flow—so I turned it off (maybe for good).

development
Archive (15 older posts)