Experience - 4+ years in Embedded domain
Position - Equivalent position of SDE-1
Location - India
College - Tier 1, ECE
After 14 months of job search experience filled with frustration, hopelessness, dissatisfaction and underconfidence, i was able to land a job at amazon and happy to get an offer at expedia after applying for 500+ open positions.
So, i want to share my journey hoping that it would be helpful for people in similar situation, especially in these tough times.
For the past 4+ years, i have been working in embedded domain(Firmware) involving minimal coding and development work. 3 years passed by quickly(special thanks to covid) only to realise that this isn't the domain i would like to work in. I lacked knowledge of different job roles that exist. I was naive to know that all software roles aren't the same. When i looked back at my 3 years younger self, i haven't grown professionally, doing only maintenance work. So, have decided to make a switch so that i can add some meaning to my 8 hours of work life. So, decided to apply for web/app dev roles as they interest me.
Started my grind on leetcode & G-G. I solved around 600 problems across leetcode & G-G before applying anywhere. Firstly, getting shortlisted for a opening was very tough. I was applying for web/app dev roles, but due to lack of relevant experience, i wasn't getting shortlisted. I tailored my resume from various tips on youtube to get shortlisted, but still didn't help. Still, i kept applying for these roles and was reaching people on Link--In for referrals.
After 1 month, finally got shortlisted for a position(referral), but got rejected after a poor design round. Kept grinding on coding and design rounds. But, every passing day caused more stress as each day increased my experience in current domain, making it tougher and tougher to get out. I used to take great pressure before every interview thinking that this might be the last chance and i should crack it.
I even thought of doing Masters(can't afford & don't want to), just for an opportunity to start afresh. I was so desperate that i told the recruiters, it's fine even if the compensation is less than my current one. Even that didn't get me interviews. Even referrals from friends/colleagues were not useful, as most companies lacked interest due to my current experience. Still, i kept applying hoping for that one opportunity and kept preparing, so that when time comes, i don't screw up. Couple of interviews went very well and recruiters used to say they will be scheduling next rounds. But, then i would get ghosted.
Just when things weren't going well, i had breakdown in my personal life when i decided to express my love for the one i was holding up for 2+ years. Forget about rejection, she wasn't even ready to listen about what i feel for her. That took me out. For the next 2-3 months, i was neither preparing nor was giving any interviews. I didn't feel like doing anything.
One day, i stumbled upon a movie, soorarai pottru and realised how weak of a heart i have. I gave up so early. There are people out there achieving the impossible of things against all the odds one can think of and here i am baffled by the tiniest of challenges. We tend to forget good things happened to us and only remember the bad ones. Can't it be seen as an opportunity to do better? It was a reminder to slow down, take a breath and appreciate life. Someone's out there wishing the opportunities that i have. I guess, sometimes all we need is little motivation.
All of a sudden, i stopped cribbing about the circumstances & started focusing on the shortcomings and started working on them. Kept the pressure aside and focused on one step at a time, expecting nothing but knowledge in return. This changed everything.
Few weeks later, the tables turned. I was simultaneously interviewing for 5 companies and didn't fail in any of them. Got offers from Amazon and expedia and decided to drop from the interview process of remaining companies for the last couple of rounds. Lastly, a bit of luck is needed in one's journey. What can we do about it? well, pray for the best and prepare for the worst. Just don't let anyone doubt your worth and keep grinding. That's the best thing we can do.
Few of my interview experiences:
Amazon
Expedia
Indeed
Cleartrip
Microsoft
Swiggy
Arzooo
Byju
Urban Company
Epifi
Esper
Morgan Stanley
Arista Networks
Resources i found most helpful during my learning:
1. DSA:
DSA is what that would take most time, given the variety of topics/problems. The more questions you solve, the more comfortable you get. Simple. I would suggest to start by solving 10-15 most commonly asked questions/patterns from each topic.
Blind 75, famous list of commonly asked questions - Link
List 1 Name - "Must Do Coding Questions for Companies like Amazon, Microsoft, Adobe .."
List 2 with problems in addition to above list - "Practice for Cracking Any Coding Interview"
Questions sorted by frequency of appearance per company - Link
Some tips:
- To save time, once you get comfortable solving problems, if question looks doable or something what you have done before, skip it or just go through the solution to see if your thought process was the optimal.
- Try to participate in Leetcode's weekly & Bi-weekly contests to be able to solve problems in time. I found them very useful.
2. LLD:
Companies started focusing more on design abilities of candidates. Some companies started having design(LLD) rounds even for entry level roles like SDE-1.
OOPS concepts:
In C++ - Link
In java - Link
Java video tutorial - Link
SOLID principles
Basic understanding in simple terms - Link
With code snippets - Link
Design Patterns:
Playlist for common design patterns with quick implementation and understanding - Link
Excellent source for deep dive and examples along with comparison between design patterns. Super helpful. - Link
I would suggest to study and understand top 5 patterns from each of creational, structural and behavioral patterns first. Understand what problem they are solving and how they solve.
Most probably, you won't be asked to explain and code a design pattern. Rather, you might be expected to use them in design questions.
Design:
Coming to design questions, there is no one solution that suits all. Pick a question, try to understand different solutions. No need to panic if you can't understand why something is the best fit for the usecase. I didn't either at the start. Try to understand their viewpoint & keep practicing, eventually u will understand.
Also, there is no hard and fast rule to use design patterns in a given question. It helps in writing clean and extensible code, which would be useful in your regular work life and not just for clearing interviews.
Learn through concepts like aggregation, composition and their application in the process.
curated list with link to solutions - low level design primer of prasadgujar
gro--ing object oriented design interview - concepts + popular questions
Quick explanation and code - Link
Playlist with questions and explanation - Link
Playlist with machine coding - Link
3. HLD:
Playlist for basic concepts - Link
system design primer of donnemartin - HLD primer and one stop for revision
gro--ing system design interview - concepts + popular questions
HLD cheatsheet of vasanthk - key design components useful for interviews
If interested, go through this book. A fine read - Designing Data-Intensive Applications by Martin Kleppmann
For HLD, practical experience helps a lot, be it actual interviews or mock interviews. Also, i used to attend free scalar sessions for HLD questions, but they are usually 3 hrs long and have lot of drag with promotions.
Some tips:
- Go through as many interview experiences as you can before every interview.
- Ask for feedback after every interview round. Work on the shared feedback.
Just a job switch. May be. But, it's me overcoming self-doubt against the odds.
This journey has given me enough confidence that i am not worried about layoffs or unknown surprises life has to offer. Not because i am well prepared now, but because i have realized my ability to face these challenges. Not only professionally, but in everyday life too. My thinking process about problems has changed forever. Obstacles don't matter, what only matters is "How badly you want it?". Gearing up for the next challenges.
Thanks to the valuable resources - leetcode,G-G and youtube - fortunate that these are free to all.
P.S: Sry for missing links. Found out that LC doesn't let me post with articles having competitor's names


