- About me - I'm an SDE3 in AWS with ~7 yoe. Since most of my hobbies were inaccessible due to the quarantine, I found myself with a lot of free time. Lying around doing nothing was not very fun so I decided to try my hand at interviewing. I've never done a full onsite before and I didn't know where to begin. Prepped for ~6 weeks using resources I found online. Managed to land both jobs. Still negotiating comp and other details. These are the resources I found most useful for each section of the interview. - Coding - 1. Read through Cracking the Coding Interview once. Didn't actually attempt the questions. Useful to understand common patterns. Reading through their explanations and sample problems is quick and easy. 2. Did ~200 problems in leetcode. Easy/Medium/Hard split of 20/70/10 a) Initially set a target of 3 mediums a day, then upped it to 4 meds and 1 hard a day, and then burnt out after a few weeks of doing that. b) I talked out loud when practising as that carries over well into communicating with an interviewer. Read this tip in a blind post. c) I set a timer while doing each question to simulate the pressure of an interview. In the end, you want to be completing a medium in ~ 10 - 15 mins. Start with a 15 min timer and keep extending it by 5 mins until you solve the question. Bring it down to 10 mins closer to your interview. d) Bring 100% of your focus to each question you practise on. I practised some questions first thing in the morning and the rest in the evening after taking a break from work and a quick meditation to ensure I'm fresh. 3. Did the top interview questions initially and then switched to Facebook tagged ones. 4. I found interviewing.io to be a great resource for practise. I did a free interview and paid for one. Since my performance was good in both, they offered me an option with which I could schedule anonymous phone screens with actual companies. I got most of my practise here. 5. On the other hand, Pramp was disappointing the one time I used it. Seems to attract a younger crowd. - Design - 1. My favourite resource - https://github.com/donnemartin/system-design-primer#study-guide a) Try and solve the example problems on there on your own. Set a timer and do it in Google drawings as that's the tool a lot of companies will use. b) Compare your solution with what's on there and argue for and against both approaches. c) Dig into each part of your solution and make sure you can justify your choices with advantages and disadvantages. 2. The only youtube channel I found helpful - https://www.youtube.com/c/SystemDesignInterview . I'd like to think it's great because it's run by a fellow SDE3 in AWS (represent!). 3. I found all other youtube channels that I checked and that 'Grokking' course everyone quotes in blind to be too high level and hand wavy. I'd caution against them for senior positions. 4. I re-read Designing data intensive applications. Knowing the internals of things and why different paradigms are useful helped me justify my choices better. - Behavioural - 1. Write down a list of all the projects you've worked on - wins, challenges, your role, and learnings from each. Do this to jog your memory. 2. Gather a list of commonly asked questions from blind and leetcode forums. Think of relevant examples from your experience. Doing this in advance helps you figure out which example you would like to highlight, as opposed to saying the first one that comes to mind during the pressure of an interview. - Other tips - 1. Interviews are a great place to highlight your soft skills, which are also very important during your daily work. I tried to bring my strong points - humor, genuine excitement about what I work on, and strong communication skills - to the interview. I tried to have fun and brighten up the other person's day in each round. I'd like to think some of it worked. 2. A friend, outside of tech, gave me a tip to reframe my nervousness as excitement. Helped a lot. See here - https://www.elitedaily.com/wellness/channel-nerves-success-like-olympic-ahtlete/1573177 3. I took the day before each interview off, as in no screen time unless work, and resisted the urge to cram at the last moment. I felt quite rested come time to perform. #interview #interviewkickstart #google #facebook #faang
Do you think you could have landed similar offers if you were technically a sde 2?
I don't think so. I switched teams in AWS and got more leadership responsibilities thanks to my current level than I would have as an SDE2. That experience was relevant in the behavioural rounds. Easier access to Principal Engineers and automatic involvement in a lot of design reviews surely helped in the design rounds. I spend more time in my day to day focused on design than implementation. Probably helped as well in the design rounds. It's shitty that a higher level opens more doors but it's the truth. However, I can only speak based on my experience.
Congratulations! So what is the timeline for the entire process - prep to landing job?
Thanks! Time from starting prep -> doing the onsite was ~6 weeks.
Bravo on this post, some of us like myself didn't have the good diligence like OP into share all this out. It is so difficult at this time for interview and negotiations, not to say share the experience in blind, so I admire OP for the good will. Many congratulations, and for those reading this post, this is solid prep guide. It worked for me (developed similar routines, and received similar offers). The practice interviews for sys design and coding are critical, it takes discipline to be very humble and always be thankful for people helping you succeed when not meeting them face to face. Technical Mock interview is also a good resource, these are expensive though. Tushar, Abdul Bari youtube videos for coding, ACM champion Graph videos, all in leetcode prep guide: http://leetcode.com/discuss/general-discussion/494279/comprehensive-data-structure-and-algorithm-study-guide For sys design the book 'designing data intensive applications' is great for new comers in sys design. For the folks (bros and sis) working hard our there in quarantine, work hard and you will succeed. Best of luck!
You got L5 at Google?
How many companies did you interview with before G and FB?
I scheduled an onsite at a smaller company a few days before my Google onsite. I thought it'd be good practise but the interview format was very different from the typical leetcode + sys design interviews. The only relevant section was behavioral. I thought it went well but didn't end up getting the job.
You should have been really confident about your prep and skills to interview with G and FB without practice interviews with other companies :) Also, how many mock interviews did you do with interviewing.io? Sorry for lot of questions
How was virtual onsite interviews compared to in person? I am specifically worried abt doing system design rounds virtually. Any tips? Also, aren't you worried about bootcamping or ramping up virtually as a new hire?
Tbh, I've never done an in person onsite. Virtual ones are convenient. You don't have to leave your home and you get to use your laptop. For sys design, I practised a lot on Google drawings, as I had heard that's what most companies use. Or you can ask them to let you use that. You'll get pretty comfortable after practising a few questions on there. As for ramping up, we'll see. I have worked with remote teams before and done fine. I'm hoping that experience will help me.
What coding language did you use ? How did you get to solving challenging medium/hard problems in 20 minutes ?
Java Even towards the end of my practise, there certainly were some questions I couldn't solve in 20 mins. Just try to make sure those are in the minority. Interviewers are aware of the difficulty of their questions and would either give you more time - by giving you a really easy question or no other question with it - or help you out / work with you. Just keep communicating / thinking out loud while brainstorming different solutions.
Can you share the offers? FB with 7 yoe is unconmon. Usually people with such YoE get E5 offers
Don't have numbers yet. I'm past the hiring committee for both. Still sorting out some details unique to my situation. Giving out any more info on that will dox me. I've been an sde3 in AWS for some time now, thanks to being in the right place at the right time. And I got some good opportunities on some important projects. Partly due to luck and partly because our management / PM chain had troubles and devs had to step in to fill some roles. I'm guessing this helped with the levelling.
TC?