Enjoy programming? Check out Code Words, a publication from the Recurse Center community.

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

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.

Rachel vincent 150
Tweet

Pausing RC Research

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.

David albert 150
Tweet

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

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.

Rachel vincent 150
Tweet

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

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).

Rachel vincent 150
Tweet

Steve Klabnik, Paul Fenwick, and Frank Wang are Recurse Center residents

We’re excited to announce that Steve Klabnik and Paul Fenwick will be joining us as Recurse Center residents later this year, and that Frank Wang will be rejoining us as a second-time resident! Read more about them below.

If you’d like to work with any of these folks, apply to do a batch of RC during their residency. Keep an eye on our blog for more 2016 resident announcements!

Steve Klabnik Steve Klabnik is a software developer, working for Mozilla as a core team member of the Rust programming language. A long-time writer, Steve authored the official book on Rust, “The Rust Programming Language”, as well as several others: “Rails 4 in Action”, “Designing Hypermedia APIs”, and “Rust for Rubyists”. Before working on Rust, Steve was heavily involved in the Ruby and Rails communities, and used to teach Rails professionally. Steve will be in residence from 6/20 - 6/23 (Spring 2 and Summer 1 batches).

Paul Fenwick Paul “@pjf” Fenwick is an internationally acclaimed public speaker, developer, and science educator. Paul is well known for presenting on a diverse range of topics including privacy, neuroscience and neuroethics, Klingon programming, open source, depression and mental health, advancements in science, diversity, autonomous agents, and minesweeper automation. Paul was awarded the 2013 O'Reilly Open Source award, and the 2010 White Camel award, both for outstanding contributions to the open source community. As a Freedom Loving Scientist, Paul’s goal is to learn everything he can, do amazing things with that knowledge, and give them away for free. Paul will be in residence from 7/11 - 7/20 Summer 1 and 2 batches).

Frank Wang Frank Wang is a PhD student at MIT focusing on building secure systems. He did his undergraduate at Stanford, focusing on applied cryptography. He runs the MIT security seminar where top academics come and talk about their most recent research. He is also a member of Roughdraft Ventures, which provides small amounts of capital to early stage student startups. He is currently running a summer program for early stage security companies called Cybersecurity Factory. He has interned at the security teams at Google and Facebook as well as consulted for security companies like Qualys. When he is not busy worrying about your security, he enjoys going to art museums and being outdoors. Frank will be in residence from 5/23 - 6/2 (Spring 2 and Summer 1 batches).

Rachel vincent 150
Tweet

Welcome Lisa and James (and Ginger)!

We’re excited to welcome Lisa Neigut, James Porter, and Ginger Neigut to the RC team!

Lisa and James are joining us as facilitators. They’re both also RC alums: Lisa attended the Summer 2012 batch, and James attended the Summer 2013 batch.

Lisa Neigut
Lisa
James Porter
James
Ginger Elizabeth
Ginger

Lisa was a founding member of the Etsy Android team, where she helped launch 2 apps and a mobile payments reader. Most notably, one of her hack week projects bumped Etsy stock by 30% in a day. After Etsy, Lisa spent 14 months as the Android Engineer at Electric Objects, helping build a home for digital art.

James has worked in the past on everything from fruit fly genetics to online payment systems to storage infrastructure for bioinformatics. He was in the Summer 2013 batch, and outside of computing enjoys cycling and tabletop games of all sorts (he’s already taught a large contingent of Recursers how to play Netrunner!).

Last but not least, Ginger is joining us as Chief Cuddle Officer, and one-on-one advisor. She is our first canine hire, and we look forward to the new perspective she’ll bring to RC.


Last year we made some changes to the way facilitators work at RC. Rather than hire folks to be facilitators for indefinite periods of time, we now hire facilitators for six months. The main reason we decided to do this was that we got feedback from former facilitators that they felt burnt out after a year or so of doing facilitation work. Facilitation involves daily one-on-one pairing sessions, giving workshops, attending events, and being generally available to Recursers who have questions. Though it involves a lot of programming, it can also be socially demanding.

We call these folks fluid facilitators. Six months seems a good amount of time for people to ramp up and be effective facilitators without burning out.

Allie Jones
Allie
John J. Workman
John

Last August we hired John J. Workman (RC 2011) and Allie Jones (RC Winter 2013) as our first fluid facilitators. While their six months of facilitation are over, we wanted to keep working with them, so we hired them as programmers. Allie will be working on jobs and recruiting software, and John will be working on software to help grow our community.

We’re so excited to have Allie, James, John, Lisa, and Ginger on the RC team!

Rachel vincent 150
Tweet

A new essay from RC Research Fellow Michael Nielsen

RC Research Fellow Michael Nielsen recently published an essay called Toward an exploratory medium for mathematics. The essay is about about developing user interfaces and data models that allow for semi-concrete reasoning – getting the computational and constraint-solving benefits of a computer without losing the flexibility of paper and pencil.

Michael writes:

In discussions of systems of reasoning it is sometimes assumed that the informal, intuitive systems used by humans are things to be “fixed up”, turned into so-called proper, rigorous reasoning. If the purpose of reasoning were merely verifying correctness, then that would be a reasonable point of view. But if the purpose of reasoning is exploration and discovery, then it is wrong. Exploration and discovery require a logic that is different to, and at least as valuable as, conventionally “correct” reasoning…

Alan Kay has asked “what is the carrying capacity for ideas of the computer?” We may also ask the closely related question: “what is the carrying capacity for discovery of the computer?” In this essay we’ve made progress on that question using a simple strategy: develop a prototype medium to represent mathematics in a new way, and carefully investigate what we can learn when we use the prototype to attack a serious mathematical problem…

A powerful medium reifies the deepest ideas we have about a subject: it becomes an active carrier for those ideas. And to the extent it is successful in reifying those ideas, mastering the medium becomes the same as mastering the subject. In this view, designing exploratory media is about designing tools which can transform and extend our ability to think, create, and discover.

You can read the full essay on Michael’s website and learn more about RC Research on our blog.

David albert 150
Tweet

Code Words Issue Six

The first piece from the sixth issue of Code Words, our quarterly publication about programming, is now online!

As with our fourth and fifth issues, we’re publishing Issue Six piece-by-piece. You can read more about the reasons why in our Issue Four announcement blog post from October. We’ll be publishing the rest of the pieces from the issue throughout the month of March, so make sure to check back regularly!

The first piece is an exploration of the sometimes frightening realities of applying functional programming principles in JavaScript by Sal Becker.

Update on March 10th, 2016: the second piece from Issue Six, Image Processing 101 by Sher Minn Chong, is now live! The remaining five pieces will be published over the next three weeks.

Update on March 16th, 2016: the third piece from Issue Six, Telling stories with data using the grammar of graphics by Liz Sander, is now live! The remaining four pieces will be published over the next two weeks.

Update on March 29th, 2016: the fourth piece from Issue Six, Immutability is not enough by Patrick Dubroy, is now live!

Update on March 31st, 2016: the fifth piece from Issue Six, Promoting reliability in web software companies by Nat Welch, is now live! We unfortunately weren’t able to finish two of the seven articles submitted to Issue Six in time for publication — look out for them in future issues of Code Words!

With seven articles, Issue Six will be the biggest issue of Code Words yet, featuring writing from Sal Becker (RC Fall 2, 2015), Miles Blackwood (RC Fall 2, 2015), Sher Minn Chong (RC Fall 1, 2015), Patrick Dubroy (RC resident), Liz Sander (RC Summer 2, 2015) , Anjana Vakil (RC Fall 2, 2015), and Nat Welch (RC Spring 2, 2015). In addition to all of the writers, we’d like to thank Barak Chamo (RC Fall 1, 2015), Timnit Gebru (RC Summer 2012), Robert Lord (RC Winter 2014), Alan O'Donnell (facilitator emeritus and RC Summer 2011), Oskar Thorén (RC Fall 2012), 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.

Rachel vincent 150
Tweet
View older blog posts