May 27, 2024
Object Oriented System Design Interviews
LeetCode alone won't cut it anymore for job interviews. SWE-1 roles are getting harder to come by, and companies now ask design questions even to junior candidates. They basically want every engineer to have the skills of an experienced SWE-2 or higher.
Here are the two main types of design questions you'll encounter:
- Object-oriented design is about how you structure classes and patterns within a single computer.
- Distributed system design is about how you structure services that run across many different computers.
Both types might tackle similar problems, like booking a hotel or matching riders with drivers, but at different scales. Because of these similarities, you should:
- Clarify the requirements: Who are the users? What operations will they perform?
- Design the data and relationships: This could be object-oriented code, a database schema, or an ER diagram.
- Walk through how the components interact: Explain the flow from start to finish.