My Journey from a novice to a Front-end Engineer
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? Ummmm... 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 of 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 amongst 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 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, IBM which use to visit our college for 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 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 😊.
How I became a challenge curator
One day after participating in HackerRank EpiCode where I ranked 638/5855, I received an email from Hari, The CTO of HackerRank and thereby my interview process began. As I had started competitive coding only a few months back, I lacked confidence! And there was a lot to learn but there was no harm in trying since I had nothing to lose😉.
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.
🤔 about Development
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.
Moving to Development
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
react. I had an overall idea about
react since I had to create
react challenges as part of previous role. Of course, that wasn't enough to rewrite an entire route!
The next step was to start learning
redux in-depth and the courses by Stephen Grider at udemy really helped me in understanding react.
This was a big rewrite (~4k lines of code) and the deadline was getting nearer, and I was not even close to completing it. 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 github, and even today if I open the pull request it doesn't load 😂
Ok, I will tell you it was ~500 comments 😱
~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 my own self.
I had received a lot of critical feedback when working on the previous project. Trust me on this- critical feedbacks if taken in the right spirit can get the best out of you. And it really helped me in my journey.
Learn to Debug
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😍.
Planning before Implementation
I was trying to jump into implementation even before thinking 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.
Have 💪 Basics
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 Kyle Simpson, there is also an online version for the same. These are the best series of books for anyone who wants to get into the core of
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 next year. I started mentoring my juniors, leading more projects and executed 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 realisation 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 opensource 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 Hari for being my pillar, for always pushing me beyond my limits, Sudhanshu for mentoring me, Akshay for the support and guidance without whom this wouldn't have been possible. I also have tremendous gratitude for everyone with whom I got the chance to work. It's so important to be surrounded by people who believe in you and keep inspiring you to be better.
Did you find this article valuable?
Support Aakansha Doshi by becoming a sponsor. Any amount is appreciated!