Hi! Tell us about who you are and what you do.

My name is Noah. I stand in front of the cute bear and chimpanzee there, pressing buttons at random on a mechanical keyboard.


Currently Shopify pays me to work on YJIT, a Ruby JIT that’s part of CRuby since Christmas 2021. My biggest point-at-it contribution is probably speed.yjit.org and yjit-metrics, which I more or less built from scratch.

I’m probably best known for writing Rebuilding Rails, though I also wrote Mastering Software Technique, give talks and various other stuff.

Short version: I write code, I record videos, I hang out with my wife and take care of my kids here in Inverness, Scotland.


What is your hardware setup?

I have a late-model X86 MacBook Pro for personal-and-various work, and an M1 Macbook Pro for Shopify work.

You can see the external monitor, some kind of basically-adequate LG on a medium-cheap monitor arm. That rat’s nest of cables is connected to a CalDigit Element Thunderbolt4, which is either a gigantic USB-C hub or a smallish docking station, depending how you squint. That lets me switch all the hardware smoothly between Shopify and non-Shopify laptop.

“All the hardware” is a Logitech StreamCam (it’s fine), a MIDI interface for that piano, my clacky FNatic Streak mechanical keyboard, my Wacom Intuos Pro drawing tablet, a Yubikey and no doubt some other bits and bobs I’ve forgotten.


For audio hardware: that’s a Shure SM7b microphone attached to a Scarlett Solo audio interface, by way of a DBX 286s signal processor. It’s horrifying overkill for my actual needs and I love it. That is a beautiful-sounding mic, but it really needs a freestanding non-inline amp/signal-processor to overcome its tendency toward line noise. Also, the Solo has a proper monitoring jack (they’re as useful as people say,) and I have a decent pair of Sony MDR-7506 studio-monitor headphones plugged into it.

There’s a Canon EOS 250D camera in a bag on the desk. I want to love it. It’s really hard to use a DSLR for simple stuff, and so it mostly gets ignored in favour of webcams and my iPhone for day-to-day use. The photos and video look great, much better than a phone or webcam. Everything else about using it is pain.


There’s an ElGato Key Light Air on the desk for close-range lighting, and a couple of cheap photographer’s softbox lights in the background. The giant whiteboard makes a good reflector for them when I want diffuse lighting – plus, y’know, giant whiteboard.

The cheap IKEA sit/stand desk has a hand-crank. That’s important with my four-year-old around. I’d rather have her crank it up and down a few times than sit for twenty minutes playing with buttons and knocking things to the floor.

The piano is a Kawai ES-110 on a nice Z-stand from Thomann. It’s a fairly recent acquisition and I’m still getting it integrated. I’m enjoying it a lot. The chair next to it is an Aeron - quite pleasant, and mostly the cats have adopted it when I’m not playing piano.


And what are the favorite items in your workspace?

The microphone is a standout. My piano is pretty loveable. Before the current piano I was using an old cheap Yamaha keyboard. The ES-110 is among the cheapest “real” digital pianos, and the difference from non-real ones is night and day.

The kids and I talk about the “Disco keyboard” with the rainbow backlighting.

The view over Inverness is also pretty awesome.

What is your software setup?

I mostly work on CRuby. That means a combination of CLang and GCC for the C parts, and of course CRuby for (most of) the Ruby parts. I’m using VSCode at work, and sometimes at home too. Sublime is its big competitor for my own stuff. I’m an old console guy, so mostly iTerm2 is the non-editor part of my environment.

For presentations I’m often using Keynote, which is fine-to-good. Affinity Photo and Designer for drawing.

Also Camtasia, which is fine-to-mediocre. Audacity lately, which is the “very open source” kind of good – excellent at what it does, terrible interface.

Any favorite programs/apps/tools?

I feel like an impostor using Affinity Photo, but it’s been making me better at drawing. That’s always nice.

What are your favorite programming or scripting languages?

I love my Ruby. Also C, when I can justify using it. But I feel like I’ve slowed down on caring about languages. I needed to pick up Rust for a recent project and it was… fine. I feel like I would have had stronger feelings a few years ago.

Is there anything you are missing in your setup?

I have a greenscreen I need to work with until I can use it reliably. I’m trying to figure out what DAW I need to do fun things with the piano.