
I just wrapped up three months at the Recurse Center (S2’25). This is my return statement — a tradition where Recursers reflect on their batch.
What even is the Recurse Center?
RC is a self-directed programming retreat in NYC. It’s hard to categorize because it doesn’t fit the usual boxes. No curriculum, no teachers, no certificates. Just a space full of nice, smart and passionate programmers. You can attend in person at their Brooklyn space or join remotely.
You spend 6 or 12 weeks working on whatever you want, surrounded by people doing the same. Some folks build operating systems from scratch, others explore functional programming or dive into compiler theory. Someone might be working on a game boy emulator while their neighbor implements a theorem prover.
The people at RC come from everywhere. I met quant traders, creative programmers, big tech engineers, academics, engineering directors, talented high schoolers, and people from all walks of life.
The community runs on a set of social rules that make it easy to learn and collaborate: - No well-actually’s: Don’t be pedantic when someone makes a minor mistake - No feigned surprise: Don’t act shocked when someone doesn’t know something - No backseat driving: Don’t interrupt pair programmers with drive-by suggestions - No subtle -isms: No racism, sexism, homophobia, etc., even subtle or “joking” versions
These aren’t just nice ideas posted on a wall. People actually follow them, and it creates this space where you can ask “dumb questions” without feeling dumb.
RC also has self-directives that guide how you approach your time: - Work at the edge of your abilities: Push yourself beyond your comfort zone - Build your volitional muscles: Work on what you want to work on, not what you “should” - Learn generously: Share what you know and help others
Why I joined
The reason I applied is simple and embarrassing: I felt like I was regressing as a programmer.
The last year or so at Apple, I’d been doing more project management, cross-functional alignment, and general corporate drone work. Sure, there’s value in that. In a company the size of Apple, someone needs to keep projects aligned and stakeholders happy. But it wasn’t programming at the edge of my abilities. It was meetings about meetings.
I could have just taken a vacation or carved out side project time at work. But my mentor at Apple had left for RC for the same reasons, and that planted the seed. The idea of spending 3 months surrounded by people who just want to build cool stuff sounded perfect. A place to learn things I’d never thought about, work on hard problems, and make new friends.
What I actually did
I went into RC thinking I’d explore a bunch of different areas. I did some of that, but most of my time ended up focused on two main projects.
Distributed training on heterogeneous hardware. I got interested in what happens when you need to train models across different types of accelerators, like mixing Nvidia GPUs with AMD or newer AI chips. As more players enter the accelerator market, I think this will become increasingly relevant. You can read more about what I learned here.
Alternative architectures for LLM pre-training. This became my main focus: researching performance engineering techniques and architecture alternatives for training language models when you don’t have infinite compute. The U-Net Transformer architecture I explored showed some promising results for limited compute scenarios. I wrote up my findings here. Huge thanks to some researchers (now at Anthropic) who helped me think through the approaches.
Beyond those projects, I got to explore a bunch of random stuff:
Automatic theorem proving with an RC alum doing a PhD in geometric group theory (she recently defended, congrats!). We played through the Natural Number Game in Lean, which was mind-bending in the best way.
Pairing sessions on everything from writing a Game Boy emulator in C to calculating when Manhattanhenge happens (yes, it’s real). I also spent time helping folks build AI/ML applications, like someone implementing “Spotlight on steroids” for their local filesystem.
I wish I’d paired even more. Every session was a reminder of how much I don’t know, but also how much you can pick up just by sitting next to someone and working through problems together.
The non-coding parts
When I wasn’t coding, I was usually playing games. Chess, Love Letter, Decrypto. The game nights were some of my favorite memories from RC. Just a bunch of nerds trash-talking over card games and board games.
One thing I’m weirdly proud of: I pioneered Film Night as a reaction against Movie Night. Movie Night consisted of high-brow films followed by several hours of intense discussion. Film Night was the opposite. We’d watch something fun and dumb, then have shallow conversations like “I liked the explosions” or “The main character was hot.” Sometimes you just need that.
What I got out of it
I’m a better programmer and machine learning engineer now. I’ve never felt more on top of my game.
The facilitators at RC helped a lot with this. They gave solid advice on how to approach the batch and actually get something out of it rather than just floating around for 12 weeks. Having that guidance while still having complete freedom over what I worked on was the right balance.
The technical stuff aside, RC reminded me why I love programming in the first place. It’s not about shipping features or hitting OKRs. It’s about understanding how something works, solving hard problems, and building things with people you respect.
If you’re feeling stuck or burned out, or just curious what you could do with some focused time, apply to RC. Three months working alongside nice and smart people who care about programming. It’s one of the best decisions I’ve made.
Never graduate! 🌱