# Software Engineer
**Role:** Software Engineer · **Level:** MG5
**Company:** [Mercari](https://scaleengineer.com/companies/mercari)
**Difficulty:** Medium to Hard
**Salary:** US$120000 - US$150000
**Experience:** 5 - 8
**Timeline:** ~14 days
Mercari is looking for a talented Software Engineer at the MG5 level to join our dynamic team. This role involves designing, developing, and maintaining scalable and high-performance software solutions that power our e-commerce platform. You will collaborate with cross-functional teams to deliver innovative features and contribute to the continuous improvement of our engineering practices.
Canonical: https://scaleengineer.com/interviews/mercari/mg5-software-engineer
---
## Overall evaluation

- Technical Skills
- Leadership & Ownership
- Product & Business Acumen
- Behavioral & Cultural Fit

## Questions asked

- Describe a complex system you designed or contributed to. What were the key challenges and how did you address them?
- How would you design a recommendation engine for Mercari?
- Given a scenario with high traffic, how would you ensure system stability and performance?
- Tell me about a time you disagreed with a technical decision. What did you do?
- How do you approach code reviews?
- What are your favorite programming languages and why?
- Explain the concept of eventual consistency.
- How would you design a notification system for user activity?
- Describe a situation where you had to learn a new technology quickly.

## Preparation tips

### lists

- Review core computer science concepts: data structures, algorithms, operating systems, databases.
- Practice coding problems on platforms like LeetCode, HackerRank, focusing on medium to hard difficulty.
- Study system design principles and common patterns for scalable applications.
- Understand Mercari's business, products, and recent news.
- Prepare examples for behavioral questions using the STAR method (Situation, Task, Action, Result).
- Research Mercari's engineering blog and tech stack.
- Practice explaining your thought process clearly and concisely.

### studyPlan

- {"title":"Data Structures & Algorithms","longDescription":"Weeks 1-2: Focus on Data Structures and Algorithms. Cover arrays, linked lists, trees, graphs, hash maps, sorting, searching, dynamic programming, and greedy algorithms. Practice implementing these and analyzing their time and space complexity.","shortDescription":"Weeks 1-2: DSA fundamentals and practice."}
- {"title":"System Design","longDescription":"Weeks 3-4: Dive into System Design. Study concepts like scalability, availability, reliability, load balancing, caching, database design (SQL vs. NoSQL), message queues, and microservices architecture. Work through common system design interview questions.","shortDescription":"Weeks 3-4: System Design principles and patterns."}
- {"title":"Behavioral Preparation","longDescription":"Week 5: Prepare for Behavioral and Situational Questions. Reflect on your past experiences related to teamwork, problem-solving, leadership, conflict resolution, and handling failure. Use the STAR method to structure your answers.","shortDescription":"Week 5: Behavioral questions and STAR method."}
- {"title":"Company Research & Mock Interviews","longDescription":"Week 6: Company Research and Mock Interviews. Understand Mercari's mission, values, products, and recent developments. Conduct mock interviews with peers or mentors to simulate the actual interview environment and get feedback.","shortDescription":"Week 6: Company research and mock interviews."}

## Location differences

- {"location":"Tokyo","differences":{"tips":["Be prepared to discuss large-scale system design principles.","Highlight your experience with distributed systems and cloud technologies.","Showcase your ability to lead and mentor other engineers.","Emphasize your understanding of Mercari's business and how technology supports it."],"interviewFocus":["System Design","Scalability","Problem-Solving","Leadership and Mentorship"],"commonQuestions":["How would you design a system to handle real-time inventory updates for millions of products?","Describe a challenging technical problem you faced and how you solved it.","What are your thoughts on microservices vs. monolithic architecture for an e-commerce platform?","How do you ensure the scalability and reliability of your code?","Tell me about a time you had to mentor a junior engineer."]}}
- {"location":"Remote","differences":{"tips":["Focus on practical problem-solving and coding skills.","Be ready to discuss your experience with specific technologies relevant to Mercari's stack.","Demonstrate your ability to collaborate effectively with product managers and designers.","Prepare examples of how you've driven technical initiatives and influenced outcomes."],"interviewFocus":["API Design","Database Optimization","Product Sense","Collaboration and Influence"],"commonQuestions":["Design an API for a feature that allows users to follow other users.","How would you optimize a database query that is causing performance issues?","Discuss your experience with A/B testing and its impact on product development.","What are your strategies for debugging complex issues in a production environment?","Describe a situation where you had to influence a technical decision."]}}

## Round 1: Coding Challenge
**Type:** Technical Interview (Coding) · **Difficulty:** Medium · **Duration:** 45 min
Assess coding skills and problem-solving abilities with data structures and algorithms.
This round focuses on your fundamental coding skills. You will be asked to solve one or two coding problems, typically involving data structures and algorithms. The interviewer will assess your ability to write clean, efficient, and correct code, as well as your problem-solving approach and communication skills. Be prepared to explain your thought process, discuss time and space complexity, and consider edge cases.
**Interviewers look for:** Clean, well-structured, and efficient code.; Logical and systematic approach to problem-solving.; Ability to explain trade-offs of different solutions.; Good debugging skills.
**Evaluation criteria:** Coding proficiency; Problem-solving approach; Understanding of data structures and algorithms; Code clarity and efficiency
**Common rejection reasons:** Inability to articulate thought process clearly.; Lack of fundamental data structures and algorithms knowledge.; Poor coding practices (e.g., inefficient solutions, lack of error handling).; Difficulty in debugging code.
## Questions

- Given an array of integers, find the contiguous subarray with the largest sum.
- Implement a function to reverse a linked list.
- Find the kth smallest element in a binary search tree.

## Preparation tips

- Practice coding problems on platforms like LeetCode.
- Focus on understanding the underlying data structures and algorithms.
- Practice explaining your solutions out loud.
- Be ready to write code on a whiteboard or shared editor.

## Round 2: System Design
**Type:** System Design Interview · **Difficulty:** Hard · **Duration:** 60 min
Assess ability to design scalable and robust software systems.
This round evaluates your ability to design and architect complex, scalable systems. You'll be presented with an open-ended problem, such as designing a specific feature or a large-scale service. The interviewer will assess your understanding of distributed systems, databases, caching, load balancing, and other relevant technologies. Focus on clarifying requirements, proposing a high-level design, and then diving deeper into specific components, discussing trade-offs and potential bottlenecks.
**Interviewers look for:** Ability to break down complex problems into smaller components.; Knowledge of various architectural patterns and technologies.; Consideration of non-functional requirements (scalability, reliability, availability).; Clear communication of design choices and justifications.
**Evaluation criteria:** System design capabilities; Scalability and performance considerations; Understanding of distributed systems; Trade-off analysis; Problem-solving in a large-scale context
**Common rejection reasons:** Inability to design scalable and robust systems.; Lack of understanding of distributed systems concepts.; Poor trade-off analysis.; Not considering failure scenarios or edge cases.
## Questions

- Design a URL shortening service like bit.ly.
- Design a real-time notification system.
- How would you design a system to handle millions of concurrent users for a live streaming service?

## Preparation tips

- Study system design concepts and common patterns.
- Practice designing systems like Twitter feed, URL shortener, etc.
- Understand trade-offs between different technologies (e.g., SQL vs. NoSQL, REST vs. gRPC).
- Think about scalability, availability, and reliability from the start.

## Round 3: Behavioral & Manager Interview
**Type:** Behavioral Interview · **Difficulty:** Medium · **Duration:** 45 min
Assess behavioral competencies, teamwork, and cultural fit.
This round focuses on your past experiences, behavioral competencies, and cultural fit. You will be asked questions about how you've handled specific situations in previous roles, such as dealing with conflict, managing challenging projects, or working in a team. Use the STAR method (Situation, Task, Action, Result) to provide clear and concise answers backed by specific examples. The interviewer will also assess your motivation, career aspirations, and alignment with Mercari's values.
**Interviewers look for:** Examples of teamwork, leadership, and conflict resolution.; Honesty and self-awareness.; Alignment with Mercari's values.; Passion for technology and the company's mission.
**Evaluation criteria:** Behavioral competencies; Teamwork and collaboration; Problem-solving approach in past experiences; Cultural fit; Motivation and career goals
**Common rejection reasons:** Poor communication or collaboration skills.; Lack of alignment with company values.; Inability to provide specific examples for behavioral questions.; Negative attitude or lack of enthusiasm.
## Questions

- Tell me about a time you had to work with a difficult colleague.
- Describe a project where you took initiative or leadership.
- How do you handle constructive criticism?
- Why are you interested in Mercari and this specific role?

## Preparation tips

- Prepare examples for common behavioral questions using the STAR method.
- Reflect on your strengths, weaknesses, and career goals.
- Research Mercari's company culture and values.
- Be prepared to ask thoughtful questions about the role and the team.
