Writing

Notes from things I actually built.

Developer tools, strange prototypes, infrastructure, and the details that only show up after the idea meets the real world.

All writing

5 minute read

Hark / Agent workflows

Building Hark for Interactive iPhone Agent Workflows

How Hark grew from a webhook notification app into an open-source interface for agent replies, approvals, Live Activities, and remote workflows.

Hark · AI agents · iPhone automation

4 minute read

RoomPlan / Wi-Fi mapping

Mapping Wi-Fi Dead Zones with Apple RoomPlan

A RoomPlan prototype pairs a spatial scan of a house with Wi-Fi density and performance measurements to make dead zones visible where they happen.

Apple RoomPlan · Wi-Fi · Spatial computing

4 minute read

TeslaNav / Dashcam storage

TeslaNav Storage: A Web-Managed Tesla Dashcam USB

TeslaNav Storage is an open-source mini-computer that appears as USB storage to a Tesla while offering a web UI to browse, download, and export clips.

TeslaNav Storage · Tesla dashcam · Open-source hardware

4 minute read

Rebase / Stream synchronization

Synchronizing Livestream Questions Across Clients with Different Latency

How Rebase ties live trivia questions to stream position so viewers with different playback latency encounter each question at the intended moment.

Livestream synchronization · Rebase TV · Distributed systems

4 minute read

OpenCode / Bare metal

A Coding Agent Built a Bare-Metal Hackintosh Through JetKVM

GPT-5.6 Sol used OpenCode and JetKVM to produce a functional macOS Sequoia Hackintosh on physical hardware in four hours and twenty-two minutes.

OpenCode · JetKVM · Hackintosh

4 minute read

AI agents / developer tools

Why AI Agent Memory Needs a Repo-Local Stack Overflow

After an AI coding agent repeated the same Expo mistake, I realized agent memory needs searchable, repo-local answers instead of a growing scrapbook.

AI agent memory · coding agents · developer tools

4 minute read

Remote development / Clipboard images

How I Paste Clipboard Images into OpenCode over SSH and tmux

A practical workaround for moving a Mac clipboard image into OpenCode running inside a remote SSH and tmux session, using a shared file path.

OpenCode · SSH · tmux · macOS clipboard

5 minute read

Networking / iPhone hotspot

Connecting to an iPhone Hotspot Device with IPv6 and mDNS

An iPhone reached a web server on its own hotspot-connected device through IPv6 and mDNS, creating a useful local networking primitive for hardware projects.

iPhone hotspot · IPv6 · mDNS

5 minute read

Terminal games / Multiplayer

From bunx gametui to a Multiplayer Terminal Game Platform

A playable multiplayer TUI grew from one bunx command into an SSH lobby with multiple games, custom URLs, and a path for community-made games.

terminal UI · multiplayer games · OpenCode

5 minute read

AI websites / Sales experiment

The $500 AI Website Redesign Offer an Agency Accepted

I recreated a static agency site in four Opus 4.7 prompting attempts, offered the redesign for $500 plus hosting, and the agency accepted it.

AI website redesign · agency websites · productized services

4 minute read

Personal automation / Work journal

How I Turn Screen Recordings Into an Automatic Daily Work Journal

How I connect Coast screen recordings, OpenCode, and Hark to turn scattered work into a custom morning summary that I can revisit each morning.

screen recordings · OpenCode · Coast · Hark

4 minute read

Inbound / Email compatibility

Adding IMAP and SMTP to Inbound for Unlimited Email Mailboxes

How I made Inbound work with ordinary email clients through IMAP and SMTP, including sending, folders, archiving, and unlimited mailboxes at low cost.

IMAP · SMTP · Inbound · email infrastructure

4 minute read

OpenCode / Event-driven plugins

Building an OpenCode Plugin With Aircraft-Style GPWS Audio

I used OpenCode plugin event hooks to build a GPWS-style audio layer that makes an agent’s activity audible while it works in the terminal nearby.

OpenCode plugins · GPWS audio · coding agents · terminal interface

5 minute read

TeslaNav / Shutdown postmortem

Why TeslaNav Shut Down—and How I Brought It Back

TeslaNav lost its Waze API and faced a $1,500 monthly Mapbox bill. Four months later, I brought it back without external service dependencies.

TeslaNav · dependency risk · Mapbox costs · Waze for Tesla

4 minute read

anomaly.fm / Discord radio

How I Turned a Discord Voice Channel Into a 24/7 AI Radio Station

I connected an internal Discord voice channel to anomaly.fm, then added continuous YouTube and X streams with OpenCode acting as the hourly DJ.

Discord radio · AI DJ · OpenCode · anomaly.fm

5 minute read

macOS / live video

A macOS NDI Menu Bar Controller for My OBS Workflow

I built an Apple-silicon menu bar controller for NDI streams, then tested the workflow by recording 4K60 in OBS across a 10 Gb network at my desk.

macOS · NDI · OBS · Apple silicon

5 minute read

OpenCode / local server

Run One OpenCode Server for Every Terminal Client

OpenCode terminal clients can discover one running server automatically, while a global session route lets custom clients find work across directories.

OpenCode · terminal · developer tools · local server

5 minute read

AI experiments / rendering

Turning an iPhone and Mac Rendering App Into a Portable CLI

I used Kimi K3 to study an installed device-rendering app and produce a portable CLI, then compared its render output and speed on my machine.

Kimi K3 · CLI · device renders · AI coding

5 minute read

Linux / messaging

itui: Bringing an iMessage Experience to the Linux Terminal

I wanted iMessage while working on Linux, so I built itui and recorded a full two-minute demonstration of the cross-platform messaging experience.

itui · iMessage · Linux · terminal UI

5 minute read

OpenCode / terminal UX

Show Pasted Text Instead of ‘Pasted N Lines’ in OpenCode

OpenCode can display the text you pasted instead of a collapsed ‘Pasted N Lines’ block. Here are the command-palette and config options shown in my demo.

OpenCode · terminal UI · configuration · developer experience

4 minute read

AI collaboration / shared context

Gangprompting: How Multiple People Can Share One AI Coding Session

Gangprompting lets one person start an AI agent session and another bring the missing expertise, creating a practical shared problem-solving workflow.

AI collaboration · coding agents · team workflows

4 minute read

Software design / AI anchoring

AI Anchoring in Software Design: Why I Sketch the Solution First

AI can accelerate implementation while quietly anchoring software design. Here is why I protect the blank page before asking a model for solutions.

software design · AI coding · cognitive bias

4 minute read

Personal websites / narrative design

How to Make a Personal Website Tell a Story

A personal website becomes more memorable when projects form a narrative. I redesigned mine around the path between the things I have built.

personal website · portfolio design · storytelling

4 minute read

GraphQL / airport data

Building a JFK TSA Wait-Time Dashboard from a GraphQL Request

Facing a tight flight from JFK, I found a GraphQL request for TSA wait data and used OpenCode to turn it into a focused airport status dashboard.

GraphQL · OpenCode · rapid prototyping

5 minute read

Security / link previews

Misleading X Link Previews: What I Captured and How to Stay Safer

An X card appeared to show a trusted Supabase link while a captured redirect pointed somewhere else. These are the warning signs I now check first.

phishing awareness · X link previews · web security

5 minute read

Internal tools / image creation

Inside the Internal Creator App Behind 500+ Team Images

A look at the internal creator app I built, the prompt-and-reference workflow shown in its demo, and why focused team tools can earn real use.

internal tools · image generation · product engineering

5 minute read

Product experiment / X following

Sift: A Swipe Interface for Cleaning Up Your X Following

I built Sift to turn an overloaded X following list into one decision at a time: swipe right to keep an account, or swipe left to unfollow it.

Sift · X following · interaction design

5 minute read

Cloudflare / internal apps

Cloudflare Access for Private Internal Apps: My Lightweight Pattern

For personal and internal tools, I like putting the deployed app behind Cloudflare Access SSO instead of making authentication part of the app.

Cloudflare Access · internal apps · SSO

Hello World

Welcome to my blog! This is my first post where I share my thoughts on software engineering and building products.

Building Inbound: Programmable Email Infrastructure

The story behind building Inbound - a developer-first email infrastructure platform for sending, receiving, and threading emails.