Writing about software, startups, and building with AI agents.

Field notes from real work: agent workflows, small CLI tools, debugging writeups, and product UX decisions.

Long-running coding agents need a computer that stays put so their work can continue when your laptop closes, disconnects, or dies.

AI AgentsSoftware Engineering

The runway spreadsheet prices every hire in months of burn and books the missing team at zero: a Contour retrospective on where staying lean paid, what contractors can't replace, and which number turns out wrong.

CareerStartups

If the Mac still receives iMessages and the iPhone sends normally, restart imagent and identityservicesd before signing out or resetting the account.

macOSTroubleshooting

Referral sites earn at the phone number, so they can't afford to show you prices. Contour Care charged facilities only on a successful move-in, and that pricing is what paid for the honesty.

HealthcareStartups

Waiting until my personal site was “good enough” meant I never built one. A template I made for a mentee is why I’d now tell you to ship the plain version first.

CareerMentorshipAI Agents

Behavior rules, reciprocal Claude-and-Codex review loops, a generate-and-cut method, and a rubric for good UI: five short files with one-click copy, so you can skip the token tax of gstack.

AI AgentsSoftware EngineeringPrompts

Startup current is the wrong target; compare heat leaking in while you are away with the time and energy to cool back down.

EnergyWidget

MCP calls make the model recite the whole payload token by token. A small CLI lets code move it, so it never enters context in the first place. Fewer tokens, less time.

MCPCLIAI Agents

Native structured output refused my 34-field schema, so I benchmarked seven cheaper models on plain JSON instead; Gemini 3.1 Flash-Lite matched Claude Haiku's quality at an eighth of the cost.

LLMsStructured OutputJSONBenchmarking

Retrofitting CI, linting, Prettier, and regression tests into a mature codebase makes AI coding useful by catching broken changes before reviewers do.

Software EngineeringCITestingCode QualityAI Agents

Google’s default Places widget breaks out of your existing mobile UI, so a custom autocomplete keeps the form flow intact while Google still supplies the place data.

Google Places APIUXAutocomplete

Custom DNS can make a captive portal look broken by skipping the network’s resolver, so restoring automatic DNS brings the login page back.

macOSWi-FiDNSCaptive PortalTroubleshooting