RC is amazing.
Today is my last day at RC. I am sad I’m leaving, and I thought it might be worthwhile to publish a few thoughts about my time here.
The space
Picture this: SoHo, New York City. Next to Chinatown and Little Italy. Surrounding streets closed surprisingly often for filming. Locations recognizable from TV. On the second floor, an open plan workspace, with breakout rooms named for giants of computer science. That’s RC’s space.
The feeling of the space is way more than that though. There are whiteboards in every room, always covered in problem-solving. People write on the glass windows too, and butchers paper, and even one big wall in the space known as Dijkstra.
I think it was in Fermat’s Last Theorem I read about a mathematics conference where they had blackboards in the elevator, in case you wanted to discuss a problem there too. That’s what RC is like.
The space is genuinely open 24 hours. There are people here every time of the day or night. Some people get in early, some people leave late. I’ve been the last to leave only a couple of times; it’s not unusual for people to still be around at three or four in the morning. There are people around on weekends.
Somehow, though, it’s still not that hard to be productive. You can head to one of the side rooms (including Church, a dedicated quiet room). You can work at a table, or on beanbags in the library, or on couches. You can work with others or with headphones on.
The people
Someone told me RC interviews select for niceness. That seems at least partially true.
It is actually amazing how excellent the people are. There are no bad people here. None. I don’t know how they do it; it seems impossible in two Skype interviews and a simple application form. Somehow, though, they manage it. Everyone here is nice, and helpful, and interested in things.
For me, that last one is kind of the biggest deal. I was briefly in the PhB program at ANU. I left before the first semester was up because I couldn’t stand the unwillingness of others in the program to discuss anything outside their specialization. Organic chemistry students - first year undergraduates mind - didn’t care about inorganic chemistry, let alone physics or computing or mathematics or - god forbid - law or sociology or philosophy.
Everyone at RC is a computer programming person. But that is far from all they are. People are happy to talk about science, mathematics, art, law, philosophy, sociology and anything else you want to talk about. Everyone is passionately curious.
For me this is exemplified by an interaction I had with someone where I was helping them to install postgresql on their machine. Having explained the client/server model postgres uses, and having diagnosed the issue as being the server not getting started, this quickly became a discussion about how servers get started generally. And then how initial processes get started. How kernels bootloaders work. How partition tables are structured.
Often people think about depth of learning being to the exclusion of breadth. It turns out to be the opposite at RC. To truly understand something, you have to understand the ecosystem in which it operates, and RC makes that a possibility.
Everyone at RC is also incredibly willing to share their time. Everyone is happy to talk to you, to teach, to learn. You can work on things together, or get a code review. Solve problems together.
I recall one occasion in particular, at 2am after a board games night, with a few people standing around discussing Church encoding. At two in the morning, rather than going home, people were willing to stick around and teach this abstract concept; and people were willing to stick around and learn it.
What I’ve learned
I feel like I’ve learned everything.
I worked in languages I only vaguely knew existed before, most notably Haskell and Go. I’ve built C programs that compile. I’ve written solutions to fun programming problems in Scheme and bash. I’ve learned about lambda calculus and functional paradigms and formal grammars and how to do a whiteboard interview properly. I’ve figured out what “dynamic programming” means and why the best chance for 100 prisoners and an arbitrary sentencing rule is to follow cycles. I’ve learned about convolutional neural networks and back propagation. I’ve seen the surprising complexity of asynchronous file IO problems. I’ve discovered the joys of ES6 and the pain of webpack and why an immutable datastore might be a good idea. I’ve even tried my hand at building shellcode.
Maybe the most important thing I’ve learned though is that I’m not an imposter. I didn’t expect this. It wasn’t my aim in coming here.
The culture
This is really the culmination of all of the above.
One of the things RC is famous for is its social rules. I cannot emphasize enough their importance.
It turns out the culture of RC is more than just “no dickheads”. This is one of the safest spaces I’ve ever been in. This makes it easy to ask for help and to learn. It makes it easy to teach. And just as RC claims, it means you don’t have to worry about anything except what you’re working on.
I want to illustrate this with a small example.
RC has “checkins”. You show up at 10:30am (or thankfully there’s a 1pm option too) and chat about what you did yesterday, what you have planned for today. It’s groups of 6-8, and takes less than five minutes. It’s a good way of making sure nobody is sitting around doing nothing: lightweight social accountability. (Lightweight is a big thing at RC, and I think that’s a powerful way of shaping a community while maintaining independence.)
Early in the second half of my batch someone suggested reinstating what is apparently an old RC tradition: feelings checkins. Late afternoon, a group gets together and everyone says how they’re feeling. It’s still lightweight, though it tends to take a little longer than five minutes.
Feelings checkins have (at least on some days) been mostly populated by men, many of whom (including myself) would be uncomfortable discussing their feelings in any other context. Even with family and close friends there’s a worry about judgement. But the atmosphere at RC excludes toxic masculinity in a way that is totally unexpected. This type of “safe space” is one that I didn’t even realize could exist. I’m struggling to find precisely the words to explain this, but it is something truly special.
Concluding thoughts
RC is amazing.
This has been a transformative experience for me in its primary focus, certainly. I am a better programmer, and I know how to continue to improve as a programmer.
RC has also been personally transformative. This was a time in my life when change was happening anyway, and being in New York was always going to be big. But RC didn’t have to be a part of that; and I suspect that even if that wasn’t the case, RC would have changed me for the better anyway.