WELCOME TO MY WEB PAGE! Check out my cool stuff! Updated Daily!

Hi. I'm Sam!

Husband, dad, programmer, whisky-drinker, writer.

I love video games, lie-ins, cold weather, and being indoors. I buy more books than I read, I'm scared of spiders and wasps, and I put ice in my whisky.

It's really nice to meet you.

👋 About Me

I'm Sam. I'm a programmer, writer, and all-around tinkerer. I love building things and sharing what I learn.

🎨 I visualise.

I create visual, interactive essays about software. Each post takes anywhere from one to three months to create, and I cover the material in a bottom-up fashion, starting from the simplest example and working up.

Topic
Load Balancing
Memory Allocation
Hashing
Retries
Bloom Filters
Queueing
Turing Machines
Reservoir Sampling

💌 I newsletter.

I only use this to announce new essays, so it only gets a few emails per year. If you want to keep up to date with me this way, here's the link:

https://newsletter.samwho.dev/

🎙️ I talk.

I've been a guest on the following podcasts:

  • Hanselminutes ep. 953
  • Mostly Technical ep. 36 (I show up around 49:40)

And I've given the following talks:

  • Making Things Less Scary Through Visualisation at Chester Devs

😈 I tinker.

Miscellaneous little experiments:

  • Six Word Story has you writing stories with everyone in the world, six words at a time.
  • Ping lets you send me a push notification any time you want.
  • jsdate.wtf - A quiz about the JavaScript Date constructor.

⌨️ I write

As well as my visual essays, I also write blog posts. You can see a list of them all here.

I've recently written a guest post, and would be happy to write more!

  • piccalil.li: Real World Uses of TypeScript's Utility Types

I've written blog posts for companies I've worked for.

  • Budibase January 9th 2023 Incident Report
  • Jet Lag: The Traffic
  • Using Rust Lambdas in Production
  • Major Upgrades, Subtle Problems
  • Deploying CV Partner

👨‍💻 I code.

You can find me on GitHub. Here are some of the things I've written and am proud of:

  • spacer: a silly little CLI tool to add spacers to command output
  • hmm: a little command line note taking tool written in Rust
  • rust-debugger: a ptrace-based debugger written in Rust
  • streamdeck: Go bindings for the StreamDeck API
  • livesplit: Go bindings for the LiveSplit API

📖 I read.

My all-time favourite things on the internet can be found here. If you read them and like them, tweet me and tell me! I'd love to chat about them with you.

I've been reviewing technical books for Pragmatic Bookshelf for many years. I started doing it during university as a way to get free books, and have carried it on in to my professional life. You'll find me acknowledged in the following books, and many others:

  • A Common-Sense Guide to Data Structures and Algorithms
  • Programming Elm
  • The Definitive ANTLR 4 Reference
  • Lean from the Trenches
Under Construction New! Generate your own 90s page here! Under Construction