2021 Rewind: A Lawyer Becoming a Software Developer

December 31, 2021

As 2021 comes to an end, it is a good time for reflection. I began this year as a bankruptcy lawyer; I am ending the year, convinced that I want to be a back-end software developer. Here’s a short story of how this dramatic shift came to being.

Act I: The Decision

March, 2021: I’ve worked as a lawyer for three years. In the last 2.5 years, I have worked with one of India’s leading legal think tanks. As a research fellow, I have the unique and exciting opportunity to research on modernizing India’s brankruptcy legal framework. I had co-authored a report in 2020, making a proposal to introduce a hybrid corporate insolvency mechanism in India. This year, this proposal is taken up by the Government of India, which legislates an important amendment, to introduce this hybrid framework for corporate debtors. The Insolvency Law Committee, which officially recommends this framework, acknowledges every member of our team, for our inputs to the Committee.

Doing original research, quoting international best practices, advising the Government on polciy reforms. This is my day job; and I love every bit of it. But working on so many fronts simultaneously also means that there is little time on my hand, to pursue anything else. I have always wanted to write my own novel, build something on my own, collaborate with people to solve real world problems, participate in public demonstrations related to causes that deeply affect me. I cannot find time to do any of this. Also—as my parents would complain everytime I would visit home—I often fail to take care good care of my health.

June-July 2021: Now that the amendment bill is legislated, there is some time on my hand, to reflect on things. I realise that I would love to take some time out to try out new things. After speaking with my superior, I decide to take a sabbatical, and do things I wouldn’t have the time to do otherwise.

My elder brother is a software engineer; so, he nudges me to try programming as a hobby, during this spare time. I spend much of my free time, completing simple exercises on FreeCodeCamp. I get hooked to these exercises. I feel a certain ‘runner’s high’ writing a few lines of code to solve the problems prompted by FreeCodeCamp.

Act II: The Deep Dive

July-August, 2021: Gradually as I spend more time with JavaScript, I realise how much I enjoy what I am doing! I barely leave myself with any time work on my novel! Coding is addictive!

I find myself doing several things in a short span of time. Uninstalling Windows and to install Linux. Using Linux’s terminal to navigate its file-system. Buying a custom domain, using Google Domains. Building my personal website, using Jekyll static site generator. Completing FreeCodeCamp’s JavaScript course. Learning the fundamentals of data-structures and algorithm.

While learning everything on my own, I realise I do not have any peer to discuss them with. So, I decide to follow the Feynman technique of learning new concepts by writing about them, in my own words. The initial posts turn out to be verbose, long-winding and informal. It doesn’t matter: it is just an attempt to teach myself new topics, by having a conversation with myself.

Sometime during mid-August, I decide to start my first project: Crisp, a tiny Lisp interpreter. I encounter many firsts. Learning to write code in different modules. Understanding how npm packages work. Using stack to evaluate lisp expressions. But the biggest win? The sheer joy of building something on your own!

September-October, 2021: Sometime between finishing Crisp and starting my next one, I watch this video on Youtube. It mentions the Recurse Center. I learn that the Recurse Center is a “self-directed, community-driven educational retreat for programmers based in New York”. I realise that being a part of the Recurse Center would be the perfect boost to my learning journey. It promotes self-learning, while also providing a cohort of peers to collaborate and network with. I decide that I would apply for the Winter batch of the Recurse Center.

In the mean time, I decide to work on my second project. This time it will be a Twitter Bot. Inspired from the Planet Clojure, it will tweet new blog posts published by a given set of blogs. I learn to work with several new technologies: using a relational database to maintain the state of the application, accessing a third-party application’s API, parsing XML feeds, deploying on Heroku.

Also, during this period, I write the following posts:

Act III: Going for the Kill

November, 2021: I decide to spend the first week of November (the Diwali week), building Twirl, a URL shortening app. I spend 8-10 hours each day, to complete the project in seven days. It is a lot of fun and adrenaline. While building this project, I learn how to draw up user sign-up & sign-in flow. I use cookies to maintain sessions. I learn how to securely store passwords and much more! I maintain a daily log of my progress.

Also, I decide that it is time to apply for the Recurse Center. I spend some time answering the four main questions they have on their application form:

During this month, I publish the following posts:

December, 2021: I begin this month, with a mail from the Recurse Center: they liked my written application and would like to have a conversational interview with me.

This is the first of two rounds of interviews. During this interview, the interviewer, a former Recurser, asks me a few questions. She asks me about a project I would like to work on during my time at the Recurse Center and why I wanted to join the RC. She also asks me about a bug I recently fixed. The interview goes really well; the interviewer is extremely polite and patient during our conversation.

I wake the next morning, to find that I am selected for the next and final interview. This time, it will be a pairing interview. I submitted a simple code from one of the tasks suggested on their website(GitHub Gist). I pair with another RC alum and we have a lot of fun, as I try to explain my code and build on top of it. 30 minutes go by in no time and I wish we didn’t have to stop so soon.

Three days later, I learn that I am in! My batch will start on the 3rd of January. I am elated, excited and pleasantly surprised!

Apart from spending my time preparing for the RC interviews, I spend my time learning how OAuth works and build a toy project that uses Google’s OAuth 2.0 framework to log-in users. I also deploy this toy project on Google Compute Engine.

Here’s the list of posts I publish this month:

Looking Back

I am glad 2021 happened. It gave me an opportunity to explore new avenues, try out new skills and the courage to stick on! I hope 2022 offers even more such opportunities!

Here’s a Twitter thread on some of my favourite posts published this year: