Backend Engineer Interview Questions

30 questionsWritten 5 September 2026

Frontend interviews ask what you built. Backend interviews ask what happened when it broke.

That is the whole difference, and it is why candidates who prepare the same way for both come out of this one confused. You can describe a service cleanly, name every pattern in it, and still lose the room the moment somebody asks what happens if the third call in that sequence times out after the second one has already committed. There is no framework answer to that. There is only whether you have been on the wrong end of it.

Which is also the good news, because it means this interview rewards scars over vocabulary. The engineer who says "we ran that with no index for four months and nobody noticed until the table hit two million rows" is more convincing than the one who recites normal forms, and interviewers in this field select for exactly that.

Two things get skipped in preparation and are asked constantly. What happens on a retry — most candidates have never thought about it and it is the first follow-up to half the questions below. And where the data physically lives, which for a client with data-residency obligations is a contractual requirement rather than an architectural preference, and which a surprising number of backend engineers have never had to answer for.

If you are a mid-level backend engineer, this is your page. Entry and senior have pages of their own; mid does not, and does not need one — the questions below assume a pager that has already gone off.

The phone screen

A recruiter filtering, not evaluating. Answer these quickly and get to the part that decides.

The screen

All levels

Short, and mostly about scope. The one thing that reliably goes wrong here is a candidate describing a system's architecture at length without ever saying which part they wrote — which reads, fairly or not, as somebody who was near the work.

  1. Describe a system you worked on — and say which part was yours.Show the answer guide

    Give the shape in two sentences, then narrow hard. "Order processing for a grocery delivery app — a service that took orders, held stock, and talked to a payment provider and a dispatch system. I owned stock reservation and the reconciliation job that fixed it when the two disagreed."

    Then volunteer a number that establishes the scale honestly. Requests per second, rows in the biggest table, orders per day, number of services. If the numbers are small, say the small numbers — an engineer who ran something modest and understood it completely interviews better than one who was adjacent to something large.

    Close with the part that was hard, and make it a real engineering problem rather than a deadline. The interviewer is deciding, in this answer, which of the next questions to ask you.

    One candidate's version

    A booking service for a clinic group — about 400 requests a minute at peak, one Postgres instance, four other services calling us. I owned the slot-availability logic. The hard part was that two people could hit the same slot in the same second from different clinics, and our first fix was a lock that turned a 40ms request into 900ms under load. We replaced it with a unique constraint and let the database reject the loser.

    Your own system, your own numbers. The shape to keep: what it did, one honest scale figure, the part you owned, and a wrong turn you took before the right one.

  2. What's your database?Show the answer guide

    Answer with what you have actually operated, not what you have read about. Then say what you have done with it beyond writing queries: migrations on a live table, reading an execution plan, restoring a backup, changing a connection-pool setting because something fell over.

    That second half is the whole answer. Everyone has used a database. Far fewer have had to fix one at speed, and this question exists to find out which you are.

  3. Why are you leaving, and what are you looking for?Show the answer guide

    One sentence on leaving, then spend the time on what you want — that half is the useful one and almost nobody uses it. Being specific here filters out roles you'd resent, which is worth more than sounding agreeable.

    "I want to own a service end to end rather than one endpoint of it" is a real answer. "New challenges" is not one, and it invites an interviewer to fill in the blank themselves.

  4. What are your salary expectations?Show the answer guide

    Give a range and say what market it's anchored on — local, the client's country, or the currency of the contract. For remote work across borders those are three different numbers, and a figure with no stated basis invites the other side to supply one.

The paperwork questions

All levels

Asked early and plainly where hiring quotas and work permits govern the shortlist, late and hedged elsewhere. They are decisions either way, and the candidate who has not thought about them stalls at the offer rather than at the whiteboard.

The decision that governs software titles in Saudi Arabia is not the engineering one. Ministerial Resolution 28889, issued 5 October 2020 and in force from 27 June 2021, set a 25% Saudization rate across communications and IT engineering, application development, programming and analysis, and technical support, at establishments of five or more workers — with a minimum counted wage of SAR 7,000 a month for specialised roles and SAR 5,000 for technical ones. The separate engineering decision carries a different rate, a different floor and an accreditation condition, and treating them as one is a mistake a hiring manager there hears immediately.

Read it from where you stand. A national candidate has a legal reason to be in the room and a wage floor that is a floor rather than an aspiration. An expatriate candidate is competing for a shorter shortlist than the job ad implies — and, since mid-2025, holds a work permit that carries a skill classification assessed on qualifications, experience, wage and age, reassessed at renewal rather than fixed once.

Neither is a reason to raise the subject. Both are reasons to know what is being weighed while somebody asks you something that sounds like admin.

  1. Do you need sponsorship, and is your permit transferable?Show the answer guide

    Give status, transferability and a realistic start date in a single pass. A transfer and a new visa are different problems on different timelines, and a hedged answer here is read as postponing bad news rather than as discretion.

    If the position is complicated, lead with the complication and follow immediately with the date. Employers plan around dates. They cannot plan around ambiguity, and ambiguity is what loses the slot to someone else.

  2. Where would the data live?Show the answer guide

    This looks technical and is often commercial, which is why it sits here. For a government client, a bank, or a customer with data-residency obligations of its own, the region a database runs in can be written into the contract — and an engineer who treats it as a latency question has missed what is being asked.

    The answer that lands: find out what the customer's contract requires before choosing anything, name the constraint as a constraint rather than a preference, then talk about what it costs. And if you have never worked under one of these requirements, say so and say how you would find out — that is far stronger than improvising a compliance opinion, which is the easiest way to sound unsafe in a regulated-sector interview.

  3. Are you comfortable working in English all day?Show the answer guide

    Asked outright for distributed-team roles in offshore delivery markets, and measured silently almost everywhere else. What is being tested is not fluency; it is whether you can disagree with a design decision in English, in writing, in front of people who don't know you.

    Describe the usage rather than a level: written daily in reviews and design documents, spoken in a weekly call with a team in another country. "Advanced" describes nothing and gets tested two minutes later.

Verified: — Scoped. The decision number, date and scope were checked against a Gulf law-firm alert; the wage floors and the three job groups against a Saudi financial-press report published on the day it commenced. No ministry page was readable from this environment. The 2026–2028 Nitaqat cycle re-based sector quotas and we could not confirm at Tier 1 that the ICT rate still stands at 25% — check the establishment's own band on the ministry's platform.

Quotas, wage floors and permit rules change without notice, and a permit's skill classification is decided by the ministry rather than by how an employer describes the job. This is the shape of the rule, not advice about your file.

The technical sit-down

Where it stops being about your CV. You either know these or you don't — and bluffing fails on the follow-up.

The data questions, and they are the interview

Entry – senior

Whatever the job ad emphasises, this is where backend interviews are won and lost, because it is where production incidents come from. Expect follow-ups that add a constraint and ask you to revise — being able to revise is the point.

A pattern worth knowing before you go in: many of these have a correct answer that is boring and a clever answer that is wrong. Interviewers who have run systems prefer the boring one and are checking whether you reach for it.

  1. This query got slow as the table grew. How do you find out why?Show the answer guide

    Read the plan. Say that first, before anything else, because a lot of candidates start guessing at indexes and the plan is the only thing that turns this from opinion into diagnosis.

    Then narrate what you'd look for: whether it's scanning a table it should be seeking into, whether the row estimates are wildly off from actual (which points at stale statistics rather than a missing index), and whether an index that exists is simply not being used — a function wrapped around the column, a type mismatch, or a leading wildcard will each defeat one silently.

    The addition that separates a working engineer: say what you'd check about the query and not just the schema. A query that was fine at ten thousand rows and dies at ten million usually asks for something it doesn't need — the full row set to count them, an unbounded result the application then truncates, an N+1 the ORM generated where a join would do. And say what you would not do: add an index in production at peak without knowing what it costs on writes.

  2. You added an index and it's still slow. What now?Show the answer guide

    Confirm it's being used at all — a composite index is only usable from its leading columns, so an index on (a, b) does nothing for a query that filters on b alone. Then check whether the planner chose it and rejected it, which usually means statistics.

    And consider that the query may not be the problem. Lock contention, a connection pool at its limit, or a saturated disk all look exactly like a slow query from the application's side, and distinguishing them is the actual skill here.

  3. Two requests try to book the last seat at the same time. What happens?Show the answer guide

    The single best question in this whole interview, and the answers separate people sharply. The naive version — read the count, decide, write — has a race in it that no amount of application code closes, and saying so out loud is the first mark.

    Then give the options and their costs. Let the database decide: a unique constraint or a conditional update whose row count tells you whether you won. Cheapest, most reliable, and it turns a race into an error you can handle. Pessimistic locking: correct, and it serialises everything behind it, which is how a fast endpoint becomes a slow one under exactly the load you built it for. Optimistic concurrency: a version column, retry on conflict, good when conflicts are rare and bad when they are not.

    Then the part people forget: what the user sees. Losing this race is a normal outcome, not an error, and an interviewer notices when a candidate designs the failure message as carefully as the lock. If they push further they'll ask what happens when the seat and the payment live in different systems — that is the next section.

    What to avoid

    Do not say "I'd use a transaction." A transaction alone does not prevent this at the isolation levels most systems actually run at, and the follow-up asking which isolation level and why is where that answer ends.

  4. What does a transaction actually guarantee you here?Show the answer guide

    Answer at the level of consequences rather than reciting the acronym. Atomicity means the partial state never becomes visible; durability means a committed write survives the process dying. Isolation is the one that matters in practice and the one nobody checks: the default level on most systems permits anomalies people assume are impossible.

    Name the concrete thing: read-modify-write across two statements is not safe just because both are inside a transaction, unless the isolation level or an explicit lock makes it so. Say which level your systems ran at. Most candidates do not know, and knowing is a strong signal.

  5. How do you migrate a large table without downtime?Show the answer guide

    Expand, migrate, contract — and say it as three deploys, because the reason this is asked is to see whether you think in deploys or in DDL statements.

    Expand: add the new column as nullable with no default that rewrites the table, and deploy code that writes to both and reads from the old. Migrate: backfill in batches with a pause between them, watching replication lag rather than wall-clock time. Contract: flip reads to the new column, deploy, then drop the old one in a separate release once you're certain nothing reads it.

    The details that show you have done it: adding a `NOT NULL` column with a default can rewrite the whole table and take a lock on some engines and versions; a long-running backfill can hold a transaction open and bloat the log; and the rollback plan matters more than the forward plan, because the release you cannot undo is the one that turns a bad afternoon into an incident. Say too that you would test the migration against a copy of production data — a hundred seeded rows tells you the syntax is right and nothing else.

  6. When would you denormalise?Show the answer guide

    When a read path is measured as too slow and the join is the measured cause — in that order, and say the order, because denormalising first is how a schema becomes unmaintainable in service of a problem nobody had.

    Then name the cost honestly: you now own the consistency yourself, which means every write path that touches the source of truth must update the copy, including the ones written by someone else next year. Saying that out loud is what separates a decision from a habit.

  7. What goes in a cache, and what happens when it's wrong?Show the answer guide

    Cache things that are expensive and tolerate being slightly stale, and be explicit about what "slightly" means for that data — seconds for a product listing, never for an account balance.

    The interesting half is invalidation. Say which strategy you'd use and what it fails at: time-to-live is simple and serves stale data for exactly as long as you chose; event-based invalidation is precise and breaks silently when a write path forgets to publish. Then mention the failure everyone meets eventually — when the cache empties and every request goes to the database at once.

  8. Where would you not use a relational database?Show the answer guide

    Have a real answer rather than a preference — a document store where the shape genuinely varies per record, a search index for full text, a time-series store for metrics, a blob store for files that people keep putting in a database. Then say the default is relational and the burden of proof is on moving off it.

  9. How do you handle a schema change that another team depends on?Show the answer guide

    By never making a breaking one in a single step — the same expand-and-contract discipline, applied to a contract rather than a table. Add the new field, tell the consumers, give them a deadline that is a real date, and remove the old one only after checking that nothing reads it rather than after being told nothing does.

    The sentence that earns trust: you would find out who the consumers are before you start, and "we'll announce it in the channel" is not finding out.

Contracts, and the failure nobody planned for

Mid – senior

This section is where an interviewer finds out whether you have operated something or only built it. The questions all have the same underlying shape: something between two systems failed halfway, and the state on either side no longer agrees.

  1. The payment succeeded and your service crashed before recording it. Now what?Show the answer guide

    Do not reach for distributed transactions. Say what actually gets built: the operation is made idempotent with a key the caller supplies, so a retry lands on the same result rather than charging twice; state is written before the external call, in a pending state, so there is always a record to reconcile from; and something reconciles afterwards, comparing your records against the provider's and resolving the difference.

    The most convincing thing you can add is that reconciliation is a real job that runs on a schedule and has an owner, not a script somebody wrote once. And if you have never worked on payments, the same shape applies to any external call with an effect — sending a message, provisioning an account, dispatching a driver. Say the shape and name the case you actually worked on.

  2. What does idempotent mean, in code rather than in the abstract?Show the answer guide

    That doing it twice leaves the same state as doing it once, and the practical version is: the caller sends a key, you record it with the result, and a second request with that key returns the stored result instead of doing the work again.

    Then say the awkward part, because it's the follow-up: the key has to be stored in the same transaction as the effect, or a crash between the two gives you the double-charge you were preventing. That detail is the whole difference between having read about this and having implemented it.

  3. A downstream service is slow. What does your service do?Show the answer guide

    The bad answer is retries. Retrying a saturated service is how a slow dependency becomes an outage, and it is worth saying that sentence out loud because it is the most common real-world version of this failure.

    Build the answer up: a timeout shorter than your own caller's, so you fail before they do rather than holding their connection. Retries with backoff and jitter, capped, and only for operations that are safe to repeat. A circuit breaker so that once it is clearly down you stop asking and fail fast. Bulkheads — a bounded pool per dependency, so one slow thing cannot consume every worker you have.

    Then the product question, which is the part that impresses: what does the user get? Degrading to a cached or partial answer is often better than an error, and deciding that is a conversation with whoever owns the product rather than a decision an engineer makes alone at 3am.

  4. When would you put a queue between two services?Show the answer guide

    When the caller doesn't need the result to continue, when the work is bursty and the consumer should smooth it, or when you need the work to survive the consumer being down. Say those as three separate reasons because they have different consequences.

    Then the costs, which get skipped: you have inherited ordering questions, duplicate delivery, a dead-letter queue that somebody has to actually look at, and an end-to-end latency you can no longer see in a single trace. A candidate who names the dead-letter queue has run one.

  5. How do you version an API?Show the answer guide

    Additive changes without a version bump, breaking changes with one, and a stated policy for how long the old version lives. The specific mechanism matters far less than having decided one, and saying so is fine.

    The realistic addition: most breaking changes are avoidable. Adding an optional field, tolerating unknown fields on the way in, and never repurposing the meaning of an existing one will avoid the majority of version bumps people end up making.

  6. Where does authorisation live?Show the answer guide

    On the server, on every request, checked against the resource being touched rather than against the shape of the route. Then name the failure this exists to prevent: an endpoint that verifies the caller is logged in and never checks that the record they asked for is theirs.

    For a multi-tenant system, say how the tenant boundary is enforced — and say whether it is enforced in one place or repeated in every query, because the second is where the eventual leak comes from.

Three in the morning

Mid – senior

The situational half, and it is asked more seriously for this role than for almost any other because the on-call rota is a real part of the job. Answer these as narratives with an order of operations, not as principles.

  1. Latency has tripled in the last twenty minutes. Walk me through it.Show the answer guide

    Order of operations, out loud, and the first one is not a hypothesis. Was anything deployed or changed? Deploys, config flags, a migration, a dependency's own release. Most incidents are a change, and starting there resolves a large share of them in two minutes.

    Then is it everything or something? One endpoint, one region, one customer, or all of it — that single split halves the search space. Then where in the stack: application, database, dependency, network, or the queue in between; the trace or the four golden signals tell you this faster than reading code.

    Then say the thing that distinguishes an engineer who has been on-call: restore service first, diagnose second. Roll back, scale out, shed load, turn off the expensive feature — the post-mortem needs a cause, the customer needs the service. And keep a written timeline while you do it, because nobody remembers the order afterwards.

  2. You've been paged for the same alert three nights running. What do you do?Show the answer guide

    Fix the alert or fix the cause, and refuse the third option, which is to keep acknowledging it. An alert nobody acts on trains a team to ignore the page that matters.

    Say which you'd do and why: if it is not actionable it should be a dashboard, not a page. If it is actionable and keeps happening, the follow-up work goes on the board with a real priority rather than in somebody's head.

  3. Something you shipped caused an incident. Talk me through it.Show the answer guide

    Pick one where you were genuinely the cause. The instinct to pick one where you were the hero is visible and it costs you.

    Cover four things and no more: what broke, how it was found (and say honestly if a customer found it), what you did in the first ten minutes, and what changed afterwards so the class of failure is smaller. The fourth is the one being scored.

  4. How would you know if the system was broken right now?Show the answer guide

    Answer with what you'd actually look at, in order — error rate, latency at the tail rather than the average, saturation, and the one business metric that says whether users are getting what they came for.

    The last one is the answer most candidates miss. A service can be green on every technical dashboard while orders have dropped to zero because a partner changed a field, and a team that watches only its own metrics finds out from the customer.

  5. How much of this did an assistant write, and how do you know it's right?Show the answer guide

    Ask about the policy before the exercise starts, not afterwards. Employer positions vary sharply — no assistance during assessment, assistance in preparation only, or an explicit interest in watching how you use it — and asking is always received better than being found out.

    Where it is allowed, what's being measured is your review, not your prompting. Say which part you took as written, which you rejected and why, what you tested about it, and where you went to the documentation because you weren't sure. For backend work name the specific things you always check yourself: anything touching authorisation, anything that writes money, anything with a retry in it.

    The failing answers are the two extremes — claiming you write everything unaided in a profession where almost nobody does now, or handing over code you cannot defend line by line. Both are the same failure: claiming ownership you cannot back under one follow-up question.

Also asked, and worth two sentences each: how you would find a memory leak · what you'd put in an alert versus a dashboard · the last time you were paged and what it turned out to be · how you'd load-test something before a launch.

The team questions

All levels

Shorter than on most role pages, deliberately, because for this role the behavioural signal mostly arrives inside the technical answers. These three are the ones that still get asked on their own.

  1. Tell me about a technical decision you argued for and lost.Show the answer guide

    A better question than the one about a decision you won, and it is asked more often than candidates expect. What's being tested is whether you can be overruled and still do the work well.

    Weak

    I wanted to use a different technology but the team decided to go another way. I disagreed but I supported the decision and we made it work. I think it's important to be a team player.

    No position, no argument, no consequence, and a closing line that is a personality claim rather than evidence. It also quietly implies you were right, which is the thing the question is checking you won't do.

    Strong

    I pushed to split the reporting queries onto a read replica; the lead wanted to keep one database until we had a real problem. I lost, and I wrote down what I expected to happen so we'd know. Six months later a month-end report locked the orders table for two minutes and we did the split then — and it was easier by then because we'd added the query tags I'd asked for in the meantime. In hindsight he was right about the timing and I was right about the direction.

    There's a concrete position, a concrete counter-position, a record of the prediction, an outcome, and — the part that makes it credible — a genuine concession that the other side was right about something. It reads as somebody describing a colleague rather than winning an argument a year later.

    If the story ends with you being vindicated and nothing else, it is not an answer to this question.

  2. How do you review someone else's pull request?Show the answer guide

    Say what you look for in order — does it do what it claims, what happens on the unhappy path, what happens on a retry, and is anything here going to be expensive at ten times the volume. Style comes last and mostly belongs to a linter.

    Then the human half: separate the blocking comment from the suggestion, say which is which explicitly, and move to a call at about the fourth reply. Reviewers who mark every comment as blocking are a real cost on a team and interviewers know it.

  3. How do you explain a technical trade-off to someone non-technical?Show the answer guide

    In time and money and risk, not in nouns. "Two weeks now and it stays fast at ten times the traffic, or three days now and we redo it around March" is the answer; naming the architecture is not.

The closing conversation

The part most candidates waste. What you ask here is read as carefully as what you answered.

Questions to ask them

For this role the revealing questions are about operations, because that is the part of the job nobody writes in the ad. Two or three is plenty.

  • Who is on call, how often, and what was the last page about?
  • How long does it take a one-line change to reach production?
  • What's the oldest service still running, and who understands it?
  • How do you decide what gets built — and does engineering get to say no?
  • What broke most recently, and what changed afterwards?

Ask the first one. "What was the last page about" is almost never rehearsed, and the answer tells you more about the engineering culture than any of the prepared ones.

The system-design round, and what it is really scoring

Candidates prepare this round as though the goal is the right diagram. It isn't. The interviewer already knows a design that works; what they're finding out is whether you ask what the requirements are before drawing, whether you say what your design is bad at, and whether you can be handed a new constraint halfway and adapt without starting over.

So spend the first five minutes on questions — how many users, read-heavy or write-heavy, how stale can this be, what must never be lost — and say the numbers back before you draw. Then design the simple version and add a component only when you can name the requirement that forced it. Two habits read very well: naming what you'd measure to know the design is working, and naming the part you're least sure about. Candidates think admitting uncertainty costs them; in this round it is close to the whole signal.

Local notes

Building for a client in another timezone

In a market built on exported outsourcing services, a large share of backend hiring is for delivery centres and offshore teams serving clients in other time zones. ITIDA, the ICT industry development agency, reports more than 240 offshoring companies operating more than 270 global delivery centres, with digital exports around USD 4.8 billion in 2025.

For a backend role specifically that changes three things. You will be asked about on-call across a timezone — whether you have carried a pager for a system whose users are awake while you are not. Written design documents matter more than they would locally, because a decision that would be settled at a desk gets settled in a document read eight hours later. And the data-residency question becomes contractual: the client's own obligations decide where your database runs, and being unbothered by that is a red flag to the person hiring you.

Markets with statutory pay-transparency rules

Longer loops with more stages, a system-design round that is genuinely weighted, and notice periods measured in months — state yours at the screen rather than at the offer. Take-home exercises are common and are usually discussed afterwards rather than scored in isolation, which means the conversation about your submission matters as much as the submission.

On pay questions, applicants across the EU have a right to pay information for the role before the interview and employers are not to ask about pay history. The scope is narrower than it is usually reported and the universal screening guide sets it out properly.

Markets with a published wage benchmark and a long onsite loop

The federal labour statistics office projects about 106,100 annual openings for software developers, QA analysts and testers over the 2025–2035 decade, with a median wage of $135,980 in May 2025. A frame rather than a band: the occupation code does not separate backend from anything else.

The loop is the familiar one — recruiter screen, technical screen, then several sessions in a block, typically including one system-design round and one on past work. The past-work session is scored on depth of ownership, so prepare one system you can be interrogated about for forty-five minutes.

One rule covers all three: find out whose interview you are actually in. An engineer interviewing with a client in another country is in that country's loop conducted in English, and preparing for the local version is how a strong candidate is surprised at stage two.

The two pages every job shares

This guide covers your field. These two cover the frame the questions are built on — the behavioural canon, and the screening call that decides who reaches an interview at all.

  • Behavioral interview questionsThe canon every profession shares: error, conflict, pressure, initiative, and where your limits are.www.atshiring.com/en/interview-questions/behavioral
  • Screening and first-round questionsThe recruiter call: introductions, the administrative gate, and where people lose money on salary.www.atshiring.com/en/interview-questions/screening

Before the interview

No resume yet?

Build an ATS-safe one, then come back to the questions.

Build a resume

Ordering note

The ordering here is editorial judgement, not measured frequency. There is no public dataset ranking interview questions for this role, and the candidate-report archives that support company attributions on other pages of this site were not readable for engineering titles in this pass. So no question carries a company attribution and none pretends to. Sections follow the shape of a normal loop; within a section, the order reflects what we judge decides the outcome.

The one section that states a regulation carries the date a person checked it, and the sources are recorded in the page's own data. The craft opinions on this page — and there are several, on purpose — are written as opinions rather than as findings.

Sources

Everything consulted for this page, named in plain text.

  • MHRSD Ministerial Resolution 28889 (18/2/1442H, 5 October 2020) — ICT roles nationalisation, via a Gulf law-firm client alert
  • Saudi financial-press report of the ICT Saudization commencement, dated 27 June 2021
  • Saudi expatriate work-permit skill classification (2025) — global-mobility alerts from two international advisory firms
  • US Bureau of Labor Statistics — Occupational Outlook Handbook, Software Developers, QA Analysts and Testers
  • Information Technology Industry Development Agency (ITIDA), Egypt — industry outlook
  • Our own job-board reading, 2026-09-03, recorded in docs/notes/interview-questions/roles-shortlist.md (row 8)