If you have ever interviewed at a regular fintech and walked out feeling like you mostly answered LeetCode questions about transaction tables, an interview at Mercury will feel like a different sport. The company is one of the most distinctive engineering organizations in the entire fintech space — built on Haskell on the backend and Elm on the frontend, run by founders who care visibly about types and invariants, and shaped by the operational reality that every line of code in their system touches real money belonging to real venture-backed startups.

That technical character runs straight through the interview process. Mercury's loop is more rigorous than most B2B SaaS companies and noticeably less stressful than the median FAANG loop. The bar is high, but the rounds are calibrated to real working signal — not to artificial trick questions. This guide walks you through every round, what the interviewers are actually testing, and how to prep efficiently.

Quick Context: Why Mercury's Loop Is Different

Mercury was founded in 2017 by Immad Akhund, Jason Zhang, and Max Tagher to build banking infrastructure for startups. The company has grown to roughly 1,500 employees, with a $1.6B+ valuation and 200,000+ business customers. The product surface is large: checking and savings, a credit card, working-capital products, treasury, bill pay, spend controls, and a growing developer platform.

What makes the interview loop unusual is that Mercury's leadership has made an explicit bet on type-driven design. The backend is Haskell. The frontend is Elm. Internal libraries lean on advanced type-system patterns. The interview process therefore screens for two things at once: (1) you can ship production-grade software in a regulated domain, and (2) you have enough type-system intuition to grow into the stack within 2-3 months of joining.

You do not need to know Haskell going in. Mercury's recruiters are explicit that prior Haskell or Elm experience is not required. Most engineers ramp on the language post-hire. What you do need is openness to learning a strongly-typed functional language, and the ability to reason clearly about types and invariants when asked — in any language.

The Mercury Interview Loop: All Six Rounds

The full process for a senior software engineering role has six discrete stages. Elapsed time is usually 3-5 weeks from first recruiter conversation to final offer.

Round 1

Recruiter Screen

30 min

A standard get-to-know-you call. Your recruiter walks through your background, your interest in Mercury specifically, the team you're being considered for, comp expectations, and timeline. This is also your first chance to ask substantive questions about the role.

How to prep: Have a clean two-minute version of your story. Know one specific thing about Mercury beyond "you do banking for startups" — mentioning their type system, their product velocity in 2024-25, or the founder's prior company (Heyzap) is a green flag. Ask one question that signals you've thought about the job, not just the brand.

Round 2

SQL / Code Review Screen

60 min

The first technical round is distinctive: it's a SQL exercise paired with a code review. You'll be asked to write or modify SQL queries against a realistic schema (think: business accounts, transactions, partner-bank relationships) and to walk through a code change — either reviewing a pull request the interviewer shares or making a small one yourself.

What they're testing:

How to prep: Practice window functions, CTEs, and aggregation against realistic business data (transactions, ledgers, account hierarchies). For the code review portion, treat any PR you read in the next two weeks as practice — write down what you'd comment on before reading actual review comments.

Sample SQL prompt (paraphrased) "Given an accounts table, a transactions table, and a partner_banks table, write a query that returns the top 10 customer accounts by net inflow over the last 30 days, excluding test accounts. Now, modify the query to show net inflow per partner bank instead. Walk me through how you'd handle a transaction that's still pending."
Round 3

The 3-Hour Take-Home

3 hours synchronous

This is the longest single component of the loop. A Mercury engineer briefs you on a problem and parameters for 15-30 minutes. You then code for ~2 hours. The final 30-40 minutes are spent walking through your code with the interviewer, who asks about decisions you made, edge cases you handled, and how you'd extend the design. The exercise is synchronous — you do it live, not on your own time.

What they're testing:

How to prep: Practice in the language you're strongest in. Time yourself building a small service end-to-end (e.g., a simple ledger API or a rate-limiter) in 90-120 minutes. Treat tests, edge cases, and clean structure as part of the deliverable — not extras. Be ready to explain trade-offs you didn't make as well as the ones you did.

Round 4

System Design (Banking-Flavored)

60 min

Mercury's system design round leans hard into the actual problem domain. Don't expect "design Twitter" prompts. Expect prompts that revolve around money movement, idempotency, audit trails, partner-bank failure modes, fraud detection, and regulatory reporting.

Common problem spaces:

What they're testing: Specifically, your reasoning under correctness-critical constraints. There is a right answer to "what happens if the partner bank is down for 4 hours" in a way there isn't for a typical "design Twitter feed" question. They want to see you reach for idempotency keys, ledger-style state, and reconciliation processes without prompting.

How to prep: Read the canonical references on idempotent APIs and event-sourcing patterns. Stripe's engineering blog (their Idempotency Keys posts in particular) is required reading — the concepts translate directly. Practice with prompts from our Stripe interview guide too, since the patterns overlap heavily.

Round 5

The Craft / Type-System Round

60 min

This is the round Mercury is known for — sometimes called the "Craft round" internally — and it's the most distinctive part of the loop. It's a conversational round about how you think about types, invariants, and code design. You'll either review a code snippet the interviewer shares or sketch an API or data model in response to a prompt. The language you use is yours to choose.

What they're testing:

The interviewers are not looking for Haskell-specific knowledge. They're looking for the underlying intuition. A senior engineer who has read Alexis King's "Parse, Don't Validate" essay or Rich Hickey's design talks will recognize this round immediately — the question is whether you can apply that intuition to a fresh problem.

Sample Craft prompt (paraphrased) "Here's a function signature: transferMoney(fromAccount: String, toAccount: String, amount: Number). What states can this function be called in that you'd want to prevent? How would you change the signature to make those states unrepresentable? Now: what does the return type look like, and how does it handle the case where the partner bank says 'maybe'?"

How to prep: Read Parse, Don't Validate by Alexis King. Skim a beginner Haskell tutorial just to absorb the vocabulary (Maybe, Either, sum types). Then practice rewriting messy functions from your own codebase using stricter types — not just adding TypeScript annotations, but actually making the type system express the invariants of the domain. The goal is intuition, not language fluency.

Round 6

Hiring Manager / Behavioral

45-60 min

The final round is with the hiring manager (or founding team for senior+ roles). It covers your past projects, your comfort with regulated and correctness-critical work, how you collaborate, and how you handle long-tail failure modes — situations where the right answer requires patience and rigor rather than speed.

Common topics:

How to prep: Have 3-4 stories ready, calibrated to senior-IC scope. Mercury cares deeply about candidates who take craft seriously — if you have a story about catching a subtle correctness bug, improving system observability, or pushing back on a "ship it" instinct in favor of doing it right, that's gold. Avoid stories that frame you as the hero in a way that erases the team.

What Mercury Looks For (and What's a Red Flag)

Green flags

Red flags

Compensation Context

Mercury is one of the better-paying fintechs but does not chase frontier-lab numbers. Senior engineer total compensation is typically in the $230–$320K range, with strong equity grants given the company's growth trajectory and $1.6B+ valuation. Comp is geo-adjusted — SF and NYC sit at the top of the bands, with remote roles adjusted moderately. For a fuller comparison with other fintechs, see our 2026 tech hiring market analysis.

See open Mercury roles — with culture context

Live Mercury openings across engineering, product, and operations — alongside roles from Stripe, Plaid, Ramp, and 113+ other companies.

View Mercury Jobs → See Mercury Culture Profile →

One Last Note on the Mercury Style

The single most useful thing to internalize before walking into a Mercury interview is that the company genuinely values how you reason, not how quickly you arrive at an answer. Engineers who slow down, ask clarifying questions, sketch out the data model before coding, and explicitly state assumptions tend to do well across every round.

Engineers who pattern-match aggressively (any "this is just like X at my last job" instinct) tend to miss the part of the problem that Mercury actually cares about — the part where small correctness choices compound into systems that move billions of dollars without losing track of a cent. If that framing excites you, you're already 80% of the way there.

Frequently Asked Questions

What is Mercury's interview process for engineers in 2026?+
Mercury's engineering interview process in 2026 has six rounds: recruiter screen, SQL/code-review screen, 3-hour take-home assessment, system design (banking-focused), the distinctive Craft / Type-System round, and a behavioral/hiring-manager conversation. The whole loop typically takes 3-5 weeks from first contact to offer.
Do I need to know Haskell to interview at Mercury?+
No. Mercury hires engineers with diverse language backgrounds and ramps new hires onto Haskell post-hire over 2-3 months. Coding interviews can be done in any mainstream language. What is required is openness to learning Haskell/Elm and an ability to engage thoughtfully with type systems and invariants when asked.
What is the Mercury Craft Round?+
The Craft round is Mercury's signature interview. It is a 60-minute conversational round about how you reason about types, invariants, error handling, and code design. There is usually code involved — either reviewing a snippet or sketching an API — but the focus is your reasoning, not pattern-matching to a specific language. Strong candidates demonstrate awareness that 'making illegal states unrepresentable' is a productive way to design financial systems.
What does Mercury system design ask about?+
Mercury's system design round leans hard on banking-specific problem spaces: ACH transfer orchestration, partner-bank failover, idempotency for money movement, audit logging, ledger consistency, fraud signal pipelines, and regulatory reporting. The interviewer is testing your reasoning under correctness-critical constraints, not your ability to redesign Twitter. For overlapping prep, see our Stripe interview guide.
What is the Mercury take-home like?+
Mercury's take-home is a 3-hour structured exercise done synchronously with an engineer. A Mercury engineer briefs you on requirements and parameters for 15-30 minutes, you have ~2 hours to code, then 30-40 minutes are spent walking through your code and discussing decisions. The exercise is realistic — typically a small backend service problem with edge cases that surface assumptions about correctness.
How long does Mercury's interview process take?+
Total elapsed time is typically 3-5 weeks from first recruiter call to offer for senior engineering roles. Mercury is generally faster and more responsive than larger fintechs. The take-home is the longest single component (3 hours of synchronous time including code review). Offer decisions usually come within a week of the final round.