My IT Story
I'm a computer programmer (I prefer the word "programmer" over "developer" or "coder") who was formerly a lawyer. When people hear this about me, most of them are astonished about the career change. Well, it is surprising how a lawyer would move into a career in IT.
However, it is not unheard of. I have read about and interacted with people who have done the same (the interaction was only with one person over Twitter). I am sure that there are a lot many examples in the US given the culture and the professional opportunities that people have there to do the same. And I am sure that there are examples of former lawyers in India who moved to IT that are unheard of (the interaction I had was with one such person). And of course, there are other examples in other parts of the world (i know of one such person).
Anyway, I switched to a career in IT after being a professional in the legal field for almost 6-7 years. Two of those years were spent in a for-profit entity that served the legal sector by providing executive training and online coaching, and one year was spent with a legal non-profit. During the rest, I was a litigator (that's a special breed of an alligator that only eats legal briefs).
I was introduced to computers (and computing) at the age of 7 years, in my school where I was taught the Logo programming language. Then, till I reached the 8th standard (or 8th grade; if you have no standard), I was taught different applications such as, among others, MS Office tools, MS Paint, and MS Windows (MS Dhoni came in later...really lol). These were usual computer science subjects taught in schools that were affiliated with the most twisted school education board ever formed; the CISCE.
In those days, most people did not own a PC. Students like me had to use the school's computer lab to use a computer. The lab was a special place in my school because it was the only room in the whole school (apart from the IT desk within my school's office) which had air conditioning. Even the school principal's room did not have A/C. How cool's that?
So, getting into a computer lab and just playing with the computer (including playing actual games) or using it was special for me (and most of my other classmates). Sadly, we had to take turns as the computer-to-student ratio wasn't that big. So, for each class three or four students had to share a single computer. Or else, pay and use a system during intervals (~recess).
Then, in the 8th standard, I was taught C++. Yeah, you read that right. We were taught C++ at the age of 13 by teachers who never told us the use cases of C++. Of course, easier languages like Python or Ruby weren't part of most school syllabi at that time (I told you CISCE was twisted). Anyway, we learnt some basic algorithms (mostly by rote), did some practical lab sessions, and wrote programming solutions by hand on paper for exams.
Then, in the 10th standard, I was taught Java. Yeah, you read that right too. We were taught Java along with the BlueJ IDE. I hate Java.
Honestly, for these 3 years (8th, 9th, and 10th standards) I did not gain much computer programming knowledge except for some concepts like programming syntax constraints, input and output, and the fact that you can make programs. During this time, I increased my learning in/learnt MS PowerPoint, Macromedia Flash (before it was killed by Adobe), Fruity Loops, and some tools here and there.
In the meantime, I also learned how to install cracked games and software, do P2P sharing, and chat online with strangers; you know all the stuff that the Internet is used for by millions. However, I did not venture into stuff like programming and hacking; which is how a lot of great programmers spent their childhood.
Then, when I graduated from the 10th Standard, I made a stupid decision. I decided to become a medical doctor (don't ask). So, I chose a completely different stream (a Biology major stream; which did not have CS). So, for the last 3 years in high school, I did not formally learn computer science. However, I kept on playing with stuff. I even joined the school computer club; got introduced to Linux and open software. However, I still did not do much programming except for some kindergarten-level batch scripting (not bash). During this time, I also became interested in music and was the drummer in a college band (while I still was in school). So, a lot of my attention went there.
When I graduated from high school (or higher secondary school), I decided (no, this wasn't a stupid decision) to do law and joined a law college and studied law for 5 years (in India (and maybe some other countries), it only takes 5 years to get a law degree if you are doing it directly after high school). During this time I did not learn or do anything that had to do with computer science or programming; though I did become proficient in MS Word.
It was in 2013 when I graduated from law college and started my first job, I started looking into computing stuff again. I joined a legal academic services firm (a fancy description we invented ourselves I think) which was powered by a learning platform created in WordPress. And this firm also had a sister concern which was a PR consultancy which did some web development along with branding and graphic design. This firm shared office space with the one I was working with.
Yes, this was when my interest in computing was rekindled.
Two of my close friends from school (who were also members of the school computer club) started working with these firms in different roles (one developed while the other designed). They inspired me on the side.
At this firm, I was surrounded by people doing IT work. So, I was constantly exposed (since it was a small team) to HTML, CSS, WordPress, designing, and branding. Once, I even was part of a hands-on branding exercise as part of the team.
However, the real moment of inspiration came when a software development intern (who's now working at Apple) showed me a neat little script (written in Python) that scraped data from LinkedIn. I was blown away! I wanted to acquire that skill. I had always wanted to learn Python but never thought of doing such a thing with Python (or any programming language for that matter).
So, I started learning Python using one of the best-known learning resources for Python: Learn Python the Hard Way by Zed A. Shaw (who is a friend and mentor now (I don't know whether he knows he's mentoring me)). So, I started learning Python and creating small scripts with it. Still, I had no intention to switch to a career in IT.
Then, in 2015, I went to the US to pursue a Master's degree in law at the University of Illinois at Urbana-Champaign ("UIUC").
Every youngster who gets into IT has, at least once, thought of cyber security as a career option. Either to get into penetration testing (aka "white hat hacking"), or do actual cyber security defence. Or to do some "black hat hacking" anonymously. However, there's a lesser-known field of cyber security called "digital forensics".
I got an opportunity to study that as part of my Master's in Law curriculum (yeah, UIUC offered that during 2015-2016 which was a joint program between the College of Law and the Computer Science school) and it was another huge turning point in my tech journey. Initially, they doubted whether I would understand anything about the course as they could not see any formal education in computer science in my résumé.
So, I sent them a novice-level Python script that I had written to calculate a person's BMI if weight and height were passed on as inputs (I don't even think I passed them in as command-line arguments). They were satisfied with that and let me into the course.
A lot of people have reported - and by "a lot of people," I mean my parents, and some relatives, that they are asking themselves (and my wife Alfia) why I became a "web designer" after doing a Master's program in law in the US? They were expecting me to turn out to be a legal stalwart making millions a year after a "foreign" LLM".
Here's my answer to that.
I became a "web developer" (I design too) BECAUSE I went to the US to do the LLM program. If I had not, I most probably never would have! Nah, I am sure I would have. At least, my time in the US, actually accelerated my interest in computing. That's what the US can do to you. It teaches you that sense of liberty that you'll never understand if you are in a country like India. I have once heard of a story of a doctor who switched his career to become a rocket scientist (or it was the other way around).
It was during the LLM program (the Digital Forensics class) that was I introduced to (practically) the addictive world of Linux. I had to learn how to use a Linux OS ("distro" in the Linux ecosystem) and tools based on the command line. I was working primarily on Ubuntu and later switched to Kali Linux. I also learnt how the Internet in itself is the biggest learning place in the world and one can learn almost anything there.
And to top that, I was taking the DF classes inside one of the best Computer Science/Engineering colleges in the world and the classes were taken together with undergraduate CS students. I attended my first hackathon (no, I wasn't a participant) while I was there. I was surrounded by the "hacker culture". Still, I did not intend to switch to a career in IT (though by then, I had been considering pursuing a degree in Computer Science).
However, when I came back to India, I started practising law.
I want to take a pause here.
Do I regret not having learnt computing and computer programming early on? Maybe yes. But do I regret having learnt the Law? No, not at all.
Learning, and eventually, practising law, taught me to think better. I will never say that it was a waste of time or a bad decision to do law. If I had not practised law (and that too fighting cases against the State), I would have become just like some of the IIT and "Software Engineer" buffoons who have no clue about the evil that is done by the State and businesses in the society. I thank God that I practised law, though it was for a short period.
So, after I came back, I resumed programming in Python along with playing with Linux. It was during this time I programmed my first "useful program" (aka application; or "app") which I named "KATscrape" in Python. It was a script that searched through a cause list (a list of cases posted in a court on a specific day) and counted the number of matters an advocate had on that day. It was made specifically for the tribunal (Kerala Administrative Tribunal; "KAT") I was appearing regularly during that time.
This was another turning point. The fact that I could do this encouraged me to learn more. I even did some refactoring of the code that I wrote initially to make it more simple. This was a great learning opportunity. It was also during this time I learnt touch typing. This accelerated my typing skills and helped me learn things slightly faster.
Fast-forward two-three years: I got married to Alfia, and we moved to New Delhi. I started working with a public policy organisation centred around software freedom, privacy, freedom of speech, and open access. There, I got a FOSS enthusiast colleague (an active Debian contributor) who taught me more about Linux (who is now a good friend and still my teacher in Linux) and I learnt a lot more about programming (and CS things in general); rewrote KATscrape in PHP (during the pandemic). During this time, I also learnt how to manage VPS instances and host and deploy my apps and explored other programming languages.
After the national lockdown in India was over, Alfia and I moved back to Kerala, and I resumed law practice. Alfia gave birth to our son Ezra in February 2021.
By that time, I wanted to break into IT. I was spending more time learning to compute than law. And working on something related to computing was more engaging for me during those days.
In April 2021, a friend of mine (who was a programmer earlier but moved to law; you can read his story when he writes it) suggested that I look for opportunities and also apply to his former organisation (which is now where I work). He put in a word for me to the CEO, and I sent an honest cover letter along with my resume giving a background of myself and what I am interested in.
They were looking for a pure JS guy experienced in the MERN stack. However, given the fact that I could also be of assistance in some legal matters, they decided to take me on after a few rounds of interviews on programming in JS, CSS, React, SQL etc.
Here, I have to thank my colleague who interviewed me then. I thank him for trusting in my computing skills though I couldn't express them exceedingly well during the second and final interview rounds. He understood that I did know some things and he got (I don't know from where) the confidence that I could learn things by myself if I was taken in. He's the one who assured the upper management that I can learn and implement the things they wanted.
It's from there did my actual real-world programming work started. Firstly, I had to learn JS. For that, I was assigned to develop a proof-of-concept login system in pure HTML, CSS, and JS. And then I re-developed the same thing partially in React and TailwindCSS. Then it was all random tasks from there on; making a Slack app in Bolt (JS), making another proof of concept in Next.js, doing some Postgres database management, deploying stuff on Linux servers and configuring applications for the use of the organisation and on-boarding other team members into them.
Now, we are stepping into an existing mid-to-large-sized project to add some more features and I am working on front-end web development. Looking forward to some hardcore development in the coming days.
There you go. This is my story. And I look on...to go further in the journey.