Projects & Talks

Projects One of my goals is to launch at least one new project every year. I’m making small bets and staying comfortable with failure. 2026 BirdWalk (private beta): Let’s go on a birdwalk! A bird identification game based on real birding data. Stack: Vercel, Supabase, Astro, eBird API, and Wikimedia Commons. TypeNotes: A daily learning site for professional JavaScript and TypeScript developers, particularly intermediate-to-senior engineers working with TypeScript in production. Stack: Vercel, Astro, Buttondown, and RSS. ...

AI Policy

This page summarizes my use of AI on this website.1 ...

September 23, 2026

Cursor on Current Directory

To load Cursor with context of the current directory, use: cursor . This opens the program with the current directory loaded up, ready for agent planning or execution. This requires the Cursor command-line module, which you’ll likely install when installing Cursor.

June 24, 2026

"What's Wrong With This Idea?"

One of my favorite engineering questions is: “What’s wrong with this idea?” It drives the conversation away from why the idea might work, and toward why it might fail. That perspective is invaluable when building. I learned this idea from Paul Arden: “If, instead of seeking approval, you ask, ‘What’s wrong with it? How can I make it better?’, you are more likely to get a truthful, critical answer."― Paul Arden, It’s Not How Good You Are, It’s How Good You Want To Be ...

February 11, 2026

Building with MCP, for Real

This year I built several Model Context Protocol (MCP) servers to support ongoing R&D. Here’s my report. But first, some context. What is MCP, and why am I using it? Why Am I Using MCP? MCP is an open-source standard for connecting AI applications to external systems. Here’s some detail from a recent article: “Mike Krieger, [MCP’s] chief product officer, says the idea came while linking Claude, its chatbot, to services like Gmail, an email platform, and GitHub, a repository of code. Instead of integrating each application with Claude on a case-by-case basis, the firm wanted a shared set of rules to help agents directly access a user’s emails or files.” — The Economist, “Intelligent Protocol,” Dec 13, 2025 ...

January 23, 2026

MCP Stdio and Stdout

In MCP server code using stdio, you can’t use any functions that print to stdout. In TypeScript, this means: console.log(errorMessage) // 🛑 Bad console.error(errorMessage) // 🟢 Good! The stdio transport only supports valid MCP messages. None of these stdout-conversationalists are allowed: print() statements in Python console.log() in JavaScript fmt.Println() in Go A smell that you’ve broken this rule are messages like this in your MCP server log: ==> /Claude/mcp.log <== 2025-12-30T16:31:32.702Z [error] [supercool-proj] Unexpected token 'I', "I "... is not valid JSON 2025-12-30T16:31:32.702Z [error] [supercool-proj] Unexpected token 'C', "Can't "... is not valid JSON 2025-12-30T16:31:32.702Z [error] [supercool-proj] Unexpected token 'R', "Read this"... is not valid JSON docs

December 30, 2025

Learning JavaScript Promises the Feynman Way

Want to learn a tricky topic and sharpen your learning skills at the same time? In this post, I’ll use the Feynman Learning Technique— a method of learning complex things by explaining them simply— with a sprinkle of LLM magic, to deepen my understanding of JavaScript promises. What is the Feynman Learning Technique? The Feynman Learning Technique is a learning method defined by Nobel laureate physicist and bongo drummer Richard Feynman. My perception is that it’s been pieced together from things that Dr. Feynman said over time. ...

August 25, 2025

Does ChatGPT Mean Software Engineering Is Over?

Here’s an argument that’s gaining momentum in my field: AI will eliminate or greatly reduce the programming profession. To elaborate: AI like ChatGPT and GitHub Copilot is very good at writing describable code (“translate feet to meters”) This is the kind of code entry-level programmers are often asked to write AI could eliminate programmer jobs, particularly entry-level Is this correct? Great question! We’re all watching this unprecedented phenomenon unfold. Predictions are plentiful. ...

March 26, 2023