← Oracle Interview Insights

Oracle·Software Engineer·Onsite - System Design / Architecture·Intermediate

IntermediatePrefer not to say
May 2026

Summary

Oracle SE interview that mixed a meaty system design question with a resume deep dive in the same round. The design problem was a hospital appointment booking API with a lot of moving parts, and you had to be ready to pivot to talking about past projects on the spot.

Questions Asked (2)

Q1

Design and implement a hospital appointment booking API. Walk through the endpoints you'd expose, the data model, and how you'd handle things like doctor availability, time slot management, and booking conflicts.

System DesignAPI & IntegrationsData Modeling
Author's notes

This one sprawled fast.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and constraints (e.g., scale, multi-tenancy, real-time vs. batch). Then walk through the API endpoints, data model, and concurrency handling for booking conflicts, emphasizing transactional integrity and idempotency. Finally, discuss trade-offs and potential optimizations like caching or event-driven updates.

Pro tip: Highlight how you'd prevent double-booking using database transactions with appropriate isolation levels (e.g., SERIALIZABLE) or optimistic locking, and mention idempotency keys for safe retries. This shows you understand real-world concurrency pitfalls beyond basic CRUD.

1. Clarify Requirements and Scope

Ask about expected scale, user roles (patients, doctors, admins), and whether real-time updates are needed. Define core use cases: search doctors, view availability, book/cancel appointments.

2. Design API Endpoints

Outline RESTful endpoints: GET /doctors, GET /doctors/{id}/availability, POST /appointments, GET /appointments/{id}, DELETE /appointments/{id}. Include query parameters for filtering by specialty, date, etc.

3. Define Data Model

Propose entities: Doctor, Patient, Appointment, and Availability/Schedule. Specify key fields, relationships, and indexes (e.g., unique constraint on doctor_id + start_time to prevent overlaps).

4. Handle Availability and Booking Conflicts

Explain how to compute available slots from doctor schedules and existing appointments. For booking, use transactions with row-level locking or optimistic concurrency to avoid double-booking, and return 409 Conflict on failure.

5. Discuss Scalability and Reliability

Address caching availability, handling high read loads, and ensuring idempotency for booking requests. Mention monitoring, logging, and potential use of message queues for notifications.

Key Points to Mention

  • RESTful endpoint design with proper HTTP methods and status codes (e.g., 201 Created, 409 Conflict).
  • Data model with normalized tables and constraints to enforce business rules (e.g., unique index on doctor_id and time slot).
  • Concurrency control mechanisms: database transactions, isolation levels, optimistic locking, or SELECT FOR UPDATE.
  • Idempotency for booking endpoints to handle retries safely (e.g., using idempotency keys).
  • Availability calculation: generating slots from doctor schedules and filtering out booked slots, possibly with caching.
  • Error handling and validation: returning meaningful error messages for invalid inputs or conflicts.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

Walk me through a past project from your resume in detail.

Technical Trade-offsAdaptability & Ambiguity
Author's notes

Came right after the design question, which was a bit of a gear shift.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Select a project that showcases both technical depth and your ability to navigate ambiguity, then narrate it using a clear structure: context, problem, your specific actions, technical trade-offs, and measurable outcomes. Keep the story focused on your individual contributions and the decisions you made, not just the team's work.

Pro tip: Quantify the impact of your technical decisions (e.g., latency reduction, cost savings) and explicitly connect trade-offs to business or user value—this shows you think like an engineer who understands the product, not just the code.

1. Set the Context

Briefly describe the project's purpose, your role, the team size, and the business goal. Keep it to 2-3 sentences so the interviewer understands the stakes.

2. Define the Problem & Ambiguity

Explain the specific challenge you faced, including any unclear requirements, technical unknowns, or constraints. Highlight why it was non-trivial.

3. Detail Your Actions & Technical Decisions

Walk through the steps you took, focusing on your individual contributions. Describe the alternatives you considered and why you chose your approach.

4. Discuss Trade-offs & Adaptability

Explain the trade-offs you made (e.g., performance vs. maintainability, speed vs. scalability) and how you adapted when things changed or new information emerged.

5. Share Results & Learnings

Quantify the outcome (e.g., reduced latency by 30%, saved $X in costs) and reflect on what you learned or would do differently next time.

Key Points to Mention

  • The specific technical stack and architecture you worked with
  • A key trade-off decision (e.g., choosing consistency over availability, or a build vs. buy decision)
  • How you handled ambiguity or changing requirements
  • Your individual contribution versus the team's work
  • Quantifiable impact of the project (metrics, business outcomes)
  • A lesson learned or how you applied feedback to improve

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.