build_

Make software that ships: design that survives change, tests that let you move, and Mac apps you can sell yourself.

Start here

Implementation gets cheaper; judgment does not. You can have more code generated than you can carefully judge, so the work shifts from writing to deciding: what users need, when to stop, and whether you can sign off a change as correct, tested, and intended. Start with where coding ends and the job begins, then with the design questions no rule of thumb answers for you:

Paths

  • Getting started with Mac app development

    Architecture, AppKit, and the tooling around it, from your first window to a sandboxed release.

  • All about TextKit

    Apple's text system, from NSTextView down to the typesetter.

  • Software design wiki

    Coupling, cohesion, MVVM, DDD: one page per concept you'll keep coming back to.

  • Sell your Mac app with FastSpring

    Your own store next to the App Store, with a guide and free code to get it running.

  • MTP tools

    Talk to MTP devices like the Supernote from Swift, the command line, and Emacs: a library, a CLI, and a Tramp backend.

  • Emacs

    A large REPL to try ideas in: Elisp packages, experiments, and the configuration around them.

Tools

Work with me

Latest

All 931 posts
Apr 5 2026

Swift Blog Carnival: Tiny Languages

The Swift Blog Carnival topic for April is open; it is about Tiny Languages. Read what a blog carnival is, why you should care, and how to participate!

Feb 28 2026

Media Transfer Protocol Tools

I want to get books on my Supernote and notes off it, so in my desperation I began to write scripts and make tools to help.