Job Switching in Tech: 3 Ps To Make You Shine

Pranay Kumar Chaudhary
7 min readMar 25, 2018

After having a roller-coster of a ride of 2.9 years in my first-ever tech job, I recently made up my mind that it’s time to make the big move. Here are the 3Ps that helped me in cracking some of the toughest interviews: Preparation, Profile and Perseverance

As it is with almost all the good things in the world, the beginning is the toughest part. Have you ever before in your current job, felt that you’ve had enough, and you probably need to make a switch? How long did that thought stick with you? A day, a week? The fundamental problem with making up one’s mind about job change and sticking with that resolve is the comfortability of your current job. People are usually reluctant to do something out of their already routine life. Returning home from office and instead of lazing off and watching your favourite tv/web show, to sit down and start brushing up/researching old/new concepts in tech space with a firm resolve becomes a scary prospect.

The seed of thought about changing one’s job is always sown as a direct result of some kind of dissatisfaction. The dissatisfaction can be anything: it can be your nagging manager, or the routine work, or the last appraisal, or the company politics..yada yada. The primary point to note is that when you are dissatisfied, it sprouts up anger, and it’s that anger that drives you, that forms the resolve. DON’T LOSE THAT RESOLVE, DON’T SETTLE.

Once you are determined that it’s enough and you are ready to go all in, it’s time to follow the 3Ps:

PREPARATION

Preparation is the key to one and every aspiration out there. There are just no short-cuts. You absolutely have to sit down everyday, for months, without any distraction, with lazer-like focus and prepare for the job you want to be in. Here is the process I followed:

Brushing up the good ol’ DS/Algos: There are many online resources which provide you an extensive and exhaustive content for the topics. I chose GeeksForGeeks though. I had used the site for my college placement preps and I had really liked its content: tutorials, questions, difficulty rating for questions, interview experiences, all at one place.

I started with re-flooring my CS fundamentals i.e. going through all DS, starting from arrays till graphs. I am going to tell you a trick, which I always use and is surely going to improve your prep strategy. Whenever I come across a question, I read it first and try to solve it on my own. If I solve it within 10–15 mins, I would just move to the next question, coz if I solved the question then, there was almost 99% probability that I’d solve it during the interview as well.

However, if I am not able to solve it within 15 mins, I keep trying until I solve it myself or I have to look at the solution. Once I know the solution, I write down the question in my notebook, along with a single line hint for solving it, like “ Use Stack for this”, “ Apply DP” etc. Why to write the question in the notebook? So that you can revise it later when you are finally about to go for an interview. While revising the question, try again on your own, and if you can’t solve it, use the hint. You’ll be able to solve it on your own 9/10 times. And you have got yourself a personal question bank full of quality questions for future! Go through every DS question, it’s absolutely necessary to regain that lost sixth sense of solving programming questions.

Preparing for System Design questions: This was completely new for me. Since I was trying for the role of a senior engineer, besides being technically at par, I was now also expected to be able to design complex systems like youtube, google drive, food delivery app, analytics pipeline etc. It was an endless search of resources, an undying embarrassment of losing at system design and an epiphany of sorts that finally made me an average at it.

Every internet resource about system design would tell you that the interviewers don’t expect a full proof system, they just wanna know your approach. But trust me guys, they all are ABSOLUTELY WRONG! The interviewers DO want a complete solution, they’ll drill you about your choice of technology, break your system with varied scenarios, until you give them what they want or you give up. And system design interviews are of paramount importance, you screw it up and you are rejected. Trust me, Amazon rejected me after 6 rounds, for not being excellent in designing.

I took help from a lot of blogs, viewed many youtube lectures about distributed systems, as well as youtube videos about some common system design questions to finally get a hang of it. I have listed the resources at the bottom of the article for your help. However, even if you go through all the resources, when it comes to an interviewer asking you a brand new problem, you are gonna panic and screw up the interview, it happened with me too, a lot!

The only solution is PRACTICE! Choose any popular application/website out there, like booking.com or google docs or doordash or bookmyshow.com, and try to build it yourself. The results are faster if you do it with a friend who can point out flaws in your design. Start with the MVP of the app, and then start adding features. Think about which technology to use and why? SQL or NOSQL, Caching or no-caching, and which caching solution and why, streaming or batching and why? The exercises will help you in opening up your mind-horizon, letting you cookup multiple solutions quickly. Practice a lot and you’ll see the results yourself.

PROFILE

Before you are ready to go all in and rock those tech interviews, the preliminary requirement is to get interview calls first. For that to happen, you need to get yourself noticed first. But how to get noticed?

Step 1: Build an awesome tech profile. I believe the tech market is actually a downtown street market where you put up your small shop and wait for those flashy HRs to walk past and notice what you are selling. And what are you actually selling? YOURSELF! While you are working, choose to work on the latest and the greatest, try to work on different fields of technologies, build your skill set. You have to sell yourself, so think how you can do that. If you keep working on REST technologies for the entirety of 3–4 yrs, you might become an expert at it but again you’ll have only one weapon up your arsenal. So, develop a strong work profile.

Step 2: Create an impressive resume. Most of us make the mistake of taking resumes lightly. But your resume is what gets you noticed in the first place. NEVER keep your resume flowing for more than 2 pages. Be crisp and elegant about your work experience. Don’t try to put up everything in your resume, choose the points which bring out the best in you. Use the technology buzzwords that you have got a chance to work on, coz HRs search for those buzzwords and shortlist the resumes which have them.

Step 3: Host your resume. Depending on the country you are in, there are different web portals where you can host your resume. For example, in India we have naukri.com and others. However, LinkedIn is one global portal which cuts across international boundaries. Create a stellar LinkedIn profile, with all your major achievements till now, with all the technologies you are adapt in, upload your resume and turn ON the setting which makes your profile visible in HR’s candidate searches. Now, start looking for job openings in the companies you don’t want to work for and start applying. (Whaaaaaat???)

PERSEVERANCE

Don’t immediately apply to the firms whom you wanna work for. Rank your options, from highest to lowest and start applying from the bottom of the list. This is to gain a few practice interviews, coz trust me, you are gonna screw up those first interviews. Once you’ve applied for a number of jobs, sit back and wait for the interview calls. It might take time, might be that it’s a hiring freeze, but if you have a good profile, you are gonna get the call. I got calls form 90% of the companies I applied for within a span of 6–8 weeks. If you don’t get any call for 1–2 weeks, don’t panic and don’t start applying everywhere. That’s a mistake I made, coz once the calls start coming, there’s no stopping them and suddenly all your subsequent weeks are jam packed with interviews.

If you don’t crack the first few interviews, it’s very obvious to feel dejected, disappointed and hopeless. But that’s when you need to persevere. Stay strong, analyse all your interviews, find out your weak points, make a mental note about the topics you didn’t know during the interview and later read about them. Only through repeated practice and growth in your technical knowledge will you be able to win. So keep going, don’t stop.

Once you are done with your practice interviews, start shooting at the big echelons. And don’t get nervous before THE interview, it’s just another one of the numerous ones you’ve already given. Be confident and honest, realise that the company needs you and not the other way around.

To give my own instance, I took out 2–3 hours daily for my preps during a time span of about 3 months. I got calls from Walmart, Ola, Uber, Amazon, Groupon, DE Shaw, Flipkart and Target. Gave interviews for some of them and got into Walmart, Ola, Uber, Groupon and Target.

Design Interview Prep Resources:

https://hackernoon.com/top-10-system-design-interview-questions-for-software-engineers-8561290f0444

--

--

Pranay Kumar Chaudhary

A complex guy. Emotionally optimistic and a social introvert with a taste for computer engineering.