Context: US Citizen, California-based role
"Holy cow", is all I can say.
I have never really interviewed at a big tech company in the past. Usually I do not apply to these because the rigorous interview loop is hard to justify a 150k salary and 40+ hours of work a week. But I am tired of my current job. It is fully remote and really chill, but I feel like I am not learning enough. I would consider myself a solid engineer in practice, so I felt like it was going to be easier than I thought. I also get paid less than I would like to at 3 YOE.
I decided to apply to a big tech SWE role asking for 4 years of experience. I do not understand how I even got interviewed in the first place, but the recruiter asked about my experience and I answered honestly. He emailed back an hour later mentioning that the hiring team would consider my candidacy.
So knowing full-well that I basically was underqualified, was probably going to get grilled at a level higher than my expertise, and was probably going to fail most of the interview, I decided to prep for everything.
I spend two weeks preparing for LeetCode interviews. I solved about 10 problems a day, and revisited problems that I have done in the past. I personally despise LeetCode, but I gave it a shot anyways. My brain was fried by the end of the day, and I felt sick sometimes. Kudos to those who can actually do this grind. I also prepared for system design heavily, and this was the one I was least worried about. I practiced behavioral problems so that I would know how to answer them properly.
The Interviews:
Technical Screen - LeetCode and Theoretical Questions
For the first technical screen, I was asked technical questions for about 20 minutes then given a LC problem that I have not seen before (not surprised). However, I was able to implement a brute force solution very quickly in about 5 minutes after discussing my approach. After I was asked to optimize, I actually recognized the optimal pattern through my practicing. I implemented the optimal approach in about 10 minutes. I discussed time complexity, tradeoffs, etc. The guy was young around my age and we chatted up a bit after. This is probably the best I have ever done in a LC round (and under 20 minutes, too). One hour after this interview, the recruiter emails me to state that I am moving up to a full panel.
First Round - LeetCode
The interviewer was a few minutes late, and introductions ate up about 10 mins of the time. I was again asked a problem that I have never seen before, but I quickly recognized the brute force approach. However, the interviewer's connection was laggy and was a little hard to understand, and I feel I heard her say that the approach is inefficient (which it was). So I was like, okay, well I am not sure how to optimize this approach, but after thinking it through, I was actually able to provide a sub-optimal approach. Zero hints so far. This one was good enough to implement and she gave me the go-ahead. I wrote the solution in about 5 minutes using binary search. She mentioned that this approach was better than brute forcing, but asked if there were a better way to optimize this. I told her that I couldn't really think of anything right now, but I kept dry running test cases to see if I can find a pattern - I couldn't. She gave hints but after a while, she mentioned the optimal approach but asked me not to implement it. I guess that was probably it for her. I give this round a Lean Hire with a best case Hire rating. Not too bad, but I am not the best at Leetcode puzzles.
Second Round - System Design
The interviewer was very nice. Cracked a few jokes and laughed. I could not really understand him too well, but he seemed genuinely interested in my experience for a few minutes. We then go to the whiteboard and he gives me a prompt that literally describes to architect my current position's system architecture. Needless to say, I felt this round went amazing. We also chatted a little bit after the round. I would give this round a Strong Hire. I have never done better than this in a SD round.
Third Round - Engineering Manager
This interviewer was also very nice. We did not do introductions but she basically grilled me to the core on my database and architecture concepts - when to handle things like replication, caching, running migrations on production data, etc. We also discussed my previous projects and work experiences. I was asked how I used AI, and I answered in a very good way. But then she got deeper, and I was starting to fear that my lack of experience was starting to show. Either way, I think I answered correctly, but I might've missed more higher level concepts that I have not necessarily touched in my SWE career. I give this round a Hire rating, maybe small chance of a Strong Hire.
Fourth Round - HLD/LLD??
My recruiter mentioned that this round would consist of "application architecture". I immediately jumped to thinking that this round would be more OOP and LLD, so when I went into the interview, I had my assumptions all wrong. This was just another System Design round, and I did not realize that until he asked "How do we scale this?" and I felt like I was thrown a curveball 15 minutes in. I thought this was LLD since I was asked to design a parking lot system - one of the examples ubiquitously asked when doing LLD interviews. The good news was that when I do LLD I always break down the problem into Functional and Nonfunctional requirements, come up with entities, data structure, and algorithm before I start coding. I was SOMEHOW already half of the way there to design this system without even knowing I was needing to design a high level system. The problem was that I already spent a long time going into the low levels of the system that it made it sound like I was going too deep into low level by that point. I immediately abstracted my details from things like algorithms, low-level dependencies, and data structure to mentioning things like horizontal scaling, API endpoints, and components. I then decided to draw up my HLD and by this point I did not have much time left but the system was super easy, so I talked through my design decisions etc. I think this one was a Lean Hire just because of how much time was burnt going through LLD halfway. Probably the worst out of the 4 interviews.
Retrospective
I have not heard back yet as I have just finished my panel yesterday, but I do not anticipate an offer. I do not think I did good enough overall, especially on that last round. I did feel like I did exceptionally well in the technical screen/system design/EM round, but hey, negative marks drag you down much more than positive marks.
Needless to say that I think I am going to stay at my company a little longer. I never realized how bad you would have to go through the gauntlet to get into these positions, and hopefully have someone to not critique you massively on your negative marks. I will probably only target regular tech roles without the prestige or rigor of joining a big tech company. The experience was great nonethless, and I learned a lot