How? How exactly does one start a damn Blog?!??? Maybe I should introduce myself. Maybe I can jump in straight away and talk about... No, the introduction sounds better! CLEARLY, I AIN'T A PRO AT WRITING BLOGS š, but I do write code though š. I have a story to share, one I believe many of you will be able to resonate with!
Here's me Aakansha Doshi, venturing yet again into something new. Blogging. This is my first blog. And why exactly am I writing this? Ummm... At work, I have gotten the opportunity to interview and mentor people, and looking back I could relate to many of them. I could relate to what they were feeling, the anxiety, the excitement, and the curiosity about the unknown.
I want to be able to share my journey today so that someone, somewhere, reading this can relate to it, and feel "It's okay, I am doing fine". It's great to be able to walk down memory lane and give myself a pat on the back. Sometimes we need to give ourselves credit. It's good to be reminded of the path, of the journey, completed, and of the long road, that still lies ahead!
I was never sure of what I wanted to do. I was confused among various subjects likeĀ Computer,Ā Mathematics, andĀ ChemistryĀ during my school days.Ā EngineeringĀ was never in my mind but my friends pushed me to give the entrance exams. So, I went for it.
It takes years to prepare and get a decent rank to get into good engineering colleges. Since I had been given only 2 months for the preparation I had no hopes. Nevertheless, I wanted to do something with Computers so I decided on BCA, but things turned out differently. As per my rank in the entrance exams, I managed to get into one of the private engineering colleges.
I hardly knew anything about web development in my college days! To be honest, I was one of those 'studious' students whose only goal was to score a good CGPA thereby securing a job at a decent software company. There were very few MNCs likeĀ TCS,Ā Infosys,Ā and IBMĀ which use to visit our college on campus.
Fortunately, I got placed atĀ TCS, but I always wanted to join a startup so I can get more exposure. Hence I started browsing about the prerequisites required to be able to get into a good startup. And, the first thing wasĀ A good understanding of Data Structures And Algorithms. I knew the theory as I had studied that as part of the college syllabus but wasn't sure about how to implement it. So I started browsing how to improve my DS/Algo skills and came across a few platforms where I started practicing 24*7 on each DS/Algo topic during my 4th year. A few of those platforms are listed šš»
Participating in contests and code sprints became an addiction for me. As a result, my college grades started deteriorating but I WAS ENJOYING CODING š.
One day after participating inĀ
Fortunately, I cleared my first round where I was asked to solve a challenge with one of the graph search algorithms. The next round with Hari didn't go very well as I didn't have any experience/projects to show as a developer but luckily, there was a requirement for aĀ Challenge CuratorĀ and that sounded interesting to me so I decided to move ahead.
The role of aĀ challenge Curator
Ā is to createĀ challengesĀ based on differentĀ DS/Algo/frameworks
, etc topics that could be used in contests and hiring as well. Few interviews went well, few didn't and I was aware that I had so much to learn and improve in lots of areas.
Finally, I got the offer! Since I was not technically very strong for the role, I was put on probation forĀ 6 months
, and if everything was to go well I would be then hired as a full-time.
You might be wondering even though not being technically very strong for the role, why was I offered probation? The interviewers noticed my persistent efforts and were quite impressed!
And woopie I got the offer. I started learning, practicing extensively, and finally got converted to a full-timeĀ Challenge Curator
Ā after 6 months.
Everything was going smoothly but soon after a year, I started getting inclined towards web development. I didn't even know how to useĀ git
Ā properly, so that was the first step as that's where the code base resides. The culture at HackerRank has always been amazing and everyone has always been amicable. I started picking up small tasks- mostly bug fixes in the back-end(Ruby on Rails) at HackerRank to get an overview of the codebase in my leisure time.
I continued taking dev tasks on the side even though it sometimes affected my performance review as aĀ curator
Ā but I wanted to move to development soon, so I had to take the risk.
Hari always gave me side projects to work on especially during weekends so I could progress faster.
Things were difficult during this time but soon after a year, I got the opportunity to be interviewed for a fresher(backend) at HackerRank. To be honest the interview went 'Okayish' so I wasn't sure if I will get a chance to move to the dev team. It was a full-pressure situation and I wasn't sure what would be my next step if I get rejected.
And guess what- I was not rejected and was moved to the dev team inĀ April 2017.
Being a part of the Dev team I thought things would get easier but it was the other way round. My first project was to rewrite one of the routes fromĀ backbone
Ā toĀ react
. I had an overall idea aboutĀ react
Ā since I had to createĀ react
Ā challenges as part of my previous role. Of course, that wasn't enough to rewrite an entire route! The next step was to start learningĀ react
,Ā redux
Ā in-depth and the courses byĀ
I was trying hard to finish it as soon as possible and ended up getting fully burned out for months. Can you guess the number of comments on my pull request?
Let me give you a hint, it brokeĀ
Ok, I will tell you it wasĀ ~500Ā comments š±
AfterĀ ~9
Ā months my code went to prod. It tookĀ ~3
Ā quarters to finish this which was earlier estimated to withinĀ 1
Ā quarter. Due to my poor performance, my appraisal didn't go well. This year had been very difficult for me. More so because of the doubts, I had inflicted upon myself.
I received a lot of critical feedback when working on the previous project. Trust me on this- critical feedback if taken in the right spirit can get the best out of you. And it really helped me in my journey.
As I tried to finish the project faster, I became further dependent on others rather than learning to do it myself. This doesn't mean you shouldn't take help but first, one needs to try on their own. This is the only way one would become independent, and let me tell you the joy of fixing it yourself is pricelessš.
I was trying to jump into implementation even before thinking about how I should be breaking it intoĀ components
, what should be the flow etc. It's ok to take more time to complete the task instead of finishing it in haste. No one is going to judge you based on that, rather if you take a little buffer and finish it before time then it would be commendable. Remember to take some time in planning so you estimate better as well as, execute it well.
I was lacking basics and that was causing trouble in understanding the core concepts. So I started fixing my basics first andĀ You don't know JS
Ā byĀ Javascript
Ā fromĀ basic
Ā toĀ advanced
Ā as it assumes you are aĀ complete beginner.
I started working on all my weaknesses and aimed towards becoming a better developer. Soon within a year, I had shown a significant amount of improvement. I also took the responsibility to set the right coding standards and high coverage. Everything went well and I was promoted toĀ SDE 2Ā by the next year. I started mentoring my juniors, leading more projects, and executing them well. I was applauded for being so hands-on and taking complete ownership of the projects I was working on. Soon I was promoted toĀ Senior Software Engineer.
The most important realization for me was that I need to have the right amount of patience. Only then can I ensure my understanding of the core and thereby plan, and execute things accordingly. It's never too late to learn or start with something new. The time you start is always the right time. š
Contributing toĀ OSSĀ is something that has always helped me grow professionally and personally. There is a lot of exposure and learning you get while working with the community. And once you start contributing, trust me you will get addicted to it ā¤ļø. I will soon write a blog on how open source helped me become a better developer.
Well, this is how my journey has been so far and I believe there will be so much more to it in the time that is yet to come! But I can't be ending without expressing gratitude to the ones whose guidance shaped me. Thank youĀ
Also published here.