JPMorgan Chase·Software Engineer·Onsite - System Design / Architecture
Jul 2026
JP Morgan system design round, one big question about a university course registration system that went way deeper than I expected. They kept pushing on every layer, from data modeling to concurrency to scaling, so it ended up being more of a 45-minute gauntlet than a single question.
- Design a university course registration system. Walk through the core entities, the APIs students would use, and the constraints the system needs to enforce.
- How would you enforce constraints like prerequisite checks, time conflict detection, seat capacity limits, and registration windows that differ by class year or major?
- What data store would you choose for this system, and what consistency model makes sense when thousands of students are all hitting register at the same moment?
- Walk through how you'd handle concurrency when multiple students try to register for the same section at the same time. Compare row-level locking, optimistic concurrency, and a queue-based approach.
- The course catalog is read very heavily. How would you cache it, and what are the tradeoffs?
- How do you ensure fairness in waitlist processing, and how does the whole system scale to tens of thousands of concurrent users during registration open?
“I started with entities and drew out students, courses, sections, instructors, schedules, prerequisites.” The rest of the author's notes on Software Engineer interview at JPMorgan Chase, Onsite - System Design / Architecture round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post