- Published on
Amazon (AWS) | SDE2 | Herndon VA | July 2024 [Offer]
- Author
- Shared Anonymously
I interviewed for the AWS SDE2 position in the US in July 2024. Here is my experience:
YoE: 3 (2 in US)
- Jun 13: Randomly applied for the SDE2 role in AWS.
- Jun 14: Got an email to complete the assessment.
- Jun 16: Assessment day.
- Jun 17: Got an email from the recruiters with interview preparation material and asking for availability for an interview loop.
- Jul 1
- Round 1 (Hiring Manager)
- 30 min : Basic standard 2 Leadership Principles (LP) questions.
- HLD : Design Kindle. The focus was on how to sync page offsets among multiple Kindle devices, i.e., ensuring a user starts reading from page 100 of a book on one device if they were on page 100 of the same book on another device.
- Round 2
- 25 min: Basic standard 2 LP questions.
- Implement a String formatter : Given a string and a list of replacements as input, return the formatted string by replacing the valid indices with the appropriate replacement string from the given list.
- input = "Sample{{ {1}, {0}{1}", replacements = ["alice", "Bob"] => output = "Sample{{ Bob, aliceBob"
- input = "Sample {1}", replacements = ["alice"] => throw an exception
- Throw an exception is any invalid case.
- Jul 2
- Round 3 (Bar Raiser)
- 25 min: Basic standard 2 LP questions.
- An ambiguous problem that ultimately boiled down to the Number of Islands (0-1 matrix) problem.
- Original problem: Return number of clusters (components)
- Follow-up problem: Return a list of the size of each cluster.
- Round 4
- 20 min: Basic standard 2 LP questions.
- Same as this. Interviewer's expectation here is to come up with O(N) approach. I used the idea behind polynomial rolling hash to store the sequence of visited pages to reduce the complexity and then suggested to reduce the collision probability by using multiple hash combinations. The interviewer seemed impressed with my approach.
- Jul 9: Verdict: Offer
From my perspective, I knew that I had nailed all the rounds except the HLD round. I was a bit concerned that I might not have met the interviewer's expectations. However, the recruiter later informed me that the hiring manager was impressed with my performance in that round. She also mentioned that my responses to the LP questions were very impressive, leading the interview panel to offer me the position without any hesitation.
A few things I experienced, followed, and kept in mind:
- LP questions are relatively easy to answer if you have prepared your stories well (12-15 should be sufficient). Fortunately, I was able to use all my strong stories for the eight questions asked, without needing additional stories. You are allowed to keep a small note or window open with the title of your LP stories in front of you during the interview. Take your time, ask them to repeat the question or paste it in the chat if needed, and go through your list of stories to find the most suitable one.
- While answering LP questions, try to follow the STAR approach. However, you don't need to strictly adhere to it. I focused on improving my storytelling skills and keeping the conversation engaging.
- Always mention the results in metrics. Initially, I wasn't ending my stories properly with results, and this was the only feedback I received during a mock LP interview with the recruiter.
- During the interview, assume you are talking to a colleague rather than an interviewer. This helps eliminate nervousness. If needed, give as many mock interviews as possible to develop this habit.
- Act as a software engineer, not just a programmer. Ask many questions, clarify the requirements first, come up with multiple approaches, discuss efficiency and tradeoffs, and let the interviewer know which approach you prefer. Get confirmation before jumping into the code. My recruiter mentioned that candidates are sometimes rejected for jumping directly to coding without thorough discussion even if they come up with the best possible solution.
- Communicate properly with the interviewer and discuss even the smallest thoughts that come to mind. Keep the conversation engaging.
- Have a decent typing speed and get used to the design tool you will use during the interview. It's not necessary to be super fast, but make sure you are efficient enough and not wasting a single second due to this slowness. This way, I usually had at least 10 minutes to chill and discuss more things with the interviewer about the culture, problems solved, and the environment at the team/AWS.
- Don’t be nervous; keep the interview day as part of your regular routine. For example, I went for my usual morning run on interview days, which made me feel active and reduced nervousness.
- Just chill!
All the best!
Report • Mark as Helpful