31 posts

September 29, 2026·10 min read

How I Pull Live SPX Options Chains From Schwab’s API

Every weekday morning, a small script on my home server snapshots the same-day SPX options chain and saves it, so I can compare what the market expected to happen with what actually did.

Read post →
September 22, 2026·7 min read

How I Added Hybrid Search to My Site (Keyword + Semantic, Merged)

My search bar used to run keyword search and only fall back to semantic search when that found nothing. Now it runs both on every query and merges them into one ranked list.

Read post →
September 14, 2026·7 min read

How to Build Your Own Gmail Client (So Your Email Isn’t Tied to a Google Storage Plan)

Google’s answer to a full mailbox is a bigger storage plan, but you can keep a synced copy of your mail on a computer you already own and let Gmail keep doing the delivering.

Read post →
August 28, 2026·6 min read

What I Run on a Local Model — and What I Still Send to Claude

I ran evals on real past inputs to decide which of my AI automations should move to a local model, and one of the two failed.

Read post →
August 12, 2026·8 min read

Real Case Study: Attempts to Break the Chatbot

Someone spent half an hour trying to break the chatbot on this site. This is the case file: what they sent, what they were after, why every attempt failed, and the extra layers I added on top anyway.

Read post →
July 26, 2026·13 min read

Bike, or Not Bike?

My camera kept logging bicycles that were actually jacaranda branches moving in the wind. No amount of tuning could fix it, so I fine-tuned the detector itself.

Read post →
July 20, 2026·23 min read

Turning the Parking Tracker Into a 3D Model of My Block

There’s a webcam on my block that counts how many of the seven street parking bays are taken. Now there’s also a 3D model of that block, running in a browser tab, where a car shows up in a bay only when the bay is actually occupied right now.

Read post →
July 14, 2026·15 min read

How Many Parking Spots Are Open on My Block? I Built a Camera to Find Out.

I have a parking space. My friends don’t — and the question they text before driving over is always some version of “is there parking on your street?” So I pointed a webcam at the seven bays outside my window and tried to answer it properly, once a minute.

Read post →
June 26, 2026·7 min read

How I Run Multiple Claude Code Sessions in Parallel

Running several Claude Code agents at once with git worktrees and a small shell tool called cmux — one agent per branch, no file conflicts, on both my Mac and my home Linux server, all on a single Max subscription

Read post →
June 12, 2026·7 min read

How I Self-Hosted a Gmail MCP Server

The claude.ai Gmail connector can read and draft but can't archive, label, or trash. I built a self-hosted MCP server with modify scope so Claude can clean up my inbox — safely — plus the 7-day OAuth bug that took a month to understand

Read post →
May 22, 2026·7 min read

How I Self-Healed Schwab's 7-Day OAuth Expiry

Schwab's market-data API hands you a token that hard-expires every 7 days by design. Instead of babysitting a renewal, I built a pipeline that renews itself before it dies and only emails me when it can't

Read post →
May 8, 2026·7 min read

How I Built Self-Hosted Push Alerts to My Phone

Replacing buried email alerts with instant phone push notifications using self-hosted ntfy, kept private to my own devices over Tailscale with token auth — no third-party push service

Read post →
April 23, 2026·6 min read

Grading the grader: qwen 1.5b vs 7b

I swapped the local AI that grades my chatbot for a bigger one and compared the two across 55 real conversations. Here's what a smaller model misses — and where Claude Haiku and Sonnet would sit on the same ladder.

Read post →
April 4, 2026·8 min read

How I Built Ask Goose, a RAG Chatbot for My Personal Site

A streaming AI chatbot grounded in 300+ content chunks, powered by Claude Haiku, Supabase pgvector, and a floating widget that follows you across the site

Read post →
April 4, 2026·7 min read

How I Built an AI Content Pipeline for Every Writing Post

Using Claude Haiku for topic tags, Supabase vector embeddings for related posts, and build-time scripts to turn 18 blog posts into a connected content product

Read post →
April 4, 2026·7 min read

Keyword Search vs. Semantic Search: How I Upgraded My Site’s Search

My site’s search bar started as a simple keyword filter, then learned to search by meaning with vector embeddings — here’s the difference, how each version works, and why the second one became the foundation for an AI chatbot

Read post →
March 25, 2026·8 min read

How I Built a Cron-Powered Operations Layer on a Home Linux Server

What started as three cron jobs grew into 100+ lines of scheduled automation — market briefings, game bots, security audits, AI job queues, and weekly reports, all orchestrated by a single crontab

Read post →
March 21, 2026·9 min read

How I Automated My Soccer Club with a Bot

A Python bot on a headless Linux server that manages a TrophyManager.com soccer club — scouting, bidding, lineup setting, training, and self-grading, all automated

Read post →
March 17, 2026·7 min read

How I Built a Market Briefing That Writes and Sends Itself Every Morning

A Python script on a headless Linux server scrapes market data, asks Claude to explain why markets moved, and delivers it to subscribers via Resend — every weekday at 8am

Read post →
March 12, 2026·7 min read

How I Built Fruit Exchange, a Neighborhood Fruit Tree Map

A map-based community tool where neighbors list backyard fruit trees and others can find them — styled like a 90s farming game, verified with email, and built with Claude Code

Read post →
March 8, 2026·9 min read

How I Built a Full Status Alert System

Website uptime, Supabase health, API monitoring, Fail2ban reports, Claude-generated changelog, and a weekly summary — all automated from a headless Alienware

Read post →
March 7, 2026·7 min read

How to Secure an Always-On Home Server

The safest service on the internet is one that isn’t on it, so start with a private network, then stack simple, independent locks behind it.

Read post →
March 6, 2026·7 min read

How I Turned an Old Laptop Into a Headless Linux Server

Repurposing a 2011 gaming laptop into an always-on home server running Linux Mint — closed lid, no monitor, SSH access from anywhere

Read post →
March 5, 2026·5 min read

How I Added "TL;DR by Goose" AI Summaries to Every Post

Using Claude Haiku to generate static summaries at publish time — and why the architecture decision matters more than the feature itself

Read post →
February 28, 2026·9 min read

How I Automated Daily Garmin Recaps to My Inbox

Building a Mac automation that fetches Garmin health data at 7am, generates AI recaps with Claude CLI, and emails them — built across two sessions

Read post →
February 28, 2026·7 min read

How I Replaced Google Forms with a Custom Contact Form Using Claude Code

Building a Supabase-backed contact form with email notifications in 2 hours — 4x faster than my first database project

Read post →
February 27, 2026·7 min read

How I Built 50+ Dynamic Greetings Using Claude Code

Replacing 8 static words with time-aware messages — and learning why iteration beats perfection

Read post →
February 27, 2026·6 min read

How I Built a Universal Footer Using Claude Code

Designing and deploying a production-ready footer component in under 30 minutes with terminal-based AI

Read post →
February 19, 2026·9 min read

How I Built Numerator Using Claude

A product manager who isn’t a full-time developer builds a full-stack web game from concept to deployment in four sessions

Read post →
February 18, 2026·11 min read

How to Set Up Your Site So Google Can Actually Find It

I finished building this site yesterday. Before I write anything else on it, I want to be certain Google can actually find what I publish — because publishing a page and having Google know it exists are two different things. On a hosted platform that gap is usually handled for you; on a custom-built site it can quietly go unchecked. So here is the setup, done first.

Read post →
February 17, 2026·8 min read

How I Built My Website With Claude as a Product Manager

I’m a product manager who reads code but doesn’t write it for a living. Here’s how I built a custom Next.js personal site with Claude in about seven hours, and what actually took the time.

Read post →