Underdog: Someone who is bound to lose. Everyone expects them to lose, yet they make it to the finish line.
Our guest today has a true underdog story. Meet Rahul Diwakar.
Rahul doesn't have a CS degree, nor did he attend any bootcamp. All he had was a supportive friend (with a crazy referral story) and free learning resources.
He became a successful developer just with YouTube and FreeCodeCamp.
This is the story of being relentlessly resourceful.
Let's hear it from Rahul himself.
Hey, tell us a bit about your background. Where do you work, and what do you do there?
I completed my B.Com degree and come from a lower-middle-class background. Currently, I'm working at Peachy Technologies as one of the main developers.
Just under a year, I became a very important part of this small team. But none of this would have been possible without the support of my best friend, who got me started with programming.
How did your friend get you started with programming? Share your first experience.
During my college years, coding wasn't part of my studies. In the lockdown, I tried applying for a sales executive job but faced rejection, leading to a period of feeling down.
One day, a friend who was thriving as a software developer called me. I shared my struggles, and he recommended learning coding during the lockdown.
Taking his advice to heart, I embarked on the journey of learning programming.
Transitioning from a non-technical background posed challenges, but I persevered through continuous learning. While it wasn't easy, the dedication paid off, and I started to find success in the world of programming.
Despite facing challenges, I was dedicated to building my career, staying updated on the latest tech trends, and valuing the opportunities education has provided.
So, how did you learn to code?
Coming from a different background, having a mentor cum friend was all I needed.
With his curriculum and roadmap advice, I got started with programming. I began with free resources like YouTube and websites such as FreeCodeCamp and W3Schools, along with the guidance of my friend.
When faced with challenging problems, my approach involves extensive research for a couple of hours. If I manage to solve the issue, great. If not, I take a break, relax my mind with some sleep, and then give it another shot.
This iterative process has proven effective in overcoming obstacles and advancing my programming knowledge.
Have you ever felt like giving up? Felt like this is it, programming is not for me?
I faced two moments when I contemplated giving up.
The first occurred during the initial phase of learning programming. Coming from a different background made it particularly challenging.
While the early stages were enjoyable, I hit a middle phase where understanding the concepts became difficult.
Despite the struggle, my commitment to continuous learning and the drive to overcome obstacles helped me push through.
The second challenging moment arose during job interviews. After facing rejection in about 40 interviews, the temptation to give up was strong.
However, my perseverance, fueled by both the circumstances I was in and the support of my friend, provided the strength to persist. I kept going until I finally secured a job.
How did you land your first major breakthrough as a developer?
Despite facing rejection in approximately 40 interviews, I eventually succeeded in one, but unfortunately, the company was not reliable.
Assuring an offer letter within 15 days, they repeatedly delayed the official appointment. Frustrated with this lack of commitment from the company, I decided to continue pursuing other opportunities.
Eventually, I cracked another interview and secured a position as a software developer in a well-established and reputable company.
---- Interviewer ----
Interviews should be two-way. Not only the company interviews you, but you should interview the company as well.
Developers have equal rights to reject the company if the company doesn't seem professional. As we heard in your case.
How much do you make yearly as a self-taught developer?
Coming from a non-tech background and being self-taught, my initial package was just 5 LPA.
But continuously working and upgrading my skills, I doubled my package in just under 1.5 years.
And I aim to go way beyond that in the upcoming years.
Do you have any memorable stories from your time as a developer that you'd like to share?
In the midst of my programming journey, there was an incident that remains unforgettable.
The friend who supported me in learning programming lost his job. In a gesture of gratitude, I extended a referral to my company, and he joined, working for approximately three months.
However, without providing any prior notice, he abruptly left the company. He shut down his laptop and phone and remained unresponsive for a couple of days.
When he eventually reached out, he admitted that his sole motive for joining was to secure my referral bonus, and having achieved that, he chose to exit the company.
---- Interviewer ----
Hahaha, that is some next-level swag, man. I don't even want to ask that friend's name.
If you want, I can reveal who he is.
---- Interviewer ----
No, no, please don't. But this is some crazy next-level story.
If you were job hunting today, how would you approach it? What process would you follow?
I would initiate conversations with my network as I recognize the pivotal role connections play in securing job interviews.
Subsequently, I submit applications through various platforms such as LinkedIn, Wellfound, Apna, and other relevant channels.
But, I tell you from the experience of my fellow developers, referrals work the best. If you have a referral from an internal person, you directly get the interview.
---- Interviewer ----
Absolutely, I always say this. You should have a dedicated schedule every week just for networking.
There is no other way around.
All the jobs that I have been into, 80% of them I got through referrals.
Development is a demanding job. How do you handle burnouts?
I usually work from 9 AM to 6 PM, but if things get busy or I'm stuck on something, I don't stick to a fixed schedule.
In my free time, I like to watch cricket and movies, take walks, play cricket, and hang out with friends.
As developers, we are always learning something. What are you learning right now?
In my spare time nowadays, I'm diving into learning Next.js and Gatsby.
While at work, I dedicate time to continuous research, aiming to enhance my skills and add new technologies to my learning list for future use.
How do you keep up with the rapidly changing tech industry? Any books or resources to recommend?
I keep myself updated by reading industry blogs and following channels that provide insights into the latest developments.
Additionally, I regularly engage in conversations with friends to stay informed about industry changes.
I don't rely on books; instead, I stay connected with fellow developers. Following them on LinkedIn and Twitter, I gain access to a wealth of PDF notes and valuable information they share.
These resources have been instrumental in enhancing my skills.
Which AI tools do you use on a daily basis? Have you noticed any positive or negative impacts of using AI in your development workflow?
ChatGPT and other AI tools make it easier and faster to research, solve logical problems, read, and write documentation.
They help in quickly finding information, analyzing complex issues, and coming up with effective solutions, making the process more effective than traditional methods.
Where do you see yourself in the next 5 to 10 years?
I aspire to establish a small business that ensures a steady income during my retirement.
To achieve this, I am actively exploring various opportunities for business ideas.
The plan is to identify a viable idea, initiate the business when I am ready, and gradually transition from my current job to focus on and expand my business, aiming to match or exceed the income from my job.
Any advice or tips for other devs, especially newcomers?
The best way to learn coding is by practicing regularly and always learning new things.
If you get stuck on a problem, try to solve it for two days. If it's still challenging, switch to learning something new.
After a while, come back to the problem and keep repeating this process. Consistent practice like this will help you become a skilled software engineer.
Thank you for reading. Special thanks to Rahul for his patience with my questions and follow-ups.
I share a developer story plus a deep dive into a programming concept every week. Join the newsletter to receive the story directly to your email.