Moved to a new blog

I have moved to a new blog and it’s at

The new blog is same as this one, that means I have been too lazy to create one of my own. Hence decided to go the quickest and easiest way – that is create a wordpress blog. Will not be updating this blog anymore. If you are interested in what I am doing, please visit my new blog.


Week 1 at the Recurse Center

Here’s my lazy summary of the week that flew by at RC(I am going to refer to Recurse Center as RC from now on).

Day 1: Introductions and overwhelmingly more introductions. Hi’s and Hello’s to the people in my batch or from the previous batch, trying to remember the names. The speed-friend-dating was fun where a script generated random pairs of names and the owners of those names in a pair are supposed to talk to each other for five minutes. Good exercise to talk to new people in a short span of time and find out about the interesting stuffs they are planning to do.

Day 2: I get used to my new life in New York. I meet Dan Luu. Well, hang on… is it the day 1 or day 2?! Hm. Never mind that. He is working on BitFunnel – which is an “experiment in text search/retrieval”. It’s in C++ and they are using C++17. And I sign up delightfully. Although this was not in my plan to write C++ during RC, but it sounds a nice project with the scope of getting good knowledge about C++17 and the text search algorithms. I was working in C++03 in India.

Day 3: Go to the Haskell group meeting. Install stack and GHC using brew. Start reading the book Learn You a Haskell for Great Good. After lunch, fix some minor build errors (that was coming only with g++, not with VC++ or clang++) in BitFunnel. Dan tells me a little about the code in BitFunnel to get me started in one of the pieces. We pair for some time to integrate a component from the old BitFunnel code. Go to a Web Development 101 workshop later.

Day 4: Went to the Dropin Warmups where Rose writes down two problems which are supposed to be solved within 30 minutes. Started working on a problem of PlusOne. Here’s the problem –
“Write a function plusone which takes a string as an input and increment all the integers in it by 1”. Here are some examples –
1. ab45 => ab46
2. 1 + 14 = 15 => 2 + 15 = 16
3. “The value of pi is 3.42” => “The value of pi is 4.42”
4. “Call me at 235-813-2134” => “Call me at 236-812-2133”

In the second half, Dan talks to me about the interesting problems they are trying to solve at BitFunnel to give me an idea about the project.

Day 5: I was struggling with Mac a little as my development experience has been on Unix only. I was not comfortable with the default terminal in Mac OS. Dan told me about iTerm2. I install iTerm2 and immediately love using it. Specially the Unix-y copy-paste is a big plus since I always forget doing a Command-C to copy a text on Mac OS.

He also told me about tmux. I install that as well and guess what! I love it too! tmux is a windows manager. I had known about Screen but never paid much attention to it due to my own laziness. Spend most of the day installing these and configuring these tools and learning the key shortcuts to use these tools. The next goal is to install Spacemacs and get better at using emacs.

Then I spend a little time on continuing learning Haskell. Write a few basic programs like factorial to get started. Start with the first challenge on Exercism.

Goal for next week
1. Continue on to my second week on learning Haskell
2. Complete the integration of the component in BitFunnel
3. Write blog entry more frequently than once a week.
4. Find out what to work on for my own project at RC. A few interesting things came up this week. Let’s see what do I pick.

A New Life as a Recurser

First a few updates. I left my job as a software developer at Mentor Graphics in India. I have moved to the USA. And I have been accepted to attend the Fall 1 batch at Recurse Center. I am going to spend my next three months here. It’s an educational retreat for people who want to get better at programming.

I have been working on building various verification products for the Semiconductor industry using C/C++ on Linux. I wanted to learn some new stuff which include –

1. Functional programming
2. Distributed computing
3. Machine learning
4. Database and scalable systems

Three months are not enough to be an expert in all four of the above. And I haven’t yet decided what I am going to build during my time at the Recurse Center. For now, I plan to learn a functional programming language and build a system/library with it.