How I made a switch from SDE1 to SDE2 during recession period??

                                           

What's recession ???

The traditional definition says "two consecutive quarters of a generally slowing economy defines a recession".

Honestly speaking I don't understand much about global or national economies, but I always believed in something my seniors told, if you're talented and skilled enough there are very less chances of not finding jobs. Market always has demand for highly skilled candidates.


This thought kept me moving despite of hearing about "recession" from industry folks, I focused on up-skilling myself.

I started my preparation to make a switch to SDE2 roles from August 2023 onwards , it took me couple of rejections (5+) and heartbreaks down the line before getting my first offer from Phonepe and then cracking Uber which I was aiming since June 2023. I received very few calls from recruiters or companies initially.

How did I prepare for interviews?

Balancing your daily job with consistent preparation gets tougher, added to it the responsbilities you have in personal life makes it little more challenging, but as amma always says "keep giving your best , irrespective of your challenges in personal life, professional life should keep progressing" I kept preparing whenever I got some time during weekends. 

To clear SDE2 interviews as an experienced professional of 4 years, its expected that we have strong DSA skills along with design skills. Although I have very less design experience practically, I prepared from various sources such as "Alex Xu : System Design", tech articles published on medium, Uber eng blogs, Netflix eng blogs, Youtube videos from ex-Google engineers (linked resources at the end).

For Low level design , it was crucial to write code by keeping in mind design patterns, OOPS concepts and SOLID principles. I tried to practice LLD by first sketching the classes / interfaces and then proceeded with writing the logic for them.

On a regular basis, I used to practice DSA questions on Leetcode atleast 1-2 daily for consistency.

Phonepe interview process:

1st Round : 24 hour assignment given via gmail, I was asked to code complete functionality of it and submit it within deadline.

Build an alert management system which has registered client configurations during startup. 

2nd Round : Follow up on round 1

3rd Round : DSA

1 graph hard question, 1 DP question. I ran out of time and didn't code properly both of them. Hence I was setup with a followup DSA round

4th Round : DSA

I was asked trie based leetcode hard question, 1 graph hard question. I had time to code up the trie solution with optimal approach but didn't have enough time to code 2nd one.

5th Round : Design

Previous work experience followed by system design of URL Shortner

6th Round : Techno Managerial

Behavorial questions followed by design of Swiggy - major focus area was design of db here, I chose SQL based storage, I was grilled here for efficient querying and searching.

Uber L4 interview process:

Online assessment : 4 questions, 70 minutes, 1 easy + 2 medium + 1 hard  or 2 easy + 1 medium + 1 hard.

Expectation is to solve atleast 3.5 of them completely to clear the cutoff

Pre- screen round : 1 medium DSA 

1st round : 1 medium DSA
2nd round : Low level design 

Expectation here is to show your knowledge of SOLID principles, design patterns and OOPS concepts. You have to write functional code and test it. If time is left, they might also expect you to handle multithreading

Sample questions for this include : Spotify , Pull-based queueing library,Uber/Ola low level design etc.

3rd round (Bar raiser) : High level design

Previous work experience, and new design.

Expectations : Functional and non functional requirements, Capacity estimation, API and DB design, understanding of cache , Architecture diagram, Additional deep dives, bottlenecks of designed system

Sample questions for this include : Uber Eats, Design a live tracking system receiving trip events, design a metrics/analytics query dashboard for live trip events, design a heatmap based library for live events tracking etc.

NOTE : Based on teams or org you apply for 2nd round could either be LLD/DSA. 

I chose to join UBER.

One thing to keep in mind : if possible have prepare with a group of people, it helps track your progress, discuss optimal solutions, vent out your anger and frustrations if interviews don't go well or you get rejected, and they keep you motivated also .

I am blessed to have a supporting family, friends and a couple of mentors who kept giving me tips and tricks to progress through each step of the process. 

Cheers and happy coding !!! :) :) :) 

Resources:

DSA:

1. Aditya Verma DP series

2. Leetcode 

LLD preparation:

1. https://codezym.com/

2. https://github.com/donnemartin/system-design-primer

3. https://github.com/tssovi/grokking-the-object-oriented-design-interview

4. https://www.youtube.com/@anomaly2104

5. https://github.com/kumaransg/LLD

6. https://github.com/monukumar98/Crux-Jan-Live22/blob/master/Object-Oriented

7. Uber/OLA LLD

HLD resources:

1. Multi level cache system

2. Amazon Locker Management System

3. Live Streaming System like ESPN/Hotstar

4. Dropbox/Google drive

5. Spotify

6. Whatsapp/telegram

7. FB Messenger





Comments

Popular Posts