Backend Engineer Interview Questions — Entry Level
A junior backend interview is not a small version of the senior one. It has a different subject: the senior one is about what happened when something broke, and this one is about whether you have ever had something of your own running somewhere other than your laptop.
Expect to write a query while somebody watches, and expect to be asked what happens between a request leaving a browser and your function running. Both are ordinary. Neither is a trick. The general sets further down are on the full page too, because a graduate gets screened and asked about a visa like everyone else — this set is the one written for you.
Start here — five written for this level
The opening of the set that exists only on this page, in the order we would prepare it. Editorial judgement, not a frequency count.
The phone screen
A recruiter filtering, not evaluating. Answer these quickly and get to the part that decides.
These two pages teach the frame. This page gives you the version that fits your field — read them together.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Entry level: the first backend job
Entry level
The junior backend interview has one recurring shape, and knowing it changes how you prepare. You will be asked to do a small thing in front of somebody — write a query, read an error, explain a request — and the thing itself is easy. What is being watched is whether you narrate, whether you check, and whether you say the words "I don't know" at a sensible moment rather than three minutes late.
The second thing worth knowing: nobody expects you to have run a system. They expect you to have run something. A deployed side project, an API a friend's shop actually used, a script that ran on a schedule and broke once — any of those is worth more here than a certificate, because all of them contain the moment where it stopped working and you were the only person available.
Show me an API you built and walk me through one endpoint.Show the answer guide
One endpoint, not the architecture. Candidates reach for the diagram because it feels more impressive, and the diagram is where a junior gets caught, because the follow-up is "and which of those did you write."
Take the request from the top and say each thing out loud as it happens: what comes in and in what shape, what you check before you trust it, what you ask the database for, what you send back, and what status code goes with it. Five sentences. If you cannot do that for any endpoint you have written, that is the thing to fix this week.
Then say what is wrong with it. Every first API has something: no validation on one field, an error handler that swallows the real message, a secret that was in the repository until you noticed. Naming it yourself converts an amateur decision into an observation, and observations are what a junior is hired for.
One candidate's version
It's a small booking API for a barber shop — one endpoint takes a slot id and a phone number, checks the slot is still free, writes the row, and returns the booking. The thing I'd change is that I check availability and then insert as two separate steps, so two people booking the same second would both get it. I only found that out when a friend and I tried it on purpose.
Your endpoint, your flaw. The shape is: the five sentences, then the one thing you would not ship again.
What actually happens between the browser sending the request and your handler running?Show the answer guide
Open-ended on purpose, and how far you get is the measurement. There is no single required depth, but there is a required honesty: name the stage you are unsure of rather than inventing a smooth sequence.
The spine: the name resolves to an address, a connection opens and — over TLS — is negotiated once and then reused, the request goes to whatever is listening on that port, which may be a proxy or a load balancer rather than your code, and that hands it to your process, where a router matches the path and method and calls your function.
The two additions that read as real: say where the request could die that has nothing to do with you — the proxy timing out, the connection pool being empty — and say that the headers matter, because the content type and the authorisation header are the two things you will spend a junior year debugging.
When is it a 401, when a 403, and when a 422?Show the answer guide
401 means we do not know who you are — no credential, or one we cannot verify. 403 means we know exactly who you are and you are not allowed this. 422 means we understood the request and the contents are wrong.
Say the practical consequence, which is what separates recall from use: the client does completely different things with each. A 401 sends the user to log in again. A 403 must not, or you have built a login loop that logs a legitimate user out forever. And returning 200 with an error message inside it — a habit worth breaking early — breaks every client that checks the status, including the one written by somebody else next year.
Write me a query that joins two tables and counts. Talk while you type.Show the answer guide
Expected and ordinary — the hard part is the audience, not the SQL. Say the shape before you type it: which table you are starting from, what joins to what and on which column, what you are grouping by, and what you are counting.
Two traps live in this exercise whatever shape it takes. An inner join silently drops the rows with nothing on the other side, so "customers and their order counts" quietly loses every customer who has never ordered — say that out loud and reach for a left join if the question wants all of them. And counting a nullable column counts only the non-null values, which is exactly what you want in some cases and a silent bug in others.
If you blank on the syntax, say what you are trying to express in words and write it anyway. An interviewer will take a candidate who describes the correct query and misplaces a keyword over one who writes valid SQL for the wrong question.
What's a foreign key for?Show the answer guide
To stop a row pointing at something that isn't there — the database refuses the orphan rather than trusting every future piece of code to remember. Say the second half too: it is also a statement about what happens on delete, and choosing between refusing, cascading and setting null is a real decision, not a default.
Your endpoint returns a list, and each row needs the author's name. How do you get it?Show the answer guide
This is the N+1 question, and it is asked at this level because it is a mistake you write before you know it has a name.
The instinct is to fetch the list, then loop over it and fetch each author. Say that out loud if it is what you would do, then say what is wrong with it: one query becomes one plus however many rows there are, so it is fine on the twelve rows in your development database and it is a hundred queries on the real page.
Then the fixes, in the order they are worth reaching for. Join and get it in one query. Or fetch the authors in a second query with all the ids at once and stitch them together in code — two queries, no matter how many rows, and it can be the more readable of the two. If you use an ORM, say which of its options loads the relation eagerly, because an ORM that has such an option puts the whole class of problem one configuration line away.
The best possible ending: say how you would notice. Logging the query count for a request, in development, is a habit worth having before anyone asks you to have it.
Where does the password go?Show the answer guide
Hashed with a slow algorithm built for passwords, with its own salt, and never anywhere else — not in a log line, not in an error message, not in the request you print while debugging. If you cannot name the algorithm, say you would use whatever the platform's own library recommends today and would not choose one yourself. That is the correct answer at this level, and it does not stop being correct later.
It works on your machine and returns a 500 on the server. What do you check?Show the answer guide
A situation you will meet, and the answer people reach for is a list of guesses. Give a procedure instead.
Read the actual error before anything else. Not the 500 the browser shows — the stack trace in the server's own logs. Debugging at this level goes wrong when somebody reasons out a cause that is written in plain text somewhere they have not looked.
Then the four differences between the two environments, in the order they bite: configuration — an environment variable that exists locally and not there, which is the first thing to check; the database — a migration that ran on your machine and not on the server, so a column the code expects is missing; file paths and case — your laptop's filesystem does not care about capitals and the server's does, which produces an error that looks like nothing; and versions — a different runtime or dependency version than the one you developed against.
Finish with what you would change so it stops happening: the same configuration list checked into the repository as an example file, and a startup check that refuses to boot with a clear message when a required variable is missing. Crashing loudly at start beats a 500 an hour later, and saying that is a genuinely senior instinct arriving early.
The three environment questionsShow the answer guide
Where do the secrets live · what is in your .gitignore · what is the difference between your development and production settings. One question, three doors, and it is diagnostic in a way no amount of preparation covers.
Answer with the truth including the embarrassing part. If you once committed a key and had to rotate it, that story is worth more than any policy you can recite — it is the only version of this answer that proves you understand why it matters. What you do not want to say is that you have never thought about it, and what you must not say is that the credentials are in the repository and it is fine because it is private.
Then the concrete list: secrets come from the environment, never from a checked-in file; the example file in the repository has the variable names and no values; and the difference between environments is configuration rather than code, because an `if` on the environment name scattered through the codebase is how a debugging endpoint ends up live. Say that debug output must be off in production — a stack trace on a public error page tells a stranger your framework, your file layout and sometimes your query.
How do you know your endpoint works?Show the answer guide
Answer honestly first. If the truth is that you called it and looked at the response, say so — that is a real answer and pretending otherwise is transparent.
Then go one step further than the honest answer, which is what the question is for. Say which cases you would call it with beyond the one that works — the missing field, the id that does not exist, the same request sent twice — because those three are where the bugs are, and naming them shows you think past the happy path.
If you have written a test, say what it asserts rather than which library you used. If you have not, say so and say which one you would write first: the one for the case that would be most expensive to get wrong.
You've only ever built CRUD. Why should we hire you?Show the answer guide
It sounds dismissive and it is not. They have already decided to interview somebody at your level; they are asking you to make the case in your own words, and it is easy to spend the time apologising instead.
Do not argue with the premise. Create, read, update and delete with rules on top is ordinary backend work rather than a lesser kind of it, and a candidate who says so calmly sounds more experienced than one who insists their project was architecturally interesting.
Weak
It wasn't just CRUD actually — I used a layered architecture with services and repositories, and I implemented JWT authentication and role-based access control. I'm confident I could handle more complex systems.
It argues with the question, and every noun in it is a pattern name rather than a decision. "I'm confident I could handle" is the sentence the interviewer will test, and they will test it immediately.
Strong
That's fair, and it is CRUD. The part I'd point at is that I had to change the shape of the bookings table after real people were using it, so I couldn't just drop and recreate it like I had been doing all year. I wrote the migration wrong the first time, lost an evening of test bookings, and now I write the rollback before the migration. That's the only real thing I've learned that wasn't from a course.
It concedes the premise in the first four words, then produces one specific moment with a cost and a habit that came out of it. The habit is the hireable part.
Concede the level, then give the one thing that happened to you rather than to the tutorial.
Have you deployed anything yourself?Show the answer guide
A yes or no with a story attached, and the story is what is being asked for. Where it runs, how the code gets there, what happens when it falls over, and whether anything restarts it.
A small deployment you did badly and understand completely is a better answer than a managed platform that did everything for you. If a service builds and runs it on a push, say that plainly rather than dressing it up — the room knows what those platforms do, and claiming more is one question away from being found out.
If the answer is genuinely no, say so and say what stopped you. "I've never had anything worth paying to host" is an honest sentence that costs you nothing. "I'd start by getting the thing I built last month running somewhere with a real domain" is a better follow-up than any hedge.
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
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)