Recurse

I am happy to announce that I got accepted into The Recurse Center for the Fall 1 ‘20 batch. It’s quite a life event because attending RC was one of my dreams for about a year and a half now.

Trying to share a few things about my journey.

What is RC?

For those who haven’t heard of it yet:

The Recurse Center is a self-directed, community-driven educational retreat for programmers based in New York City and currently operating online.

Retreats happen in batches and the batches run for varying length: Full (12 weeks), Half (6 weeks) and Mini (1 week). It is self-directed, so we pick what to learn during that time. We will be working along-side a diverse group of people, so there is much to learn from them.

I won’t steal the fun of knowing about RC for the first time from you! haha, When I heard of RC for the first time - I spent like an hour reading all their contents at https://www.recurse.com - so go ahead and enjoy the link!

Why is it a dream?

I mentioned earlier that it has been a dream of mine to attend the RC. Why so?

RC has a nice application/interview process (you should apply if you are in doubt). Even though I cleared the interviews, there were still uncertainties lurking in, and the odds of me getting a chance to attend it was very low. I will tell you why!

The first one is financial situations: Had been a software engineer for the past 5 years and always committed to going to work! With the current pandemic situation, I lost my job 2 months back and got moratorium for EMIs of loan repayment. So the stress about “have to go to work to pay loans” is not there for months. Which means I can do whatever I like to do right now! Just have to make sure that I figure out a way to make money before I spend all the money I have.

Apart from that, I have very little chances of affording travel + accommodation in the USA. Flight tickets, cost of living there for 12 weeks. Probably I would have to get a loan or sponsorship to be able to afford it or at least have to save up for year(s) to be able to do it! (Just see the conversion rate of INR to USD). Now that the batches are online, it is totally affordable!

The next uncertainty is a travel visa - I don’t know much about it, because I haven’t traveled much! (know what I have never visited North India itself, haha). In one of my previous jobs, most of my team people flew from Bangalore to Delhi for getting a travel visa to a place for attending the annual meetup of the company, guess what - not a single person got the visa (except the ones who had already visited some countries). I remember reading that Daniel (the creator of curl) has a live timer counting the time since he applied for a visa; if you are wondering, the timer is still running. Since we have people already attend RC from India before, so it is not a complete impossibility but I guess it could still be a roadblock. Now that RC is running online, the visa I need is here - my internet connection, haha.

Clearing the interview and overcoming all these uncertainties should happen in an aligned timeline. (not trying to scare you off from applying, but these are just some things that I thought might be a problem for me personally. Despite that, I was hoping to attend RC somehow even when they were running only physical batches. Hope is a beautiful thing - have it!)

So that makes it seem like attending RC is almost a dream for me and as my friend said over a Whatsapp text

Dreams do come true

First attempt

My first attempt to apply to RC dates back to the end of 2018. I got so excited to apply for it that I started writing a lisp parse ( https://github.com/scriptnull/yali ) inspired by a task in their pair programming tasks. I had started filling the written application for RC a couple of times and I would stop right after “Code CracklePop”. When I want to get back to it, life happened - like one of my employers getting acquired by another company and there is no way to take a sabbatical right after it.

Inspiration

I should say that two people inspired me a lot to attend the Recurse Center.

  • Julia Evans : I often end up reading her amazing blog posts and it kind of fostered me to blog more.
  • Andrew Kelley : Reason is these three little letters “Zig”. It was super interesting to see his presentation in RC’s localhost

Both of them are alums of RC who have done cool stuff! Apart from that, there is a lot of cool stuff that people (who have attended and are attending) seem to do. I follow those updates usually on twitter and Joy of Computing.

How I applied now?

hmm, well after losing my job I was taking that long-needed break and preparing for my next adventure. I was learning and learning most of the time - with the fear of not passing interviews, etc. These are uncertain times and it has been a little rough. I was slowly starting to get out of the fear zone and become productive.

The thing with me is I don’t usually apply for a lot of jobs. I apply selectively to the jobs that I really like to have because even if it is a rejection it has to mean something and I don’t want to waste the time of the people who are giving an interview chance to me! In these two months, I just applied and attended only one interview. Earlier I blogged about the interview and the feedback I got out of it. I was gradually making my steps to get better by acting on the feedback.

At the same time, I was trying to explore the latest trends that I haven’t been able to catch up like paying a little visit to the frontend ecosystem - React & Redux. During one such day, Nabarun (we used to work together) messaged me on twitter asking what I am up to these days. I said that I was mostly learning and experimenting with things to figure out if I should be trying out for backend or full-stack roles. Then he said,

It is nice to experiment and identify what one really likes. If you want to experiment more for some time, try Recurse Center. They are doing all cohorts online this year.

It was good to hear it! I was actually thinking of applying to Recurse Center in these 2 months and as usual, wrote CracklePop one more time and never made it to the end, haha. I went on to think about what he told over the next few days and worked on the pair programming task (Database server) over a weekend. Then there I was writing my application for one full Sunday. The next day, I reviewed and submitted my application.

The interviews

The entire process took up to 2 weeks. The interviewers were super helpful in having a good conversation. The conversational interview was more of a technical chat with a friend. I watched a few TED talks earlier that day to kind of get me into the zone. Because the last time I had a technical interview before that interview, I completely panicked in the middle. So I wanted to improve myself by just talking with new people without any fear or stress. Those videos did help me and I recommend them if you are trying to overcome interview fears.

For the pair programming interview, I have never pair programmed in a formal setup. It seems like there shouldn’t be a formal setup after all, haha. In my previous workplaces, I have paired with engineers, in a way that we don’t even know that we were pairing - just two people sitting together and discussing and coding a part of microservice. So, with less formal knowledge on pair programming, I decided to just understand what it is about. So the first preparation I did was just reading through this article on pair programming. During the pair programming interview, the interviewer followed me through the coding and gave helpful feedback at the right spots.

Overall, the interview experience is smooth and I encourage anyone wanting to apply for it to give it a go!

Work

Now that I am attending the RC, you might ask what am I planning to do there? So, I will try to answer that here.

Get better with distributed systems and databases in general. Trying to read up the internals of databases and build a distributed key-value store from scratch. I would like to read research papers, books, and source code. Write blogs to solidify my understanding and write code to improve my coding skills. Example: What is the difference between a B+ tree and an LSM tree? How does Postgres do row-level locking? What are the different protocols used by different datastores for communication between server and client?

I am building the project in the hope that it might become production-ready someday! There are already a lot of innovations going on in this space and it would be great if we end up building something in the sweet spot!

Apart from that, I plan on just having more conversations with people in the RC community. Being a non-native speaker of English, it would greatly help me in just getting my thought and speech up to speed. Also, it is fun getting to know people.

Next one: prepare for my interviews. This involves data-structure and algorithm stuff + system design.

Start

I hope this post gave you an idea about my journey to the Recurse Center. You can follow up on the rest of my journey here in this blog and on my twitter. If you are thinking to attend it, I encourage you to apply!

By the way, my batch starts tomorrow. (yay! excited!)

Looking forward to recursing!