Offer
Status: B.E. + 2 years experience and M.S. + 3 years experience from a decent company
Position: SDE at Microsoft
Location: San Fransisco and Mountain View, CA
Date: Sep 2020.
My preparation and tips
Journey: April to September 2020.
Strategy: Revised company-specific chapters and mock tests from Leetcode premium and actively participated in weekly contests.
Phone interviews: Start with "Hi, this is {firstname}" as it helps people to pronounce your non-English name. The interviewer is here to help you succeed. Treat him like one.
Understand the given problem. Sometimes they intentionally provide vague descriptions. Clarify the problem with the interviewer by providing multiple examples.
Think out loud. Discuss your approach before jumping into the code. Ask permission to start writing the code (if needed). Dry run with the examples you wrote before.
They will probably judge you not just for the problem you solved, but if you are a team player.
Follow a good coding convention like using a good naming convention in your functions and variable names, write modular code, etc.
Video interviews: Greet the person in front of you (even a robot). Feel comfortable. If you get nervous, try to get the conversation started, like talk about their virtual background or how CR7 is the best football player. Avoid any negative conversation or questions. Don't talk about COVID or Wildfires anywhere in the interview. People already had enough of it.
Some interviewers never turn on their camera, and it feels spooky talking to Siri/Cortana circles blinking at you.
Questions to ask the interviewer:
Life
I was furloughed in July. I made multiple applications every day in July/August. I was let go from my work in September due to team restructuring. I was desperately looking for a new role.
Companies
Facebook: (May 2020 - Cancelled)
Phone - Some tree related question like Diameter of Binary tree. Discussed a few examples before jumping into the code (as stated in prep above).
Onsite - Cancelled due to E4 hiring freeze.
Square: (June 2020 - Reject)
Round 1: Throw some items on the ground and find the item on the topmost. Identified it as a graph problem and solved it.
Round 2: Three problems on Strings that were a follow-up on each other. Replace a char in a string. Now replace in 2D String maintaining some formatting. Solved the first two and ran out of time. 2D problems take longer for me to understand. Don't remember the exact question.
Google: (July 2020 - Reject)
Phone: Some manager-employee hierarchy type of question. Solved using dp by having a store to memoize. Follow-up questions for further enhancements.
Virtual onsite: A BFS type question to see if a path exists from the start to end.
Object oriented design question like design an interface like a custom iterator.
Leetcode medium question with fitting a date range.
Some crazy hard problems to find the number of connected components inside a figure.
Behavioral round
Amazon: (July 2020 SDE-2 Reject)
Coding test: a few of the problems from the standard list in the discuss section https://leetcode.com/discuss/interview-question
Virtual onsite: System design + behavioral.
Leetcode easy coding question + behavioral.
OOD like parking lot or movie theater or similar + behavioral.
Manager interview: It was good. It is expected that you show examples where you made use of data to make informed decisions with your team/task etc.
I had high-level answers ready, but I didn't prepare for digging into follow-up examples/questions for behavioral rounds.
Oracle: (July 2020 Sr.MTS - Reject)
I had previously interviewed with them onsite, and I directly reached out to the manager through LinkedIn.
Phone: Coding question to perform a git diff on two strings (directories). Print the list of files/folders. The directories contain multiple files and sub-directories.
I solved the problem, but I got discouraged working with the interviewer. Probably not the desired experience. Remember - interviews are two ways street. I wish they considered me for a mid-level role instead of straightaway declining.
Cisco/AppDynamics: (June to August 2020 - Role canceled)
Very-slow hiring process. I gave about 4 or 5 phone/video interviews in a week's interval. The role was eventually canceled.
The position required strong JVM and debugging/troubleshooting skills. Even though I was not totally interested, I wanted to give the interviews as I learned a lot through the interviews. The interviewers were super helpful and gave feedback immediately after each question.
Microsoft (August 2020 - Hiring event - Position pre-filled)
Medium coding question
Design-related coding question
System design question.
Manager round: Coding + behavioral
Atlassian: (September 2020 - Reject - Great interview experience. Helpful interview reference material.)
Phone 1: String processing easy question
Phone 2: Tree-based easy questions (like Common Ancestor or similar ones)
Virtual Onsite:
Manager interview and behavioral
Easy leetcode question with follow-ups
API level System Design
Code and designing a hit counter
(I was expecting an offer, but they felt that my code and design was not scalable enough)
Twilio: (September 2020 - Reject - Hiring event - Great interview experience. Helpful interview reference material.)
Take-home coding challenge
Onsite: Manager behavioral round
Easy coding on a graph mapping
HR behavioral (they were looking for matured experience in assisting team, taking initiatives, handling conflicts, etc.)
System Design on identifying the problem in an already given system. The interviewer presented the system with blocks and issues. I was to identify which block might have the issue and suggest fixes.
FedEx: (Role canceled)
Single 90 mins onsite: Hackerrank + Manager (behavioral) round
Easiest interview. Direct short onsite round.
Honeywell [Sep 2020 - Offer - Declined later]:
Coding: Hackerrank (take home)
Phone: Basic questions on theoretical concepts.
Video: Hackerrank coding
HR: Behavioral
Microsoft (once again) [Sep 2020 - Accepted Offer]
(Reapplied to 20+ other roles on their portal)
I got a couple of calls again from different teams and locations. I spoke with the California team (who extended the offer) and later declined the onsite for the other team. My interview feedback from my past hiring event was all positive and it was considered by the teams I was interviewing next.
The interviews included coding, behavioral, system design, and me eagerly taking an interest and asking a lot of good questions to the interviewer (NDA).
Final thoughts
See where and why you are lacking. Get feedback retrospectively.
I had to refine my soft-skills for behavioral interviews. I went over some of my company-specific design wiki to understand system design concepts.
I used my LinkedIn connections for referrals. I also reached out to managers with whom I had connected a while ago after my past onsite. Think out of the box and build your own strategy.
Keep the ball rolling and have some calls on your plate at all times. Initially, I rushed to provide the earliest interview dates. I scheduled Google, Amazon, and Oracle just weeks apart, thinking I will compete for different offers. I missed all three in the process.
Other onsite interviews (Rejects/Ghosted):
Cerner Corporation (Senior position - coding + OOD), Itential, Clarabridge (take-home challenge), RiskIQ (Managerial + coding + take-home challenge), Shutterfly.
I am not a fan of 4-6 hours of take-home tests. I declined all those as I had others in the queue. About ten other companies canceled after the initial recruiter/coding/hackerrank round.
I had a back-up plan to join consultancies towards the end of the unemployment grace period. But I am glad it did not go to that point.
Tough times don't last, tough people do.
Cheers.