Happy 6th birthday, RC

Dear current Recursers, alumni, colleagues, and friends,

Six years ago today was the start of the first batch of the Recurse Center. Since then, RC has both changed dramatically and remained strikingly similar. Many of the changes are easy to spot: We’ve grown from three people with an idea to a global network of over 1,000 alumni; moved from a small room donated by NYU to our own dedicated space; and gone from not having a website to a thriving online community.

The core ideas that animate RC — that self-direction is integral to real growth; that a supportive environment and community are key to helping people flourish; and that you can make such a community free and accessible through recruiting — remain the same, though our understanding of these ideas continues to evolve.

Of course, our path so far has not been smooth, straight, or fully planned. We’ve made many mistakes. And we’d be lying if we said we never wanted to give up on RC. Each of us has wanted to quit when we were feeling particularly down, or our situation felt grim.

But again and again two things above all else have sustained us: A conviction that RC should exist, and the people around us — our community, colleagues, and each other.

The latter — most notably the RC community and our employees — has proven to be an unexpectedly rewarding part of running RC. We have all formed close friendships with Recursers, and been inspired and re-inspired by the dedication, ingenuity, support, and love so many of you have demonstrated over the years.

Thank you for helping make RC what it is today; RC could not exist without you. We hope to have the pleasure of improving RC alongside you for many years to come.

Never graduate,

Nick, Sonali, and Dave
RC cofounders

Join the Recurse Center and build useful software

We’re hiring a Product Engineer to help us build useful tools for RC’s operations and community. This is an opportunity to have a meaningful impact on a small number of people.

Read on to learn more about RC, the software we write, the good and bad parts of this job, and our interview process.

About the Recurse Center

RC is a radically self-directed educational retreat integrated with a recruiting agency. The primary educational value of RC comes from Recursers themselves: RC is peer-to-peer, which is why it gets better as the community becomes larger and more diverse. RC is self-directed because we believe that education is “the product of the activity of the learner” (to quote John Holt), and that people learn most effectively when they are in control of and have responsibility for their own education.

Experienced and new programmers come to RC from around the world to spend six or twelve weeks in New York focused on getting better at programming. Afterwards, alumni remain highly involved in the community, both offline and online.

RC is funded through recruiting fees paid by partner companies when they hire alumni we refer to them. This allows us to keep RC free for everyone, and to fund need-based living expense grants for people from groups traditionally underrepresented in technology. There is no expectation or requirement that people who attend the retreat want or take a new job.

About this job

This is a full-time job based in New York City. It is a “full-stack” role, by which we mean it involves writing backend code (primarily with Ruby and Rails), using and designing data models (primarily in Postgres), writing lots of JavaScript (primarily using ES6, React, and Redux), and writing HTML and CSS (primarily using Sass and following BEM). In addition to writing software, this job also involves helping to figure out how it should work and if we should even build it in the first place.

From looking at our public website, it might not seem like we write or have much need for software. In fact, software is essential to many aspects of RC. Here are the three biggest areas to give you a sense of the type of software we write.

Software for our community

We have an internal directory where Recursers can browse and search for other members of the community, a collaborative calendar where anyone can organize or join events, and an open source web forum and mailing list (the latter has not seen much attention recently). We’ve also built a simple proxy so our community can easily create recurse.com subdomains. We use Zulip, the open source chat system, extensively, though RC employees have not yet contributed to it significantly (one thing we’d love to do is integrate with Zulip for single sign-on and shared user profiles).

Advertising and admissions software

We’ve built a simple “ad network” called RC Scout, which lets Recursers put a JavaScript snippet on their blogs and personal websites to advertise RC to potential applicants. (You can see a live example at the bottom of this blog post.)

We have a team of RC alumni who work as contractors and conduct all our admissions interviews. We have custom software for every part of this process, including interview scheduling, payment tracking, and application management (commenting, grading, and updating the status of an application). Software also lets us form our initial impressions during application review based off pseudonyms instead of real names which reveal demographic information (e.g., “Dolphin Storm” instead of “Kimberly Lin”).

(Our applicant-facing admissions software is sorely lacking. The take-home project mentioned below will be about this.)

Software for our business

The most extensive tools we’ve built so far have been for our recruiting business. Our core product for this is called Jobs Chat, a dashboard where people considering new jobs can organize their interview process and chat confidentially with RC faculty. It’s threaded by company and lets job seekers and faculty collaboratively schedule interviews, update where folks are in the process, and organize companies into groups. The admin interface for Jobs Chat lets RC help dozens of Recursers navigate their job searches simultaneously. This would be impossible without our software. Jobs Chat integrates with Asana (for task management) and Gmail, with an indispensable email composer and linter.

Pros and cons

Every job has downsides, and this one is no exception. People usually learn about these things after they join a company, but we think it’s important to highlight them in advance:

  • The pay is likely much less than you could get as a programmer at many tech companies.
  • We have few users and small data, and we don’t expect this to change dramatically. If you want to build products that millions of people use, or grapple with how to manage large amounts of data, this job is not what you want.
  • While several of us write code and help build products for RC, you will be the only one on the team focused solely on software.
  • We do very little automated testing (we’re not morally opposed to it, but we’ve found pair programming and careful code review to be more effective strategies for us given our priorities so far). If you’re looking to join a company with great code coverage you’ll be disappointed and possibly horrified.

Thankfully, we think this job has many more good things going for it:

  • Meaningful work, with a huge effect on people’s lives. To brag briefly: We’ve lost track of the number of alumni who have told us we changed their lives, or that RC was one of the best things they’ve ever done.
  • Easy access to and quick feedback from our users. The software we write is either for our coworkers and ourselves to use (~8 people) or for the RC community to use (~1,000 people, currently growing about 200 people/year). In either case, we have close, in-person relationships with the people who use and care about our software.
  • We pair program regularly, care about code quality, and try to continually improve how we write software.
  • A friendly and intellectual atmosphere, and a tight-knit and supportive team of coworkers.
  • A warm and welcoming office (we’re currently in SoHo near Broadway and Grand).
  • A great health insurance plan, plus dental and vision insurance.
  • 15 days of vacation (we effectively have unlimited vacation, but we have a number to make sure people actually take it), a 10-day winter holiday (Dec 23 to Jan 1), and seven additional holidays. We also have five days for personal development, which you can use for anything that supports your personal and professional goals and growth.
  • Complete organizational transparency: If we give you an offer, we will share all salaries, how much cash we have, projected revenue, and the many risks we face. We will answer any questions you have about our company and prospects honestly and directly.
  • Speaking of transparency, the salary for this role is $100-125k, depending on past experience. We will also give you stock options, with the caveat that you should treat them as a particularly unlikely lottery ticket. We will share the percent of the company the options currently represent, their strike price, our current valuation and cap table, and any other relevant information you’d like.

Who we’re looking for

  • You are a good programmer. By this we mean that you can write and reason clearly about code, debug systematically, make good technical and product tradeoffs, and balance pragmatism and shipping with code and overall quality. You also need to be comfortable with or willing to learn multiple languages and systems (we mostly use Ruby and JavaScript, but we also have bits of ClojureScript and Python).
  • You have good product and design senses. This includes being able to empathize with users and make good tradeoffs. You don’t need to be a trained designer (though it’s cool if you are!) but we do hope that you have some sense of aesthetics.
  • You’re comfortable directing your own time and working independently. This doesn’t mean working in isolation — we collaborate closely and frequently! It does mean you need to be comfortable taking a large task or problem, breaking it down into manageable chunks, and asking for support from others when you need it.
  • You have excellent communication skills both online and in person.
  • You are secure with your self, and are comfortable giving and receiving candid feedback.
  • You have good judgment and are a reliable coworker and employee.

Lastly, it’s important that you share our core beliefs about education. Dissent and skepticism are great, but if we don’t all agree on enough of the big things we’ll never get anything done.

Things that are not important to us

  • Whether or not you have a CS degree (or any degree).
  • Whether or not you’ve previously worked at a “name-brand” company.
  • Whether or not you have a GitHub profile or long list of open source contributions (they’re great but in no way expected; we know everyone has full lives and different priorities).
  • Whether or not you cold-email us or have a connection already (we welcome and hope to have many applicants from the RC community, but we’ll evaluate everyone who applies equally and through the same process).
  • Whether or not you can implement merge sort or anything else from memory while standing at a whiteboard.

We know the things above aren’t required to hire great people. RC’s current Product Engineer does not have a degree (he dropped out of a political science program), applied to RC with no previous connections, and did not have professional experience when we hired him. He is the most productive and enjoyable programmer we’ve ever worked with. He’s moving on to new things later this summer after working at RC for five years, and he has contributed to our company in more ways than we could possibly list.

How to apply and what to expect

  • Please send us an email with a paragraph or two about yourself and why you’re interested in this job, along with a link to a publicly-viewable LinkedIn profile or resume. Please use thoughtful, conversational English and proof-read your message. Additionally, please briefly describe one or two projects or products you’ve worked on recently for work, fun, or any other reason. Include the capacity you worked on the project and challenges you faced. (Links to code or live versions are great, but we understand if that’s not possible.)
  • If we choose to move forward we’ll invite you to a 30-60 minute phone screen so you can learn more about RC and this role and we can learn more about you. About half of this call will be dedicated to your questions for us, so you can begin to evaluate if this job might be a good fit for you and if you want to invest more time in this process.
  • If that goes well, we’ll invite you to another 30-60 minute phone screen to evaluate your product sense. We’ll ask you to choose a web or mobile app you use regularly and discuss what you think is good and bad about it. (If you’re part of the RC community, we’ll ask you to do this for a piece of RC’s internal software.)
  • If that goes well, we’ll ask you to do a four-hour “take home” project, which will focus on rethinking and improving part of our applicant-facing admissions software, using whatever language and tools you choose. If you make it to this stage, we will pay you $200 for doing the project, regardless of if you proceed to the subsequent round.
  • A day of in-person interviews. These will mostly build upon the project you began in the previous step. We will pair program and work together to expand on both the code and design of your project. You will have an opportunity to meet and work with every person in our company, and will have ample time to ask us all questions.

After each stage we’ll let you know whether or not we’d like to continue as quickly as possible (our goal is within one or two business days). If you’re advancing to the next stage, we may also give you feedback about what we thought you did well and what you could improve on for the next round.

A few extra things to know

  • Most of the company gets in around 10am and leaves around 6:30pm, but some of us come in early and/or stay later.
  • We’re personally and institutionally committed to combating sexism and racism.
  • If you’re considering applying, you should spend a few minutes reading our blog, about page, and User’s Manual to get a sense of our company and your potential coworkers.
  • We are happy to sponsor visas when possible. We cannot sponsor H-1Bs, since the soonest someone could start work on a new H-1B is October 2018, which is unfeasible for us (we can probably transfer existing H-1Bs).
  • This is a full-time role, and you need to be able to work on-site at our office in NYC. (While the current person in this role is remote, he only shifted to remote after working with us for 4.5 years. We don’t think we’re set up or well positioned to onboard someone remotely from the start.)

Never Graduate Week 2017: how we planned and ran our annual alumni week

Rachel vincent circle Rachel Vincent

Each May we invite the entire Recurse Center community to return to New York City for Never Graduate Week: five days of programming, socializing, and reconnecting with their batchmates and community. This year over 200 Recursers joined us. They represented all 33 past batches of RC, and traveled here from over a dozen countries and forty different cities.

Our community grows by nearly 250 people a year, and so every NGW is bigger than the last. We realized last year that it would be impossible to fit everyone who wanted to attend in our main space without it feeling like a can of computer-adept sardines. Our primary goal became to find a way we could accommodate as many folks as possible during NGW, and which was scalable for subsequent years. A secondary goal was to host an event in which everyone who attended both learned something and taught someone something.

What we ultimately wound up doing was a major departure from Never Graduate Weeks past: we ran a small unconference-conference hybrid for the RC Community, replete with badges, talks, and several livestreams. All of these pieces came together in such a way that we didn’t fully realize (or admit to ourselves) that we were indeed planning a conference until we were nearly finished. And, largely thanks to it being rooted in a wonderful community, it went pretty well!

Never Graduate Week 2017

The specs

We had over 200 folks attend this year’s NGW. Not counting our labor, it cost us just under $19,500 in space, food, drinks, and giveaways (we made hoodies, custom Scoutbooks, lanyards, and hand screen-printed social rules posters).

We didn’t charge folks to attend, but we also had some advantages over traditional conferences: namely a built-in crew of organizers (mainly Sonali Sridhar, James Porter, and me), one big space, and pool of speakers we knew well and could reach out to, rather than having to solicit proposals. We also didn’t have to deal with heavy-duty registration or check-ins – Nick made a quick RSVP page for our site and we were good to go. All of this saved us time and money.

However, we also only had one sponsor: Squarespace, one of our recruiting partners, hosted an awesome end-of-week party for us at their offices, and sent five of their engineers to do a panel discussion during the conference.

There were three spaces open to folks during the week: our main space, a satellite space, and a smaller quiet space for folks who wanted a quiet spot to rest or program. All of these were within a few blocks of each other.

Our main space was where everyone gathered for the welcome talk and breakfast, the closing talk, the unconference events, Thursday presentations, and our afterparty.

Our satellite space was open from Monday - Wednesday, and was where we held the conference-style talks, workshops, and panels.

Small tokens of appreciation Posters screenprinted at the Newark Print Shop

The ‘conference’

We hosted seven talks, two workshops, and two panels at Blank Studio in SoHo:

  • Lindsey Kuper, former resident and research scientist at Intel Labs, spoke about proving that safety-critical neural networks do what they’re supposed to (and Naomi Saphra gave an impromptu crash course in neural networks beforehand)
  • Leigh Honeywell, former resident and current Tech Fellow at the ACLU, spoke about security and privacy for 2017 and beyond
  • Five engineers from Squarespace (including RC alumns Christina Cha, W2'16, and Emily Xie, SP2'16) spoke on a panel about how to keep programming fun when it’s also your job
  • Liuda Nikolaeva, S2'14 and an engineer at Jane Street, hosted a workshop on getting started with OCaml
  • Nabil Hassein, S'13 and SP2'16 and an engineer at Khan Academy, gave a talk and facilitated a discussion about machine learning and predictive policing
  • I moderated a panel with Sonali, Dave, and Nick, RC’s founders
  • Stanley Zheng, W1'16, gave a talk on building web services in Go
  • Neeraj Wahi, W'14 and an engineer at Dropbox, gave a workshop on contributing to the Zulip open source project
  • Filippo Valsorda, F'13 and a member of the crypto team at Cloudflare, gave a talk on TLS concepts
  • Aditya Mukerjee, SP1'15 and an engineer at Stripe, gave a talk on monitoring code for reliability
  • Leah Hanson, W'13 and F1'16 and an engineer at Cloud Foundry, gave a talk on WebSockets
  • And last but not least, we hosted a Coding Bee, which is like a tandem spelling bee with coding!
Leigh Honeywell talking about security and privacy for 2017 and beyond Aditya Mukerjee talking on monitoring code for reliability Liuda Nikolaeva hosted a workshop on getting started with OCaml Nabil Hassein gave a talk and facilitated a discussion about machine learning and predictive policing

We wanted the scheduled talks to represent the diversity of interests and individuals within our community. Half (9 of 18) of our speakers and panelists were women, and nearly half (8 of 18) were people of color.

The unconference

Unconferences are participant-organized conferences in which sessions are planned somewhat spontaneously, and are focused on encouraging conversation rather than one person sharing knowledge. There’s no program – attendees register interest in hosting and attending sessions in a central spot as the conference is in session.

We made an unconference wall in our main space, and invited people to post events they’d like to host on it on Tuesday and Wednesday of Never Graduate Week. There were 24 unconference sessions hosted, including a talk on coding with fear, a discussion of great bug stories, a talk and discussion about working for small non-profits, a discussion of computers and DNA sequencing, and a much-needed library reorganization.

We were particularly excited to do an unconference during Never Graduate Week because it echoes the way talks and workshops are organized at RC: nearly everything that happens at RC, from book clubs to code review groups, is initiated and organized by Recursers themselves.

Gathering around the unconference schedule

Thursday presentations

Finally, in a fit of circular inspiration from !!Con, we decided to fill Thursday with a full day of 5 and 10 minute talks from alums in the style of our weekly Thursday evening presentations.

We filled every spot but one! Alums gave 24 presentations. A few choice titles:

  • “Hacking musical notation”
  • “Scala disgusterousness”
  • “Group theory coloring book”
  • “Imperative Haskell”
  • “Random Git useful things”
  • “An Idris party trick”
  • “Sharks with lasers”
Irina Gossmann presenting at NGW 2017 Marek Majkowski presenting at NGW 2017 Fun RC presentations NGW 2017 Max and Heather meeting for the first time

Reinforcing our community

Two important aspects of Never Graduate Week are that it allows folks to reconnect with people who were in their batch, and it allows folks who have never met one another (in person or at all) to meet and work together. We chose, by hand, two to three people we thought folks should talk to based on their interests, and sent them to everyone who attended NGW in person the weekend before they arrived. We also hosted a bunch of social events throughout the week, including a Game Night and a picnic. Board game night at RC

Much of the work of facilitating social interactions is providing a good substrate and scaffolding rather than micromanaging people and events. We view the RC community as more of a biological system than a machine: if we give people a good environment that’s diverse and balanced, they’ll flourish.

It’s also helpful to have a lot of alumns who are fantastic DJs floating around – one of them, Marko Stamenovic, F2'16, provided the soundtrack to our afterparty, to great acclaim.

Remote attendees

Lots of alums can’t travel to New York for Never Gradute Week, and we wanted to include them as much as possible. We livestreamed our opening and closing talks, all of the talks in our satellite space, and all of the unconference events in two of our side rooms in the main space, Lovelace and Hopper. While it wasn’t perfect, nothing exploded, which we’ll count as a win. We also had streams dedicated to discussion of topics we covered in roundtable discussions. We also sponsored alum meet up dinners in London and San Francisco for the folks who couldn’t make it this year.

What went well

  • This year’s NGW was indeed less crowded than last year’s, despite accommodating more people.
  • We had a full schedule of talks and unconference events throughout the week.
  • The RC faculty didn’t burn out as badly after NGW as we have in past years.
  • We launched our new internal calendar at the beginning of NGW, which made RSVPing, seeing, and planning events much better.
  • The Game Night, end of week party at Squarespace, and afterparty were lots of fun, and were well-attended.
  • Everyone who answered our post-NGW survey said they met someone new.

What could have gone better

  • There were some logistical hiccups with our quiet space, and (perhaps it was so quiet that) lots of folks didn’t realize it was there.
  • There were a few things that happened or changed at the last minute which we’ll be more prepared for next time, including setting up better internet in our satellite space, facilitating more small social events, and printing programs and notebooks.
  • Many folks who attended NGW also have day jobs, and it was hard for them to attend without dedicated space to work remotely during the day.
  • We should have planned more meetups in other cities further in advance.
  • We should have been more consistent in how we took questions from folks watching talks remotely.

What’s in store for next year

Never Graduate Week will continue to get bigger as RC grows. I view attendance and interest in NGW as a measure of the health of our community: the more folks who want to attend, the better we’re doing. That means that we’ll be planning for an NGW with more space, more participants, and more fun social and technical events in 2018!

Join RC and help build a better place to learn

Update: As of June 22nd, 2017 we’ve filled the role described in this post, and are now looking for a Product Engineer.

We’re building a new kind of learning environment: One with immense collaboration but no coercion, and diverse participants but a common purpose of becoming better programmers. We’re building a place to realize the ideas of Holt, Illich, and Papert.

Want to help? If you’re new to RC, read on to learn about the role of facilitators and if this might be a good fit for you. If you’re a member of the RC community, read on because this job is probably not what you think it is.1

About the Recurse Center

RC is a radically self-directed educational retreat integrated with a recruiting agency. The primary educational value of RC comes from Recursers themselves: RC is peer-to-peer, which is why it gets better as the community becomes larger and more diverse. RC is self-directed because we believe that education is (to quote John Holt) “the product of the activity of the learner,” and that people learn most effectively when they are in control of and have responsibility for their own education.

Experienced and new programmers come to RC from around the world to spend six or twelve weeks in New York focused on getting better at programming. Afterwards, alumni remain highly involved in the community, both offline and online.

RC is funded through recruiting fees paid by partner companies when they hire alumni we refer to them. This allows us to keep RC free for everyone, and to fund need-based living expense grants for people from groups traditionally underrepresented in technology. There is no expectation or requirement that people who attend the retreat want or take a new job.

About this role

The job of facilitators is to improve the environment, structure, and operations of RC. This includes both the experience of participating in our retreat and of being an alum, and both the educational and career services aspects of our business.

Much of this work can be thought of it in terms of questions we try to answer: How can we establish a stronger culture of peer code review and feedback? How can we make it easier for people to find good pairing partners and collaborators in the RC community? How can we help Recursers tackle more challenging and ambitious projects? How can we better support people in learning how to navigate a self-directed environment? How can we maintain and improve the cohesion and trust in our community as it continues to grow? How can we more effectively support people in finding jobs they like? How can we change our physical and social environment to better support both collaboration and quiet, individual work?

Answering these questions and changing RC in response to them requires wearing many hats, from writing to programming to building furniture to project management. It also involves both working independently and collaborating closely with other RC employees and members of our community.

Pros and cons

Every job has downsides, and this one is no exception. People usually learn about these things after they join a company, but we think it’s important to highlight them in advance:

  • You will sometimes have to deal with hard situations, most commonly tricky people problems. When something goes awry or there’s conflict in our community, it’s our job to help resolve it. This can be frustrating and emotionally draining.
  • Some of the work is unglamorous (we’re an eight-person company, so we all have to do some amount of mopping up, figuratively and occasionally literally).
  • We regularly host events for our community after normal work hours, and this role requires attending many of them.
  • The pay is probably less than you could get as a programmer at many tech companies.

Thankfully, we think this job has many more good things going for it:

  • Meaningful work, with a huge effect on people’s lives. To brag briefly: We’ve lost track of the number of alumni who have told us we changed their lives, or that RC was one of the best things they’ve ever done.
  • A friendly and intellectual atmosphere, and a tight-knit and supportive team of coworkers.
  • A warm and welcoming office (we’re currently in SoHo near Broadway and Grand).
  • A great health insurance plan, plus dental and vision insurance.
  • 15 days of vacation (we effectively have unlimited vacation, but we have a number to make sure people actually take it), a 10-day winter holiday (Dec 23 to Jan 1), and seven additional holidays.
  • Complete organizational transparency: If we give you an offer, we will share all employee and founder salaries, how much cash we have, projected revenue, and the many risks we face. We will answer any questions you have about our company and prospects honestly and directly.
  • Speaking of transparency, the salary for this role is $100,000. We will also give you stock options, with the caveat that you should treat them as a particularly unlikely lottery ticket. We will share the percent of the company the options currently represent, their strike price, our current valuation and cap table, and any other relevant information you’d like.

Requirements

  • You have high “EQ” (emotional intelligence).
  • You have excellent communication skills both online and in person.
  • You are good at project and people management (you won’t have direct reports but you will need to be able to coordinate the effort of many people).
  • You are secure with your self, and are comfortable giving and receiving candid feedback.
  • You are excited about programming, and ideally have some background in it.
  • You do what you say you’re going to do, and you do it well.

Lastly, it’s important that you share our core beliefs about education. Dissent and skepticism are great, but if we don’t all agree on enough of the big things we’ll never get anything done.

What to expect from our interview process

  • The first step is to email us with one or two short paragraphs about why you’re interested in this job, along with your resume or your publicly accessible LinkedIn profile. Please use thoughtful, conversational English and proof-read what you write.
  • We’ll respond with a quick acknowledgement that we got your email.
  • If we decide to move forward, we’ll follow up to schedule a 30-45 minute call. This call has two purposes: We’d like to learn a bit more about you and what you’ve done, and we also want to answer whatever questions you have about RC and the role.
  • The next round is a short writing task. We’ll pose a problem or situation like one we’ve actually faced, and ask you to write something in response, like an email or plan to handle it.
  • If that goes well we’ll invite you to a day of on-site interviews, which will be a series of interviews with RC faculty and community members. We will try to make these interviews as much like the actual work of this job as possible.

After each stage we’ll let you know whether or not we’d like to continue as quickly as possible (our goal is within two business days). If you’re advancing to the next stage, we may also give you feedback about what we thought you did well and what you could improve on for the next round.

A few extra things to know

  • Most of the company gets in around 10am and leaves around 6:30pm, but some of us come in early and/or stay later.
  • We’re personally and institutionally committed to combating sexism and racism.
  • If you’re considering applying, you should spend a few minutes reading our blog, about page, and User’s Manual to get a sense of our company and your potential coworkers.
  • We are happy to sponsor visas when possible. We cannot sponsor H-1Bs, since the soonest someone could start work on a new H-1B is October 2018, which is unfeasible for us (we can probably transfer existing H-1Bs).
  • This is a full-time role, and you need to be able to work on-site at our office in NYC.
  1. Some historical context for the curious: RC previously had a role called “facilitator” that was very different from the job we now call “facilitator.” The old role was primarily about giving individual advice, pair programming, and doing code reviews for people.

How RC uses Zulip

The core of the Recurse Center is the community, and the core of our online community is Zulip, the open source real-time chat system.1

We started using Zulip four years ago this month. Our original reasons for adopting it were straightforward: We wanted a private chat system that was persistent, easily searchable, and which supported syntax highlighting for code snippets. We also wanted full names and profile pictures to make it easier for people in our community to find each other, both online and in real life.

Zulip gave us all the benefits above, along with a slew of others we hadn’t expected. Switching to Zulip has turned out to be one of the best decisions we’ve made, and it’s impossible to imagine RC today without it.

One challenge is that it’s become increasingly hard to explain how RC works to potential applicants, since we’ve chosen to have a private Zulip server and so a lot of RC isn’t publicly accessible. This post aims to share an important part of RC that’s previously been nearly impossible to learn about without attending.

Why community is the core of RC

RC is an educational institution with an integrated recruiting agency.2 We run full-time, in-person programming retreats in New York City. People come from around the world to spend six or twelve weeks programming together in a self-directed, collaborative, and supportive environment. The primary educational value comes from the participants themselves: It is peer-to-peer, which is why RC gets better as the community becomes larger and more diverse.

While our retreats are in-person, online chat is a major part of RC. Participants use Zulip to ask and answer questions, get code review, and coordinate pairing sessions, reading groups, informal seminars, and countless other forms of collaboration. Zulip is even more essential for our alumni, who are in over 100 cities around the world but remain heavily involved thanks to Zulip.

How RC uses Zulip

We have a Zulip instance (called a “realm”) with approximately 1,000 members, who send 1,000-2,000 messages on any given weekday. For those not familiar with it, Zulip uses a system of streams (think channels) and topics (think threads). For instance, we have a graphics stream, and recent topics include “OpenGL objects as process resources?” and “Three.js shaders.”

Many of our streams are dedicated to specific subjects. We have streams for programming languages (e.g., python), tools (e.g., git), and domains (e.g., machine learning). But many of the most significant and widely used streams at RC don’t fall into one of those categories, and so I’d like to focus this post on them.

Alumni-checkins and checkins

Every day at 12:30am GMT, a bot called “Alumni Bot” starts a new topic for that day’s checkins. As past Recursers and residents around the world start their days, many chime in with updates about what they’re working on.

An example message on our alumni-checkins stream

Many alumni post daily updates on our alumni-checkins stream. Laura is currently stationed in Antarctica. Shared with permission.

Like many of the best parts of RC, alumni-checkins was started by a Recurser. The stream has been so successful that we created a similar stream for current Recursers. We now have a checkins stream where people currently attending RC can share what they’re working on, what they’re stuck with, what they did the day before, etc. Here’s an example:

An example checkin message

Some Recursers choose to post daily checkins to keep themselves on track, find collaborators, and get help. Shared with permission.

Writing review

This stream is for getting feedback on writing. It’s most commonly used for drafts of blog posts, but it’s also used for conference proposals, talks, papers, and resumes. This stream works remarkably well, and nearly everyone who asks for it gets helpful review and feedback.

A Recurser asks for writing review

Recursers give each other constructive feedback on the writing review stream. This request got feedback in under 30 minutes. Shared with permission.

Blogging

This stream is powered by a blog aggregator (created by Recursers and appropriately named Blaggregator), which automatically posts links when Recursers who have opted-in post new blog posts. Each post gets linked under a new topic, which makes for easy, filterable discussion.

An example checkin message

Recursers have built a bot to automatically share new posts from the community. Shared with permission.

RSVPs

The RSVPs stream is monitored by RSVPBot, an open source bot (authored by an RC alum) that supports creating and RSVPing to events. It also integrates with our Google Calendar, and it can be used to ping everyone attending an event when the event’s about to start.

An example checkin message

A Recurser uses RSVPBot to set up a new event. Shared with permission.

Victory

This stream is dedicated to sharing our victories, from “my pull request was accepted” to “I finally figured out this bug” to “I’m having a baby!”

An example checkin message

Recursers share personal successes on our Victory stream. Shared with permission.

Opt-in streams

We also have non-default, opt-in streams like politics. Our community is focused on programming and becoming better programmers. But Recursers establish close bonds with each other and have wildly diverse interests beyond programming. Naturally, people want to discuss lots of non-programming things, some of which can be contentious or just distracting to others. To accommodate this without detracting from our primary goal (making a great place to become a better programmer), we have opt-in streams, like politics.

Only a glimpse

This post was challenging to write because I could only highlight a few of the tens of thousands of messages Recursers exchange each month, and which comprise our online community. Furthermore, like all of RC, both the Zulip software and how RC uses Zulip are constantly changing and far from perfect. There are lots of things we’d like to improve or try, from better integrating Zulip with the rest of RC’s internal software to introducing moderators.

We plan to write more about those things, hopefully before another four years pass.

Thank you to the Recursers who gave permission to share their messages. Thank you also to Sasha Laundy (W'13) and Puneeth Chaganti (S'14) who built and maintain our blog aggregator; Carlos Rey (SP2'15) who built RSVPBot; Andrew Drozdov (SP1'15 and S2'16) who started alumni-checkins; Zack Maril (S'13) who started Victory; and Dan Luu (W'13) who started writing review. Thank you also to RC resident Tim Abbott, who leads the Zulip open source project, and to the more than 20 Recursers who have contributed to it. Finally, thank you to the hundreds of Recursers and residents who post regularly on Zulip and make it such great community.
  1. You can read about Zulip’s open sourcing and RC’s involvement here.

  2. RC is free to attend, and people are welcome regardless of if they’re interested in new jobs (in fact, our admissions process explicitly ignores whether people want or can get a job in the US).

    For people who are interested in new programming jobs, either immediately after RC or years later, we offer a range of recruiting services from individual counseling to interview prep to negotiation advice.

Code Words Issue Seven, and some changes

Rachel vincent circle Rachel Vincent

TL;DR: The first three pieces from the seventh issue of Code Words, our quarterly publication about programming, are now online!

You may notice that we’re quite late with this issue, based on our original quarterly schedule. With Issue Four we started publishing Code Words piece by piece, in order to have more scheduling flexibility. Earlier this year we found ourselves in a bit of a schedule crunch, and so we postponed Issue Seven to the next quarter. And here we are in October, finally publishing!

We’ve learned a lot during the process of publishing Code Words. It is produced entirely by Recursers and RC faculty, and while it’s a time-intensive project, it’s also no one’s full-time job. We’d like to keep publishing it, and for future issues we’re going to be making changes to the way we manage it internally. We’ll also be experimenting with a continuous, rather than quarterly, publication schedule.

Until then, check out the articles in Issue Seven below! We’ll be updating this post as more articles are published.

Issue Seven will feature writing from Serena Peruzzo (RC Spring 1, 2015), Miles Blackwood (RC Fall 2, 2015), Kiran Bhattaram (RC Summer 2, 2016), Nathan Epstein (RC Spring 1, 2016), and Darius Bacon (RC Fall 2, 2015 & Fall 2012). In addition to all of the writers, we’d like to thank Barak Chamo (RC Fall 1, 2015), Robert Lord (RC Winter 2014), and Alex Wilson (RC Summer 2013) for all their careful editing and help.

Code Words is written and edited by the Recurse Center community. Like RC itself, we aim to make Code Words accessible and useful to both new and seasoned programmers, and to share the joyful approach to programming and learning that typifies Recursers. Code Words contributors retain the rights to their work, and provide their essays under the terms of the Creative Commons BY-NC-SA 4.0 license.

If you’d like to receive updates about new issues and news about the Recurse Center, sign up for our mailing list.

Pausing RC Research

David albert circle David Albert

We’ve decided to pause work on our research lab. Michael Nielsen, our first research fellow, has finished his one-year fellowship at RC and is moving across the country to continue his work at YC Research.

We’re not hiring another research fellow right now. We’d like to restart RC Research at some point, but we think that the most important next step in building a successful research lab would be to hire multiple researchers at the same time, something we can’t currently afford. We’ve learned a ton in the past year about building a research lab from scratch which we’ll write about once we’ve had more time to reflect.

Working with Michael has been wonderful. We’ll miss having him around RC, but we can’t think of a better place for him to go next than YCR, and we’re excited that he’s going to be continuing the research that he worked on here. Sam Altman and the rest of the folks at YC have been incredibly supportive of RC over the years, including helping us when we decided to start RC Research, and we’re thrilled that they’re going to get to work with Michael.

Five years

Five years ago today, six brave souls entered a small NYU classroom for the start of a so-called “writers’ retreat for programmers.”

The whole thing likely seemed as improbable to them as it did to those of us organizing it: A group of people coming together just to learn and code with each other, full-time, without teachers, grades, or a curriculum.

We’ve grown in many measurable ways since that first batch in 2011: We’ve programmed with over 800 exceptional folks who traveled to RC from more than 40 countries. We’ve helped hundreds of new and experienced programmers find jobs. We’ve launched new experiments including a residents program, a programming journal, a research lab, and free mentorship for new programmers.

But it’s the harder to measure things – seeing people finally see themselves as programmers, accomplish things they could never have done before, and change how they treat themselves and others – that make us really proud.

In general, we prefer to focus on how we can improve RC. Today, however, we’d like to take a look back and thank our community. So, thank you to those first six Recursers and the hundreds since who took a chance on us, and who have made RC what it is today.

Founded in 2011, the Recurse Center is a free, self-directed, educational retreat for people who want to get better at programming, whether they’ve been coding for three decades or three months. The retreat is free for everyone, and offers need-based living-expense grants up to $7,000 to women and people from groups traditionally underrepresented in programming. The retreat is funded exclusively through recruiting partnerships.

Thanks to Perka for funding $10k of diversity grants

Rachel vincent circle Rachel Vincent

We’d like to thank Perka for sponsoring $10,000 in Recurse Center diversity grants, and enabling more wonderful programmers to spend a batch at RC.

Perka has been a Recurse Center hiring partner since 2013, and this is the second round of grants they’ve provided for Recursers.

The Recurse Center remains free for everyone; we offer grants of $500 - $7,000 to folks from groups that are underrepresented in programming to help cover living expenses.Since 2012 we’ve disbursed over $1 million in grants to Recursers, and diversity at the Recurse Center has improved dramatically.

If you’d like to join the best community of programmers in the world, apply to do a batch of RC.

Andreas Fuchs, Sarah Sharp, and Jamey Sharp are Recurse Center residents

Rachel vincent circle Rachel Vincent

We’re excited to announce three more residents for this summer: Andreas Fuchs, Sarah Sharp, and Jamey Sharp will be joining us as residents in June.

If you’d like to work with Andreas, Sarah, or Jamey, there’s still time to apply to the Summer 1 batch of RC (though the batch is currently full, you may join the waitlist if you are admitted). And remember to keep an eye on our blog for more 2016 resident announcements!

Andreas Fuchs Andreas Fuchs works on the infrastructure team at Stripe, building the systems that other developers use to build payment systems for the Internet. Before starting at Stripe, Andreas was a member of various Common Lisp open source projects, worked on an extremely scalable (and weird!) RDF graph database, and for a while even maintained a decades-old Motif-based GUI framework that was derived from code originally written for Symbolics lisp machines. For as long as he has used computers, his goal was to make it as efficient as possible to waste his own time, and so is constantly working on a grand system orchestration or automation idea. In his spare time, you can find Andreas performing terrible wordplay and learning to play the hurdy-gurdy. Andreas will be in residence from 6/6 - 6/9 (Spring 2 and Summer 1 batches).

Sarah Sharp Sarah Sharp is a Linux and open source developer, with an interest in hardware and increasing diversity in tech. Sarah graduated with a B.S. in Computer Engineering from Portland State University, and she has been running Debian-based Linux systems since 2003. Sarah wrote the Linux USB 3.0 host controller driver, and was a Linux kernel maintainer for five years. She has also tinkered with Arduinos, real-time operating systems (RTOSes), and she loves to play around with open hardware. Sarah’s favorite open source tools include Darktable (raw photo editor), KDEnlive (video editor), and Inkscape (vector drawing). She frequently uses (but only tolerates) git, libreoffice, and many different Linux command line tools. Sarah is an expert with C, but has also written code in Python, Java, C++, and shell scripts.

Sarah also loves to make fan videos, write blog posts and tutorials, do amateur photography, garden, and bicycle. Sarah is happy to share knowledge, and would love to give tips on creating tech presentations and promoting yourself in the open source community. Sarah is a co-coordinator for Outreachy, a 3-month paid internship program to connect people traditionally underrepresented in tech with open source mentors. Sarah will be in residence from 6/13 - 6/22 (Spring 2 and Summer 1 batches).

Jamey Sharp Jamey Sharp enjoys learning anything he can about everything from CPU architecture to functional programming, and from real-time embedded systems to web development to control theory and combinatorial search algorithms. But just learning about computer science isn’t as much fun without getting to share it with other people! Jamey has been mentoring people since his undergrad days working on his B.Sc. in Computer Science at Portland State University, which he completed in 2006. Over the past several years he has sponsored over a dozen different six-month software engineering capstone projects, helping students work in code bases including the Linux kernel and the X Window System, as well as quite a few Python projects.

Professionally, Jamey’s career began with web development in Java and Perl during the dot-com boom; proceeded into systems programming in C while creating XCB, a client library for the X Window System network protocol; software product architecture for a computer test for ADHD with components in Java, C, and Python and spanning desktop, web, kernel, and bootloader code; Comic Rocket, a site for helping webcomic readers keep up with their favorites and discover new comics, in Haskell and Python; and most recently, high-assurance software development at Galois, in Haskell, C, and Java. He’s eager to try Mozilla’s new Rust programming language on his upcoming projects. Jamey will be in residence from 6/13 - 6/22 (Spring 2 and Summer 1 batches).

View older blog posts...