0 to Leading a team: 1 year as a Software developer

This is an old article published on my old blog on 16-10-2020. Re-published here without any edits. 

I am a software developer. I have been doing this seriously for a little over a year now. I look back at the journey so far in this article. 

Where it all started

After a few months of internship and a full-time offer at Precept Labs, I re-evaluated my work. The tech stack I was working on, was on a downtrend, We didn't have full visibility of the product, nor did we have a great mentor or a good package. The only option I saw was to quit. I started learning React at that time. Well, I spent time learning so many things but forgot most with no usage. However, that's a discussion for another day. I started applying for jobs where I thought I could fit in. I was not getting a good response initially.

I learned from my mistakes 

I was doing MCA but I graduated in biochemistry. My academics were not impressive for a software developer job. I knew that I was good at CS, good at coding, and good in other aspects as well. But I was not getting a chance to prove that I knew. My resume never made it through the first filter process, I guess. Then one company responded. They asked me to do a project. I had 18 hours to work on a full-stack app with some tech I hadn't heard of till then. I took the challenge. I was selected. But I wasn't happy with the offer. I hosted the app on Heroku and uploaded it on GitHub. I decided to add this project to applications next time. To my surprise, I started getting a good response. I worked on a few more projects, a college mini-project and some open-source contributions helped me stand out.

Joining Radicali 

I was always interested in startups, along with the fact that breaking into top companies is not a joke. I thought I could grow more on the tech side in a small team. I would also get a chance to have a close look at the W's of running a business. My targets were startups with a smaller team but someone with a good tech background to mentor me.

I applied to Radicali purely based on the co-founder Shubhankar and the engineering lead's profiles. I had no idea of any compliance team. Terminologies in the domain were so alien to me. I was not in for the product. It was only by 2nd month things started making sense. 

First day in Office 

I started on time and reached around 9 am IST. Our engineering lead at that time used to work from 7 am IST, so she was there. We had to carry our laptop. I had a couple of calls with the HR/Operation manager, CTO, and CEO, followed by a git lesson by the lead. I had already worked on git so wrapped up pretty quickly. Finally, I was assigned the first task.

We were starting a new project from scratch. There was not even a single line of code. The lead bootstrapped a react app with CRA and pushed it to bitbucket. I pulled it. For the first task, I was supposed to read through material-ui docs and typescript and just render anything on the screen. It was an easy one. Done quickly. In the meantime, the lead was setting up the typescript. Now I was asked to set up the linter. Which I did. Followed by some research on how to implement dark mode. That was day one. 

The things I would go back and correct on day two 

After listing down a couple of approaches to implement dark mode, we went ahead with using CSS vars and switching their values based on the current theme. But material UI was already providing us with a dark mode. I was not a decision-maker nor did I stand for my point. I still feel it sometimes. But now looking back the lead was also very new to the framework and on top of that, the designs were not made following material specs.

I started standing on my own 

I felt superior to our lead in Javascript, React, and overall front-end development. She was smart, had worked with multiple tech stacks, and had experience working with all kinds of people. However, she lacked deep expertise in React and Typescript. I was left in the forest to figure out on my own. I had to stay awake over the night to read and go through docs and books. This came to hurt us later as docs and books only go so far. But it was a plus for me, as this was an opportunity to show my skills. Show what I was capable of. She was still managing the project, but I started owning the tech. 

I started leading it offically 

It was after 5-6 months when our lead decided to quit; the onus was on me to lead the team and take the project forward. I found it tough initially to lead the project. With time, I started improving on communication, deliverables, management, delegation, managing tech debt, etc. On the tech side, I improved the review cycle and introduced ci stages for linting and testing. Held workshops for the front-end team and a few general programming workshops too. Introduced best practices. I onboarded a new developer a few weeks after that, all remotely. And it went well. Slowly, I started taking interviews for internships and front-end roles. 

And it was time to move 

Somewhere around June-July, I felt I wasn't improving as a developer. I felt like I was hitting a wall. There were so many factors to it, team, feature velocity, and product requirement restrictions being the most prominent ones. I gave myself some time before making a decision. I discussed these with the CTO and started inducing small changes but saw no improvements. So, I decided to move. The next place for me was to work on some other tech or to go deep in the current stack. Building for a large audience was also very important along with someone in the team to guide me. It didn't take long to find the place.

What am I proud of 

There are many things. But helping my colleagues grow or grooming them has to be no 1. Followed by my contribution to company culture. I always encouraged people to speak up. Stand up for their points. I see people doing this more than often now, so I am proud. But this is also the result of the conscious effort of our co-founders. I am proud of all the challenges I stood up for. I would consider that I did a good job if nobody remembers me once I leave because they are forced to do so - by code, by lack of knowledge, visibility, etc. Maintenance and ownership are such huge parts of a software project. Time will only tell how I fared in that phase

There are a few things that I would have done differently, given another chance. But I will discuss them in a different article. Until then, take care. Goodbye.