Coupa Software | Interview Experience | Full-Time
Summary
I successfully secured a Full-Time SDET offer from Coupa Software after an off-campus application process. My interview journey included an online assessment followed by three technical rounds, encompassing a diverse range of topics from Data Structures and Algorithms, SQL, and System Design to web concepts, REST APIs, and puzzles.
Full Experience
Coupa Software SDET Interview Experience | Full-Time (Fresher)
I applied off-campus and here’s a breakdown of my experience:
Online Assessment (OA):
The process started with an OA round consisting of some MCQs and 3 coding questions of easy to medium difficulty.
Interview Rounds:
On the interview day, I had 3 rounds of interviews, each lasting 1 hour with an hour’s interval between them.
1st Round:
- I was asked to find the missing integer in an array.
- We had a discussion on OOPs concepts like Inheritance, and the difference between Abstraction and Encapsulation.
- I answered technical questions related to class-based vs functional components.
- Concepts like cookie vs local storage vs session storage were discussed.
- I was asked about Redux Toolkit and how it works.
- The interviewer explored my projects and work experience.
- There were database-related queries, including schema design and API calls.
2nd Round:
- I was given a challenging SQL query that required finding average price with some joins.
- I was asked about Radix Sort.
- There were questions on REST APIs, including PUT vs PATCH and GET vs POST methods.
- The discussion focused on database optimization.
- We had a discussion on MySQL vs MongoDB—when to use each, and I was given a situation involving a website to decide which database would be more suitable and why.
- I designed an LLD (Low-Level Design) for an elevator system.
- More questions were asked about my previous projects.
3rd Round:
- We discussed my work at the previous company.
- Continued focus on database optimization and API calls.
- I answered questions on debouncing, lazy loading and Caching.
- I solved the problem: Longest Substring Without Repeating Characters.
- I also solved the classic jar puzzle (link: Find the Jar with Contaminated Pills).
- I walked through the frontend code of my projects.
- We explored polymorphism, with a focus on the virtual keyword.
- Finally, the question Why Coupa? was asked to wrap things up.
It was a mix of DSA, SQL, system design, REST API concepts, and puzzles, with a strong focus on my past experience and projects.
I received the offer on the same day, just 1.5 hours after completing the interviews! I am grateful for the opportunity to learn and grow through this process and super excited to start my journey with Coupa Software!
Interview Questions (16)
I was tasked with finding the missing integer within a given array.
I had a discussion on core Object-Oriented Programming (OOPs) concepts, specifically focusing on Inheritance and the distinctions between Abstraction and Encapsulation.
I answered technical questions comparing and contrasting class-based and functional components.
I discussed the differences and use cases for cookies, local storage, and session storage.
I explained how Redux Toolkit works and its core principles.
I answered questions related to database schema design.
I was given a challenging SQL query problem that involved calculating the average price, requiring the use of database joins.
I explained the Radix Sort algorithm and its working principles.
I discussed various REST API concepts, including the differences between PUT and PATCH, and GET versus POST methods.
I answered questions focusing on various database optimization techniques.
I discussed the trade-offs and appropriate use cases for MySQL and MongoDB. I was also presented with a scenario involving a website and asked to justify which database would be more suitable and why.
I was tasked with designing a Low-Level Design (LLD) for an elevator system.
I discussed concepts such as debouncing, lazy loading, and caching mechanisms.
I discussed polymorphism in Object-Oriented Programming, specifically focusing on the use and implications of the virtual keyword.