Summary
I applied for a Software Developer position at SAP in Palo Alto and went through a phone screen and a three-round onsite interview process, which unfortunately resulted in a rejection.
Full Experience
I applied through the company website on January 7, 2020. Shortly after, I received an email from a recruiter to schedule a phone screen.
Phone Screen (45 min Skype call with code share link):
This round was with an engineer from the software development team who had about 4 years of experience. We started with an ice breaker where I had to tell them about myself, followed by a discussion about my last project. For coding, I was asked two specific questions:
- Given a list of words and a string as input, I needed to identify if that string could be made from the given list of words. The challenge included frequency constraints; for example,
list_of_words = [“what”, “is”, “San Francisco”, “SAP”, “Job”], string – where is SAP locatedshould returnFalse. If a word appeared twice in the string but only once in thelist_of_words, it should also returnFalse. - The second question required me to find the minimum distance of every letter in a given word from a specified alphabet. For example, for
word = “sustainable”andalphabet = “a”, the expected output was[3,2,1,0,1,1,0,1,2,3].
I successfully cleared the phone screen and received an invitation for an onsite interview a week later.
Final Onsite Interview:
The onsite consisted of three distinct rounds: two technical interviews focusing on coding and system concepts, and a final behavioral interview with a hiring manager.
Round 1 (approx. 55 minutes):
This round covered a mix of topics and questions:
- Tell me about yourself.
- What are Classes and objects?
- What is the use of the
finalkeyword in Java? - What are JRE and JVM?
- Explain your last project, including any problems you faced.
- Coding Question: Two Sum.
- Coding Question: Design an LRU Cache.
Round 2 (approx. 45 minutes):
This round began with questions about my projects listed on my resume and challenges I had encountered. Following this, I was given a coding question:
- Design a stack that supports a
find minfeature along with regularpushandpopoperations, with the constraint that the complexity of all these operations should be O(1).
Round 3 (30 minutes with hiring manager):
This round was more conversational. The manager and I chatted about how the day was going and they explained details about the team and the work. They inquired about my future goals, how I resolve conflicts with teammates (asking for specific examples), and my expectations for the role.
Despite what I felt was a strong performance, I received a rejection three weeks later. This was, in my opinion, the best interview I’ve given, having correctly answered all coding questions and Java-specific questions. I was quite confident about the outcome, so this rejection, my second that week, was disappointing. I am hopeful that next time will be my time.
Interview Questions (15)
Given a list of words and a string as input, identify if that string can be made from the given list of words. For example: list_of_words = [“what”, “is”, “San Francisco”, “SAP”, “Job”], string – where is SAP located. For this case, you should return False. Additionally, if there are two occurrences of a word in the string but only one occurrence in the list_of_words, then you should also return False.
Find the minimum distance of every letter in the given word from a given alphabet. Example: word = “sustainable” and alphabet = “a”. You should return [3,2,1,0,1,1,0,1,2,3]. Explanation: The distance of 's' at index 0 to the nearest 'a' (at index 4) is 3, and so on.
Tell me about yourself.
Explain your last project, including any problems faced.
What are Classes and objects?
What is the use of the final keyword in Java?
What are JRE and JVM?
Given an array of integers, find two numbers that add up to a specific target.
Design a Least Recently Used (LRU) cache. Implement the get and put operations with optimal time complexity.
Discuss projects listed on your resume.
Discuss challenges faced in your projects or roles.
Design a stack which supports push, pop, top, and retrieving the minimum element in constant time (O(1)).
Discuss your future goals.
Describe how you resolve conflicts with your teammates, providing specific situations if you have faced any.
Discuss your expectations for the role.