HomeAbout MeProjectsContactMeow

I Program on the Subway

16 Nov 2025

Programming some m68k assembler for my custom SBC at 1am on the subway. Sorry it's blurry!

Ever since moving to New York City, I've found my time to be in more demand than ever. Between work, meetups, and social events, I have noticeably less time for side projects than I had before moving here. At the same time, my commute is a massive time suck. It's 30 minutes each way, which doesn't sound that bad, but it means I'm wasting an hour every day.

These days, I use this time to program.

You don't get much, but that's good

On the subway, I'm missing a lot of my normal setup. I don't have multiple monitors or a fancy keyboard. I don't even have an internet connection. I don't mind this, though - in fact, I think the lack of distractions is quite beneficial to my focus. The only thing I can do is the exact thing I'm working on.

And if I really do need an internet connection, most subway stops have free WiFi, and I've found there's enough time to connect and briefly use the connection without getting off the train. I've done this before to download a package or quickly check some documentation.

You might not even get enough to run your code

A lot of my side projects involve low-level embedded code. Generally I don't bother writing simulators for my hardware, so when I'm on the subway I can't test my code beyond checking that it compiles. I'm generally a big proponent of a fast edit/compile/run cycle, but being forced to think deeply about your code and what it will do can be helpful. If I was doing this all day every day, it might be an issue, but if it's only for an hour a day or so, I don't think it's that bad.

You can't use 100% of your thinking capacity

The non-ideal environment of the subway means I can't use my brain fully. Keeping complex state machines in my head is risky, because it is very easy for e.g. a loud noise to cause it to disappear immediately. In practice, I don't find this to be much of an issue, because even complicated projects have a lot of busywork to do. Daemons I write need a systemd service created and Nix packaging, embedded devices need their hardware initialized, etc.

In the rare case I have nothing to do but something very complex, I generally keep my laptop in my bag and instead sketch out a diagram on a piece of paper of what I need to build and how I plan to build it. I always keep a small notebook in my bag for this reason.

It's (probably) safe?

My friends often joke that they're surprised my laptop hasn't been stolen yet. In practice I think this is probably a pretty unlikely thing to have happen. My laptop is a cheap ThinkPad that I bought used on Ebay a few years ago for a few hundred dollars. If someone wanted to steal it, they would have to do it at a station, where they could immediately get off the train. I think, though, that this would be risky, given that subway stops generally have a lot of people getting on/off the train in the first place.

So I'm not going to worry about it too much, and if it does happen it's a relatively simple matter of buying a new ThinkPad and rebuilding Nix from my config (thank you Nix)

You can make friends

I've had good conversations with strangers who have asked about what I'm working on. I think in general being a little weird is a good strategy to make friends, and programming in public has the additional benefit that you attract other people who like to program, plus you give them something to talk to you about!

You need a seat (for now...?)

The subway is busy, and especially during rush-hour, it can be tricky to find a seat sometimes. Right now this is the biggest limitation for me - it really sucks to be excited to work on something and then have to put it off because no seats are free.

Currently I am working on affixing a split keyboard to my pants, so that I can program while standing up. There are existing products that are essentially a pair of glasses with a screen inside of them, which I'd use as my display. This will give me more opportunities to program, although at the cost of looking a lot weirder (^:

You should program on the subway

If any part of this post resonates with you, you should program on the subway! It might feel weird at first, and it might take a bit of practice to get into a flow state, but I think it's worth it. Being resilient to distractions is a good skill to have outside of the subway, too!