Jacob Vosmaer's blog

My time at the Recurse Center

2024-02-27

I have recently wrapped up a 12-week programming retreat at the Recurse Center. In this blog post I will reflect on why I attended the retreat, what it was like and what I got from it.

What is a programming retreat

The phrase "programming retreat" is an allusion to writing retreats and I think Recurse made the term up. :) I will give my own take on what it means.

It is not unusual for programmers to enjoy programming itself. If you are a professional programmer then you get to program for a living but it may not be the kind of programming that brings you joy. Programming is also something you can always learn more about and get better at. It has a great potential for personal growth. But again as a professional programmer, you may not be able to experience that growth because in your job you are stuck in some niche or specialty.

When you attend the Recurse programming retreat then for 6-12 weeks, you get to dedicate yourself full-time to pursue this joy and growth related to programming outside of the constraints of work, surrounded by other people who are doing the same thing.

That retreat sounds amazing. Is there a catch? Who is paying for this? The Recurse Center, the company that organizes the retreat, is also a recruiting agency for programmers. So ultimately employers who hire programmers through Recurse are paying for the retreat.

Why did I go to the retreat

I worked at my last job for nearly 10 years. I reached a point where I wanted a bigger change than what I could achieve by moving teams within the company. However I did not know (and still do not know) what exactly I do want to do. To break through this impasse I decided to resign and give myself some time off to figure it out.

I applied to attend the Recurse programming retreat during this time off because it seemed like a good way to reflect on what I want to do next in my career. I was also drawn by the prospect of being surrounded by other people who are excited about learning and growth.

What it was like

Attending the Recurse retreat is a self-directed experience so it will be different for everybody. I will say a few things about what it was like for me.

Online experience

Participants have the choice to attend the retreat in-person at "the Hub" in New York, online, or both. For logistical and economic reasons I attended as an online participant only.

The online Recurse experience is great but you are occasionally reminded that the in-person experience is better. I think any hybrid event will struggle with this and I think that Recurse does a great job of reinforcing behaviors that make the online participants feel included. For example, during weekly Presentations, the in-person audience sits together in a big room looking at a screen. But the speaker of each presentation is on Zoom. In-person speakers go into a separate room with their laptop to give their talk the same way that someone online from halfway across the world would have to do it.

I am well-accustomed to remote work because I worked at a fully remote company for 10 years. For me, attending the Recurse retreat online was not a drawback but a great opportunity to do something I otherwise might not have done.

Timezones

The retreat is organized around US working hours. I attended online from The Netherlands so retreat activities were in the evenings for me. I was worried about this before I joined because if I would take the official working hours at face value I would have to be at my computer "working" until 11pm every weekday.

In practice I did not do this. I did spend time on Recurse every evening but on most days I stopped somewhere between 9pm and 10pm. I had enough overlap to interact with other participants and I could work on my own projects earlier in the day.

Zulip

The Recurse Zulip server was the heart of my retreat experience. Zulip is a chat app similar to Slack. It is there not just for the retreat participants but also for the Recurse alumni community.

Because both current participants and alumni are active on Zulip there are a lot of posts. I had to learn to find my way around the app and the various sections ("streams") and discussions ("topics"). There is an option to ignore individual streams and by using that I was able to get the amount of new posts I had to keep up with down to something manageable.

The "checkins" stream was the most important part of Zulip for me. Each current participant has their own topic where they post status updates about what they are working on or thinking about. Writing status updates is like journaling and gives you a sense of progress. Because others can read your checkins and respond, you can get help, advice, moral support, or invitations to collaborate you might not have thought to ask for.

I was able to keep up the discipline to write status updates every day and to read up on those of all the other participants. I strongly recommend others who attend Recurse to do the same. It takes some time each day but it pays off in the connections you gain with others.

The "blogging" Zulip stream was also important to me. It is managed by a bot called "Blaggregator" which stands for "blog aggregator". Recurse community members can sign up their blogs with the Blaggregator and then every time they publish a new blog post, the Blaggregator automatically creates a Zulip topic for the post. In effect the blogging stream is like a big RSS feed of all blog posts written by current participants and alumni. Because each post gets its own Zulip topic, people can ask questions, show their appreciation or otherwise respond to your blog post.

The blogging stream helped me get started with blogging again so it has been really valuable to me.

There are many many more things going on on Recurse Zulip but these two things were the most important for me.

Weekly Presentations

Every week there is an hour-long presentation session at the retreat where 12 speakers get 5 minutes to present something they have been working on on Zoom. This was a great opportunity to see some of the amazing things others were working on, and I also really enjoyed it as a way to share my own work: I ended up giving 5 presentations over my 12-week batch.

My take is that in 5 minutes you can only share one thing, plus some context of why you are excited about that thing. This made it really low-effort to give a presentation: I only needed to decide if there was one thing I recently did I wanted to share, and how I could communicate my excitement. This was a fun change from spending ages making presentation slides and worrying if you come across professional enough and that you don't embarrass yourself or your employer.

A lot of my projects had to do with audio and the presentations were a unique opportunity to let people actually hear what I was doing, as opposed to having to read about it.

Pair programming

The Recurse Center encourages participants to do pair programming. Looking back I agree but I had to adjust my expectations of what pair programming is.

Pair programming means "two people programming at the same computer". You can do this in person by sitting next to eachother at a desk but also via Zoom by using screen sharing.

The way I know pair programming, either of the two people at the computer could be doing the job at hand on their own, and they just happen to do the work together. One person is typing and the other is reading along but you could switch at any time. In the context of the Recurse programming retreat, where everybody is doing their own projects in different programming languages and different application domains, you usually can't switch.

I struggled finding people to pair program with because I either felt I ought to know more about what they were working on, or I wished they knew more about what I was working on. Things got better when I dropped this "we could switch at any time" assumption. Even if I only understand half of what the other person is working on, I can still ask interested questions, learn something new and get to know the other person!

What did I get from my time at the retreat

I have previously written about all the technical topics I worked on at the retreat. One obvious outcome of my time at the retreat is that I got to learn more about those things. I also learned to be less shy about doing things I don't "know enough" about.

Participating in the Recurse community also prompted me to grow in other ways. For starters there is the blog you are reading now. I created this blog a few years ago but I hardly ever posted new articles to it. I did not know what to write or who to write for. I can now imagine the Recurse community to be my audience: they are my mental image of who I am writing for. This helps me decide what to write about and how to write about it.

Another big change is that I updated my personal website to give more information about who I am and what I do. I found myself having to explain this repeatedly as I met new people at Recurse and it started to make sense to publicly present this information in one place.

Lastly there is the Recurse alumni community. Even though my retreat has ended I can still engage both with people who are currently attending the retreat and with alumni. I can even go to retreat study groups if I want, or give a presentation at the weekly presentations meeting. I don't know yet how much time I will have for this but it is great to know that it is there.

Conclusion

I feel fortunate that I got to attend this retreat. The Recurse Center provides the structure and supporting facilities but the true substance of the retreat is the combined excitement, curiosity and generosity of the participants. Thank you all!

Tags: recurse

IndexContact