| Dec 14 | Chain of Continuous Thoughts |
| Oct 12 | Lake Union’s Lonely Trolley: SLU Streetcar Ridership |
| Aug 31 | TaskWarrior |
| Jul 21 | How I Use AI: Mid-2024 |
| Oct 29 | Avoid Load-bearing Shell Scripts |
| Oct 26 | Soft Boredom |
| Jun 20 | Mental Models: Slack |
| Apr 15 | The Soul of an Old Machine |
| Apr 10 | Scala Pitfall: Parameterless Function Calls and Misplaced vals |
| Feb 18 | On Prompt Engineering |
| Dec 31 | 2022 in Review |
| Dec 27 | My Favorite Books of 2022 |
| Nov 30 | On Personal Predictions |
| Jul 17 | In Praise of Stacked PRs |
| Jul 10 | So long, and thanks for all the Gophers! |
| Jun 22 | Mental Model: Difficult Problems vs. Hard Work |
| Jun 20 | You Need to be Wrong (Sometimes) |
| Jun 16 | Mental Model: Stages of Change |
| Jun 11 | NYC 2022 Observations |
| May 18 | Tools for Making Difficult Decisions |
| May 9 | Manifold Markets |
| Mar 11 | One Weird Trick |
| Mar 6 | Kindle Snippets Viewer |
| Jan 10 | List of Lists of 2022 Predictions |
| Dec 31 | 2021 in Review |
| Dec 19 | My Favorite Books of 2021 |
| Dec 7 | Branchless Git |
| Nov 14 | Using Embedding to Disambiguate Types in Go |
| Oct 31 | Recently - October 2021 |
| Oct 17 | Features of Excellent Code Review Tools |
| Sep 30 | Recently - September 2021 |
| Sep 19 | Preventing Link Rot in my Obsidian Vault |
| Aug 31 | Recently - August 2021 |
| Aug 17 | B-Trees: More Than I Thought I’d Want to Know |
| Aug 8 | DIY Air Quality Sensor |
| Jul 31 | Recently - July |
| Jun 22 | 2,000 Days Later |
| Jun 6 | Schedule Your Emails |
| May 31 | Recently - May |
| May 16 | Building a Raft |
| May 3 | Backing up my Google Takeout data |
| Apr 25 | Recently - April |
| Mar 21 | Book Review: Gödel, Escher, Bach |
| Mar 7 | Two Types of Infinity |
| Feb 28 | Recently - February 28 |
| Feb 21 | Three Layers of Information |
| Feb 11 | A Hand-wavy Proof for the Infinitude of Prime Numbers |
| Jan 31 | Recently - January 31 |
| Jan 21 | A Tour of Go 1.16’s io/fs package |
| Jan 12 | My Organization Stack |
| Dec 31 | 2019 in Review |
| Dec 26 | My Favorite Books of 2019 |
| Dec 4 | Fast Rust Docker Builds with “cargo vendor” |
| Nov 21 | Setting up Cloud Scheduler to Trigger Cloud Run |
| Nov 11 | The Value in Go’s Simplicity |
| Nov 3 | A Gentle Nudge |
| Sep 5 | Summer 2019 |
| May 28 | Introducing Messy: An iOS Grid Puzzle Game |
| May 22 | On Graduating or: What to Optimize For |
| Apr 25 | Finding Flow in Haskell |
| Apr 1 | Don’t Look at the Keys |
| Mar 7 | Generative Doodling |
| Feb 12 | iOS Shortcuts for Data Capture |
| Jan 21 | Getting Started with Golang Google Cloud Functions |
| Dec 18 | Taking on the Synacor Challenge |
| Nov 24 | Turkey and Birthday Cake |
| Nov 19 | Trying My Hand at R |
| Oct 29 | AGDQ 2017 Schedule Analysis |
| Sep 25 | Breaking Up with Wunderlist |
| Sep 11 | The Future of Audio Should be Wireless |
| Aug 23 | Internship 2016 |
| Aug 7 | Writing For Its Own Sake |
| Jul 27 | Liquid YAML: Programmatic Data |
| Jul 24 | GDQStat.us: A Postmortem |
| Jun 25 | SGDQ 2016 Schedule Analysis |
| May 28 | Username Grab! |
| May 7 | Podcast Pileup |
| May 1 | Optimizing Personal Websites: An Analysis of the Hackathon Hackers Website List |
| Apr 17 | Wunderschedule and My Productivity Manifesto |
| Apr 11 | (Belated) Hello World! |
| Apr 8 | Running a Factorio Server on DigitalOcean |
| Apr 5 | Why I’m not buying into first generation VR |
| Mar 25 | Custom Python Interpreters |
| Mar 22 | Ex Machina (2015) |
| Mar 21 | Jekyll ‘New Post’ Script |
| Mar 8 | Looking back on 100 days of Coding Everyday |
| Feb 27 | Is Apple going downhill? (2016) |
| Jan 7 | Watch Later, Offline |