InterviewLegend

Mastercard System Design: What to Expect

Alex Chen10 min readUpdated 116 real interview reports
In this lesson
  • Prep the low-level patterns pass that shows up in almost every loop, plus HLD that scales with seniority
  • Tell a standard distributed-systems prompt from a payments-domain one, and answer the one you get
  • Explain out loud why exactly-once processing, idempotency and auditability are hard requirements on a payments rail

Mastercard's system design does not arrive as one tidy prompt. It surfaces inside two rounds of the loop. In the Technical SME round, the most intensive technical seat, a subject-matter expert probes design alongside coding and SQL. In the Hiring Manager round, the talk turns to the architecture of your own projects, the patterns you chose, and how you would design a component cleanly. Most of what is documented comes from Mastercard's India engineering centers, where the loop is well attested, so treat the India shape as primary and hold US and other regions a little more loosely.

Two layers run through those rounds. The first is low-level design: SOLID principles and the classic object-oriented patterns, applied to a small, concrete system. This layer appears in nearly every loop, at every level, and it is easy to underrate. The second is high-level design, and its weight scales with seniority. An SDE-1 seat may see little or no HLD, while SDE-2 and senior loops carry a real distributed-systems conversation. That HLD conversation itself comes in two flavors, one generic and one flavored by the payments domain Mastercard lives in. Prep all of it. Narrowing to only the payments angle is the most common way candidates walk in half-ready.

Where system design shows up, and what it weighs

None of this is published as a rubric, so treat the map below as terrain rather than a fixed script. Design lives in two named rounds, and a low-level design pass is almost always present. How much high-level design you get tracks your level on Mastercard's inverted ladder, where a lower number means more senior.

  • Technical SME round: The intensive technical seat. Run by a tech lead or subject-matter expert, this is where deep design most often lands, woven together with data-structures coding, Java and Spring internals, and SQL. Expect a low-level design prompt here, and at higher levels a distributed-systems discussion on top.
  • Hiring Manager round: Patterns and your own architecture. The managerial round goes line by line through your resume and asks you to defend the architecture and tech-stack choices in your projects. Design patterns you have used, SOLID, and how you would model a given component come up here as much as in the SME round.
  • SDE-1 (L9): LLD-lite or none. Early-career loops lean on coding and fundamentals; design, when it appears, is usually a small object-oriented modeling exercise rather than a full distributed system.
  • SDE-2 and Senior (L8, L7): Real HLD plus LLD. The more senior the seat, the more the loop expects you to drive an ambiguous, scalable-system prompt and defend trade-offs on your own, with the low-level design layer still present underneath.

The low-level design layer you cannot skip

This is the layer candidates most often underprepare, and it is the one that recurs most. The prompts are small and concrete. Model a bank account that can create, deposit, withdraw, and transfer, then extend it to report the top few accounts by activity. Design a car or an elevator using patterns, or sketch a CRUD REST API for an employee. Or just explain a design pattern you have used, and why. The grading is not on how much you build. It is on whether your classes have clean responsibilities, whether you name the right pattern for the job, and whether your design can absorb a new requirement without being torn up.

Let SOLID be the spine of the answer

SOLID is the vocabulary this layer is graded in. Give each class a single responsibility, keep interfaces small and segregated, and depend on abstractions rather than concretes. When you split a class or introduce an interface, say which principle you are honoring and why. That running commentary is a large part of the signal.

Name the pattern, then defend it

Singleton, Factory, Builder, Observer, and Template come up by name. Do not sprinkle them for show. Reach for one when the problem calls for it, a Factory when construction varies, an Observer when state changes must fan out, and be ready to explain the trade-off you accepted by choosing it.

Model the domain before you write methods

Start from the nouns and the rules. For the bank-account prompt, that means the account, the transaction, and the invariant that a balance never goes negative, before any method signature. Getting the entities and their relationships right, aggregation versus composition included, is what makes the later top-K extension a small change rather than a rewrite.

Design so the next requirement is additive

The follow-up is usually a twist: now support a new account type, now rank by a different metric. A design that meets it by adding a class rather than editing five existing ones is the open-closed principle paying off in real time, and it is exactly what the interviewer is watching for.

The Mastercard angle
Mastercard is a Java shop, and design-patterns fluency is treated as table stakes there. The same loop that quizzes you on Spring bean lifecycle, dependency injection, and how @Transactional works under the hood expects you to talk about your own code in the language of patterns and SOLID. That is not incidental. A payments platform is long-lived software that many teams extend for years, so the company screens hard for engineers who write systems that stay clean as they grow. Practice narrating a small design in that idiom until it is second nature, and you will sound like someone who already belongs in the codebase.

Generic HLD: the distributed-systems fundamentals

Once your level is high enough for HLD, a good share of the prompts are standard distributed-systems fare with no payments flavor at all. You would meet them at any large engineering org. Reported prompts include a job scheduler that dispatches millions of tasks a day, a rate limiter with its approaches and trade-offs, and a step counter with incremental rewards. Some are open-ended calls to design a distributed and scalable service. The supporting concepts get asked directly too. That means sharding, consistent hashing, retry mechanisms, when and why to move from a monolith to microservices, and where caching with a CDN or an in-memory store earns its place. Treat this flavor exactly as you would prepare general system design, with a clear method and honest trade-offs.

Scale

Estimate the load before you draw, then show how the design holds as it grows: where you shard, how consistent hashing keeps rebalancing cheap, and where a stateless tier lets you add machines horizontally.

Availability

Assume components fail and design around it. Talk about replication, health checks, retries with backoff, and graceful degradation, and be clear about what still works when a dependency is down.

Latency

Separate the paths that must feel instant from the ones that can run in the background. Then place caches, queues, and read replicas so the heavy work moves off the interactive path.

Data model

Choose the store for the access pattern and defend the choice. Be ready to reason about the consistency the workload needs, which is where the payments prompts push hardest.

When the prompt turns to payments

The other HLD flavor is the one Mastercard is uniquely positioned to ask, and it is a genuine differentiator rather than the whole round. Reported prompts include designing a distributed payment system, designing the card network itself on a phone screen, handling a transaction and its state cleanly, and dealing with currency and precision. They also reach the authentication machinery around a payment: multi-factor auth and how it works under the hood, OAuth2, OIDC, SAML and single sign-on, and tokenization and encryption of card data. What ties these together is that they run on money and identity, so the requirements that dominate are different from the ones a consumer feed cares about.

The Mastercard angle
On a payments rail, consistency for money is a hard requirement. At a consumer company a double-posted like is invisible and a dropped write is something the user just redoes. Move value between two accounts and neither is acceptable: charging a card twice or losing a transfer is a real-world harm with a real-world paper trail. So the words that carry weight here are exactly-once processing, idempotency, and auditability. Exactly-once means a retried request settles the money a single time; idempotency keys are how you get there when the network makes you retry. Auditability means every state change of a transaction is recorded immutably, because a payment must be reconstructable and reconcilable after the fact. Reason about those out loud and you are speaking the language this flavor of the round rewards.

Contrast the two mindsets out loud, and the interviewer sees you understand the difference. The same words, scale and availability and consistency, mean stricter things once money is on the line.

Generic web system design

  • Consistency is often eventual; a stale read for a moment is fine
  • A retry that duplicates work is usually harmless or easily deduped later
  • Losing a single event is an annoyance the user can recreate
  • Throughput and latency are the headline constraints
  • Success is measured by requests served and tail latency

Payments-domain system design

  • Consistency for the ledger is strict; a balance is either right or it is a defect
  • A retry must be idempotent so the money settles exactly once
  • Losing a transaction is unacceptable, and every state change must be auditable
  • Correctness and durability outrank raw throughput
  • Success is measured by money reconciled and nothing double-charged

How to approach it in the room

The prompt could be a small class model, a generic distributed service, or a payment rail. Work out which one you are in first, then answer it on its own terms. Ask clarifying questions, state your assumptions, and let the requirements steer you rather than reaching for a template. The contrast below is what separates an answer tuned to this loop from one that grabbed the wrong shape.

Reads as strong at Mastercard

  • Reads the prompt first and decides whether it is LLD, generic HLD, or payments-domain, then answers in that register
  • Narrates SOLID and named patterns while modeling a small system, and makes the follow-up an additive change
  • On a payments prompt, treats exactly-once, idempotency, and auditability as hard requirements and designs for them explicitly
  • On a generic prompt, sizes the load and reasons about sharding, consistent hashing, and failure the standard way
  • Picks the consistency model the workload needs and defends it, tight for a ledger and looser where it is safe
  • Asks the scope and constraint questions before drawing, since the prompt is deliberately open

Reads as off-target

  • Forces every prompt into a payments answer, or forces a payment rail into a generic web-scale template
  • Sprinkles design patterns as buzzwords without a reason for each one
  • Designs a money-moving system with eventual consistency and non-idempotent retries
  • Skips load estimation and hand-waves the scale and failure story
  • Ignores auditability, leaving no immutable record of how a transaction reached its state

The one worked design in this section

The surface splits across low-level design, generic HLD, and a payments flavor. This section anchors on one worked design, a payment system, because that flavor is the one the round rewards most and the hardest to prepare cold. It puts the whole payments register on the table at once. You move value between accounts with a strict ledger and make retries idempotent so a charge settles exactly once. You record every transaction state immutably for audit, then scale the rail while keeping all of that true. Build it cleanly once and the reasoning transfers to the card-network and transaction-state prompts. The sharding, caching, and failure handling underneath it carry over to the non-payments prompts too.

Design a Payment System

The worked design for this section. Take a payment from request to settlement: model the ledger, make processing exactly-once with idempotency keys, keep an immutable audit trail of every transaction state, and scale the rail without loosening any of it. Practice it here and the same moves carry to the card-network and transaction-handling prompts a Mastercard round favors.

Common questions

Does Mastercard have a system design interview?

Yes, though it is woven into the loop rather than isolated as a single stage. Design comes up in the Technical SME round, alongside coding and SQL, and in the Hiring Manager round, where you defend the architecture of your own projects. A low-level, object-oriented design pass with SOLID and patterns appears in almost every loop; a full high-level design conversation is added as the level rises, so senior seats carry the most of it.

Is Mastercard system design all about payments?

No, and assuming so is a common trap. A large share of the high-level prompts are standard distributed-systems questions, a job scheduler, a rate limiter, sharding, consistent hashing, monolith versus microservices, with no payments angle. The payments-domain prompts are a real and distinctive flavor: a distributed payment system, the card network, transaction state, and the auth flows around a charge. They sit alongside the generic prompts and don't replace them. Prepare the full breadth: low-level design patterns, generic HLD fundamentals, and the payments register on top.

Key Takeaways

  • ✓Mastercard's system design comes in two layers. A low-level design pass with SOLID and named patterns runs in almost every loop, and a high-level design conversation is added as the level rises, so prepare both rather than only the payments angle.
  • ✓Design lives in the Technical SME round and the Hiring Manager round, and the high-level weight tracks your level on the inverted ladder, where a lower number means more senior. Most of the well-documented shape comes from the India loop.
  • ✓Generic HLD is at least as common as payments HLD. Job schedulers, rate limiting, sharding, and consistent hashing show up with no payments flavor, and they are probed on the usual axes of scale, availability, latency, and data model.
  • ✓Money changes the rules. When a prompt turns to payments, exactly-once processing, idempotency, and auditability become hard requirements, and consistency for the ledger is strict where a consumer feed could stay eventual.
  • ✓One worked design, a payment system, carries the section. Build it cleanly once and the reasoning transfers to the card-network and transaction-state prompts, while its distributed-systems fundamentals carry over to the generic prompts too.
Had your Mastercard interview?Tell us what they asked. Reviewed before it goes in, never with your name.
Mastercard interview guide

Know what Mastercard asks before you walk in.

10 coding · 2 system design · 15 behavioral questions

Get Premium$49 a year · Cancel anytime
Or start freeNo card.

Get their questions first.

InterviewLegend is independent and not affiliated with or endorsed by any company it covers.