Summary
I interviewed for a Staff/Senior Backend Engineer role at YouTrip, ultimately being offered a Senior Backend Engineer position which I declined due to compensation. My interview rounds included coding with Jump Game, and system design challenges such as designing a Booking Management System and an e-commerce application.
Full Experience
YOE: 8+ years
Prep time: ~3 months
Bar Raiser Round
Coding Question:
- LeetCode – Jump Game
- Also included a few questions about my recent projects.
Verdict:
- Self-assessment: Hire
- Actual: Hire
Notes:
- The coding question was straightforward.
- Be prepared to discuss real-world decisions in your past projects.
Hiring Manager Round (In Person)
Format:
- General discussion about projects I’ve worked on.
- Design a Booking Management System.
Focus Areas:
- DB schema design.
- Querying strategies.
- Scalability considerations.
My experience:
- Did well on DB design and querying parts.
- Completely messed up the scalability explanation.
- This was my first in-person interview in a long time and the anxiety level shot up. :(
- HM was helpful and gave hints to steer me back on track.
Verdict:
- Self-assessment: No Hire
- Actual: Lean Hire
Reflection:
- Even if you struggle, staying calm and accepting hints can help recover.
- Interviewers often appreciate willingness to learn and adapt.
- Read about CAP theorem and how to use in real life applications.
- Read about distributed systems. Learning this book is a big must in clearing Design rounds.
System Design Round
Prompt:
Design an e-commerce application.
Focus Areas:
- Database design.
- Scalability trade-offs.
- Minimal focus on APIs.
- Queuing requests.
- Using Redis to improve latency.
Suggestions:
- Be ready to dive deep into scalability.
- Think through failure scenarios:
- What happens if Redis goes down?
- How would you ensure replication and fault tolerance?
- Clearly articulate trade-offs and fallback plans.
Final Result
- Overall decision: Hire
- Role: Senior Backend Engineer (not Staff Engineer)
Notes:
- Happy with their decision to move forward with the Senior role.
- Ultimately had to reject the offer due to compensation issues.
Key Takeaways
- For coding rounds, keep your fundamentals sharp.
- For HM/System Design rounds:
- Be comfortable explaining DB schemas in detail.
- Don’t neglect scalability.
- Practice talking about replication, caching, queuing, and failure handling.
- In-person interviews can feel different—consider doing mock interviews if you’re out of practice.
- Even if you feel you did poorly, interviewers may still see potential if you show you can learn and adapt.
I hope this post helps others in their preparation. Feel free to reach out if you'd like more detail about any round!
Interview Questions (3)
Design a Booking Management System, focusing on DB schema design, querying strategies, and scalability considerations.
Design an e-commerce application, with focus areas including database design, scalability trade-offs, queuing requests, and using Redis to improve latency. I was also expected to think through failure scenarios like Redis going down and how to ensure replication and fault tolerance.
Preparation Tips
I prepared for approximately 3 months.
My preparation involved:
- Keeping fundamentals sharp for coding rounds.
- For Hiring Manager and System Design rounds, I focused on:
- Being comfortable explaining DB schemas in detail.
- Not neglecting scalability.
- Practicing talking about replication, caching, queuing, and failure handling.
- I also recommend reading about CAP theorem and its real-life applications.
- Studying distributed systems, especially the book from https://dataintensive.net/, is crucial for clearing design rounds.
- If out of practice with in-person interviews, consider doing mock interviews.
Summary
I interviewed for a Senior Software Engineer position at YouTrip in Singapore and was ultimately rejected due to my performance in the System Design round. Despite the rejection, I appreciated the detailed feedback provided by the recruiter.
Full Experience
I recently went through the interview process for a Senior Software Engineer position at YouTrip in Singapore. The process started with an initial discussion with the recruiter about the job description and what to expect in the upcoming rounds. Following that, I completed a HackerRank assessment where I tackled two LeetCode medium-level problems.
The first coding round involved solving two distinct problems: one focused on finding duplicate values within an array, and another challenging problem about constructing the longest possible string using specific building blocks like "AA," "BB," and "AB."
The system design round was particularly interesting, as it revolved around enhancing an existing eCommerce system to handle an upcoming flash sale, similar to preparing Amazon for a new iPhone launch. Unfortunately, my performance in this round led to my rejection. However, I am grateful for the recruiter's detailed feedback, which highlighted areas for my improvement, particularly in being more precise and concise during system design discussions.
Interview Questions (3)
Given an array, find all duplicate values present within it.
Given three types of substrings: 'AA', 'BB', and 'AB', construct the longest possible string using these substrings.
Design and discuss improvements for an existing eCommerce system to prepare it for an upcoming high-traffic flash sale, such as the launch of a new iPhone on Amazon. Focus on scalability, reliability, and handling peak loads.
Preparation Tips
My key learning from this experience is the importance of being precise and concise during system design discussions. I need to focus on structuring my thoughts better and communicating design decisions more effectively, especially when preparing for high-traffic scenarios like flash sales in an eCommerce system.