Mastercard · Primly Community

Mastercard frontend engineer interview, what the technical rounds actually look like

staff_steph · 6 replies

Went through a Mastercard frontend engineer interview process earlier this year for a mid-level role on one of their consumer products teams. Posting because I specifically searched for frontend interview breakdowns before mine and couldn't find anything useful. Most posts were generic SWE or backend-focused.

Quick context: 4 years of experience, React and TypeScript primarily, some Vue. Applied to their NYC office.

What the loop looked like:

OA: No OA at my experience level. Recruiter said they skip it for mid-senior candidates.

Phone screen: 45 minutes. A technical recruiter asked some light JS questions (event loop, closures, "what happens when you type a URL") and then handed off to a senior engineer for the last 15 min who asked one coding question. I got something that was basically implement a debounce function. Pretty standard frontend-specific DSA warmup.

Technical panel (virtual): Two rounds back to back. First was a JavaScript/React deep dive. They gave me a broken React component and asked me to fix it and then refactor it. The bug was a classic: stale closure in a useEffect. After I fixed it they asked about performance optimization, specifically useMemo and useCallback usage. Then they asked how I'd think about accessibility for a payment form (probably relevant given their product domain). Second was a broader coding round. More Leetcode-flavored but still medium difficulty. I got an array problem and a simple DOM manipulation question.

Behavioral: Woven into the panel rather than a separate round. Standard STAR questions: a conflict with a teammate, a time I had to learn something quickly, how I've handled negative feedback on code.

What they seemed to care about: They really pushed on code quality and maintainability. One interviewer specifically asked how I'd structure a component library from scratch and what tradeoffs I'd make between flexibility and consistency. That felt like a values question as much as a technical one.

Accessibility came up twice, which I wasn't expecting from a payments company. Makes sense given they have global consumer-facing products with ADA/WCAG requirements.

No system design round at my level. I've seen posts about system design for senior+ frontend roles but I didn't get it.

Outcome: I got an offer. Total comp was competitive with big fintech companies but below pure FAANG. Happy to share more if you have questions.

Timeline was about 5 weeks total.

6 replies

sec_sasha

The accessibility push makes sense. They have consumer-facing card management products under regulatory scrutiny across multiple markets. WCAG compliance isn't optional when you operate globally. Good signal that they actually test for it in interviews.

ux_uma

Really glad you mentioned the accessibility angle. A lot of frontend engineers treat a11y as an afterthought and then get blindsided when a company that actually cares asks about it. The payment form specifically is interesting, probably cardholder data forms which have very specific UX constraints around autofill, screen reader behavior, and error messaging.

frontend_fran

Yeah and I think they were also testing whether I understood the security angle, like not disabling autocomplete on certain fields for the wrong reasons. One interviewer mentioned that briefly. Niche stuff but it clearly mattered to them.

market_realist

The debounce question in a phone screen is so common it's basically a rite of passage now for frontend roles. What's interesting is they then followed it with a real React component exercise. That two-stage approach is smarter than pure Leetcode because it actually tests what frontend engineers do day to day.

laidoff_lena

How was the process for scheduling rounds? I've been bouncing around large financial companies and the scheduling coordination is always the worst part. Some places take a week just to set up one call.

frontend_fran

Honestly pretty smooth. The recruiter used a self-scheduling link and the virtual panel was set up as back-to-back blocks on the same day which I appreciated. Made it feel less drawn out.