InterviewStack.io LogoInterviewStack.io
Interview Prep13 min read

Software Engineer OOP Interview: One Class, Too Many Jobs

A meeting-room booking scenario shows where mid-level engineers lose points in a Software Engineer OOP interview: one god class, not a missing SOLID buzzword.

IT
InterviewStack TeamEngineering
|

A God Class Is the Fastest Way to Fail This OOP Interview

Ask a mid-level Software Engineer to design a meeting-room booking system, and most of them sketch a solid Room class and a solid Reservation class within the first few minutes. Then, under a live follow-up, they funnel almost every rule (approvals, recurring-date conflicts, equipment constraints, cancellation logic) into one class that quietly starts doing everyone else's job. That single habit, not a missing SOLID buzzword, is the fastest way to lose points in this interview.

This walkthrough follows the real blueprint InterviewStack.io's AI mock interview runs for a mid-level Software Engineer object-oriented design round: a 30-minute, four-phase session scored against a 100-point rubric. Quinn, a mid-level engineer with four years of experience, works through it live. Watch where the design starts leaning on one overloaded class instead of the objects that should own the rules themselves.

Key Findings

  • Interviewer Objectives Alignment and Level-Specific Expectations each carry 30 of the interview's 100 points, 60% of the score, before Technical Proficiency (20 points) or Communication and Problem Solving (20 points) even enter the picture.
  • The interview runs 30 minutes across 4 phases; the core object model design phase alone claims 12 of those minutes, 40% of the total time.
  • 16 checklist items span the 4 phases: 4 in framing, 5 in core design, 4 in extensibility, 3 in wrap-up. Core design carries more checklist weight than any other phase.
  • Phases 2 and 3 together (core design plus extensibility) span 21 of the 30 minutes, 70% of the interview, and both score how the object model handles change, not how fast it was typed.
  • The blueprint explicitly rules out 4 adjacent domains: distributed systems scaling, SQL implementation detail, frontend UI/UX, and machine learning, so every point is scored on object-oriented modeling judgment.
  • The wrap-up phase is just 3 of the 30 minutes, but it still carries 3 checklist items, including naming what you would implement first and why.
  • Mid-level candidates are explicitly not required to name design principles formally; the rubric only requires demonstrating them in practice.

What Does a Software Engineer Object-Oriented Programming and Design Interview Actually Score?

Quinn opens the call. The interviewer shares this scenario:

The interview question

Imagine you're working on a product engineering team at a large consumer tech company. The team owns the backend service for a shared meeting-room booking system used across many office locations. Employees can search for rooms, create reservations, cancel them, and office admins can mark rooms unavailable for maintenance. Different room types have different policies: some require admin approval for large gatherings, some allow recurring bookings, and some have equipment constraints.

You are not being asked to design distributed infrastructure or APIs in detail. Focus on the object model and how you would structure the code so the system is easy to maintain as new room policies and booking rules are added.

How would you design the core object-oriented model for this meeting-room booking system?

Beneath that prompt sits the interviewer's real objective: can Quinn model a realistic domain, justify class boundaries and responsibilities, apply core OOP concepts (encapsulation, inheritance versus composition, polymorphism), and use maintainability principles like SOLID in a practical setting, without being asked to name any of it formally. That is what the checklist behind the scenario actually scores, not the vocabulary Quinn uses to describe it.

Turn by Turn: Where Quinn's Design Falls Apart

Four follow-ups over the next several minutes decide whether Quinn's design holds up. Here is where it starts to bend.

Turn 1: Where Does the Rule Live?

Interviewer: "How would you decide which behaviors belong on a Reservation, a Room, or a separate policy/service object?"

COMMON MISTAKE
Quinn's answer routes almost every rule through a single ReservationManager that treats Room and Reservation as little more than data holders, deciding validity itself instead of letting the objects enforce their own rules. That is the god-object, anemic-model pattern the rubric calls out under Level-Specific Expectations, and it misses the Phase 2 checklist item on avoiding one manager or service class that owns all the logic.
STRONGER MOVE
A stronger split gives Reservation and Room real behavior: Reservation validates its own time-slot conflicts, Room tracks its own availability. A separate BookingPolicy object owns the rules that vary by room type. The service layer becomes a thin coordinator that calls those objects, not the place where the rules actually live.

Turn 2: Policies Without a Growing If/Else

Interviewer: "If the business later adds new booking policies for different office locations, how would your design support that without creating a large conditional-heavy reservation flow?"

COMMON MISTAKE
A common answer branches on room.type with a growing if/else chain to decide which approval or recurring rules apply to each booking. That is precisely the conditional-heavy flow this follow-up is testing for, and it misses the Phase 3 checklist item on adding a new room policy with limited impact to existing classes.
STRONGER MOVE
Model each rule as its own policy object (an approval policy, a recurring-allowed policy, an equipment-constrained policy) attached to a room or room type, then evaluate them polymorphically instead of branching on a type field. Adding a new office-specific policy later means writing one new class, not editing the reservation flow at all.

Turn 3: The Company-Wide Override

Interviewer: "If admins can temporarily override normal room rules during company-wide events, what changes would you make to keep the design extensible?"

COMMON MISTAKE
Many candidates add a single isCompanyWideEvent flag checked deep inside the reservation-creation method, bypassing the normal policy objects for the event window. That scatters a business rule into orchestration code instead of the domain model, exactly what the Phase 3 checklist flags under recognizing where business rules should live versus what stays orchestration logic.
STRONGER MOVE
Model the override as a temporary policy that wraps or replaces a room's normal BookingPolicy for a scoped time window, so the reservation flow never has to know an override exists. Naming that trade-off out loud (one more layer of indirection in exchange for touching zero existing policy classes) is also worth credit under Communication and Problem Solving.

Turn 4: Where Invariants Actually Live

Interviewer: "What invariants would you enforce inside your objects to prevent invalid state, and where would you avoid over-embedding business logic?"

COMMON MISTAKE
Quinn pushes validation up into the API layer, checking for conflicts before calling into Reservation or Room, so any other code path that touches those objects directly can leave the system in an invalid state. That contradicts the expectation that domain rules are enforced through object behavior rather than exposed as mutable state, and it repeats the same responsibility gap Turn 1 already cost.
STRONGER MOVE
Enforce the core invariants inside the objects themselves: a Reservation's own state-transition method rejects a conflicting time slot, and Room exposes a markUnavailable() method rather than a public status field anyone can overwrite. Keep the service layer for genuine orchestration, coordinating calls and side effects, never re-implementing rules the objects already own.

What Happens When Nobody Interrupts You for 21 Minutes?

Every mistake above is easy to catch on the page: the fix sits one line below the problem. Under the actual interview, core design and extensibility run together for 21 straight minutes, and the interviewer keeps adding constraints (a new policy, an override, an invariant) exactly when the design is furthest from finished. Reading the composition-over-conditionals lesson once does not make it automatic when a follow-up lands mid-sentence and the class list is already half-drawn.

That gap between recognizing a mistake and not making it, live, under a follow-up nobody scripted for you, only closes with reps. A real session runs the same four-phase, 100-point rubric described above, with unscripted follow-ups timed the way this one was.

What Does the AI Interviewer Track Across All Four Phases?

The chart below paces the same 30 minutes Quinn just sat through.

30-minute interview timeline showing four phases: Problem Framing and Domain Discovery at 0-6 minutes, Core Object Model Design at 6-18 minutes, Extensibility, Edge Cases, and Trade-Offs at 18-27 minutes, and Wrap-Up and Implementation Realism at 27-30 minutes

Twelve of the thirty minutes, 40% of the interview, go to building the core object model. That is also where the most checklist items live.

Blueprinta strong 30-minute interview, phase by phase
1
Problem framing and domain discovery 0-6
  • Asks 2-4 targeted clarifying questions about booking rules, approvals, recurring reservations, or admin overrides.
  • States reasonable assumptions when requirements are unspecified.
  • Identifies primary actors and entities before diving into class details.
  • Keeps discussion centered on maintainable code structure, not distributed systems.
2
Core object model design 6-18
  • Proposes a coherent set of core classes or interfaces with clear responsibilities.
  • Describes important relationships such as room availability, reservation lifecycle, and policy evaluation.
  • Avoids pushing all logic into one manager/service class or one anemic data model.
  • Uses composition or pluggable policy objects for variable booking rules, approvals, or equipment constraints.
  • Explains how object methods enforce state transitions such as create, approve, cancel, or mark unavailable.
3
Extensibility, edge cases, and trade-offs 18-27
  • Can explain how to add a new room policy or reservable resource with limited impact to existing classes.
  • Handles at least 2 realistic edge cases such as conflicting reservations, partial recurring booking success, maintenance blocks, or approval workflows.
  • Articulates at least one trade-off between simplicity and flexibility in the proposed design.
  • Recognizes where business rules should live versus what should remain orchestration logic in services.
4
Wrap-up and implementation realism 27-30
  • Summarizes the final design in a concise, structured way.
  • Calls out one or two parts they would implement first and why.
  • Acknowledges any assumptions or intentionally deferred concerns.

This is the exact blueprint InterviewStack.io's AI mock interview tracks you against in real time, phase by phase, checklist item by checklist item, whether or not you ever say the word polymorphism out loud.

The scoring weights explain why framing and judgment outweigh raw code output.

Bar chart of rubric scoring weights showing Interviewer Objectives Alignment at 30 points, Level-Specific Expectations at 30 points, Technical Proficiency at 20 points, and Communication and Problem Solving at 20 points

Technical Proficiency and Communication together hold 40% of the score. The other 60% is whether the object model matched what was asked and what a mid-level engineer should demonstrate.

Run This Scenario Yourself

Reading Quinn's session is not the same as running it. Start the AI mock interview for object-oriented design and programming and work through the same meeting-room booking scenario, scored live against all four rubric dimensions above.

Before going live, drilling individual questions in the Software Engineer object-oriented design question bank builds the vocabulary to name responsibility boundaries and trade-offs confidently under pressure. For a structured preparation plan, the Software Engineer preparation guides cover additional practice paths. If you are also prepping algorithmic rounds, the data structures and complexity walkthrough covers a different 30 minutes of the same Software Engineer loop.

FAQ

Q. What does a Software Engineer object-oriented design interview actually evaluate?

InterviewStack.io's AI mock interview scores this scenario on four dimensions worth 100 points total: Interviewer Objectives Alignment and Level-Specific Expectations at 30 points each, and Technical Proficiency and Communication and Problem Solving at 20 points each. The interviewer is checking whether you can model a realistic domain, justify class boundaries, and reason about trade-offs, not whether you can recite a textbook definition of encapsulation.

Q. Do I need to name SOLID principles and design patterns out loud to score well?

No. The blueprint's level-specific expectations explicitly state a mid-level candidate should demonstrate practical use of OOP and design principles without needing to name every principle formally. What actually gets scored is whether your class boundaries hold up when the interviewer adds a new policy or edge case, not whether you say Strategy pattern or Open-Closed Principle out loud.

Q. How should partially successful recurring bookings be modeled?

This is one of the interview's Phase 3 edge cases: some dates in a recurring series conflict while others do not. A clean model treats each occurrence as its own bookable unit with its own status, rather than one Reservation object forced into a single all-or-nothing state, so the series can report which dates succeeded and which failed without special-casing the response.

Q. What should be reused if the system later adds desk booking, not just rooms?

The interview's final follow-up asks exactly this. The reusable layer is usually the reservation lifecycle and policy evaluation logic (creating, approving, canceling, checking availability), since that behavior is resource-agnostic. What should stay separate is anything that assumes a Room specifically, like equipment constraints or floor-based availability, which a Desk would model differently.

Q. How long is this interview and how is the time split across phases?

It runs 30 minutes across four phases: 6 minutes on problem framing and domain discovery, 12 minutes (40% of the interview) on core object model design, 9 minutes on extensibility and edge cases, and a 3-minute wrap-up. The core design phase alone carries 5 of the interview's 16 total checklist items, more than any other phase.

Q. Is this interview about system design or infrastructure?

No. The blueprint explicitly excludes distributed systems scaling and sharding, database query optimization or SQL implementation, frontend UI and UX design, and machine learning or forecasting approaches. Every minute of the 30 is scored on object-oriented modeling judgment: class boundaries, responsibility placement, and extensibility, not infrastructure.

The Object Model Is the Whole Interview

A mid-level Software Engineer does not need to recite SOLID by name to pass this interview. Reservation, Room, and BookingPolicy need to hold their own rules, stay coherent when the interviewer adds one more constraint, and keep the service layer thin. That is the entire 30 minutes, phase by phase, and the only way to know if a design actually holds is to run it live.

Topics

software engineerobject-oriented designoop interviewcoding interview prepsystem design interviewsolid principlesmock interviewinterview prep 2026

Ready to practice?

Put what you've learned into practice with AI mock interviews and structured preparation guides.