Backend developer interview questions and how to answer them
Backend interviews for remote roles focus on data correctness, API design, performance and failure handling. Expect a coding round, questions about databases and caching, and at mid-level and above, a system design round.
These are questions we see often in interviews for remote backend roles open to Nigerian candidates.
Updated October 2026 by the WorkRemote careers team
On this page
About the role and your experience
Openers that check you understand the job and have done the work.
Why backend?
Why they ask
To see whether you understand what the job really involves.
How to answer
Talk about enjoying data correctness, performance and systems that keep working under load. Give an example of a problem you enjoyed solving.
Technical questions
What you know and how you'd do the work, often with a live task or test.
What is the difference between 401 and 403, and when do you return 409 or 422?
Why they ask
Status codes show whether you design APIs carefully or just return 200 and 500.
How to answer
401 Unauthorized means the request has no valid authentication. 403 Forbidden means the user is authenticated but not allowed to do this. 409 Conflict suits a state conflict such as a duplicate username or a version clash. 422 suits a well-formed request that fails validation. Say that consistency across the API matters more than winning a debate about 400 versus 422.
A payment provider sends the same webhook twice. How do you stop the customer being credited twice?
Why they ask
Idempotency is basic to payments work and a favourite question at fintechs.
How to answer
Store the provider's event ID or transaction reference with a unique constraint, and process the credit in the same database transaction that records the event. If the insert fails on the unique constraint, return 200 without doing anything. Also verify the webhook signature and, for money, confirm the transaction status with the provider's API.
Show a sample answerHide the sample answer
At my last job we used Paystack. I added a processed_events table with a unique index on the event reference and wrapped the insert and the wallet credit in one PostgreSQL transaction. When Paystack retried, the insert failed, we returned 200 and nothing was credited twice. We also re-verified the amount with Paystack's verify endpoint before crediting.
How does a database index work, and when can it make things worse?
Why they ask
Indexes are the most common fix for slow queries, and a common source of slow writes.
How to answer
Most indexes are B-trees that let the database find rows without scanning the whole table. They speed up reads on the indexed columns but slow down inserts and updates and use storage. For a composite index, column order matters: an index on (customer_id, created_at) helps queries filtering on customer_id, but not queries filtering only on created_at.
Explain database transactions and isolation levels.
Why they ask
Data correctness under concurrency is the heart of backend work.
How to answer
A transaction groups operations so they all succeed or all fail (atomicity) and leave data consistent. Isolation levels control what concurrent transactions see: Read Committed (PostgreSQL's default) prevents dirty reads; Repeatable Read prevents non-repeatable reads; Serializable makes transactions behave as if run one after another. Give a practical example such as using SELECT ... FOR UPDATE to stop two requests withdrawing the same balance.
What is the N+1 query problem and how do you fix it?
Why they ask
It is the most common ORM performance bug.
How to answer
Loading a list of N records, then running one more query per record to load a relation, gives N+1 queries. Fix it with a join or eager loading (
select_relatedandprefetch_relatedin Django,includein Prisma) or by batching IDs into one query. Mention how you detect it: query logs, APM traces or a test that asserts the query count.Sessions or JWTs for authentication: which would you choose?
Why they ask
They want reasoning, not a favourite.
How to answer
Server-side sessions with a secure, HttpOnly cookie are simple and easy to revoke, which suits most web apps. JWTs avoid a session lookup and suit service-to-service calls or some mobile setups, but are hard to revoke before expiry, so keep them short-lived with refresh tokens. Never store tokens in localStorage if you can avoid it, because XSS can read it.
How would you design rate limiting for a public API?
Why they ask
A practical design question that covers algorithms and infrastructure.
How to answer
Pick a key (API key, user ID or IP), an algorithm (fixed window is simple; sliding window or token bucket is smoother), and a shared store such as Redis so limits work across several servers. Return 429 with a Retry-After header. Mention different limits for different plans and endpoints.
When would you put work on a queue instead of doing it in the request?
Why they ask
Queues are central to reliable backends.
How to answer
When the work is slow, can fail and be retried, or the user does not need to wait: sending emails, generating PDFs, calling a flaky third party. Explain retries with exponential backoff, a dead-letter queue for jobs that keep failing, and making jobs idempotent because most queues deliver at least once.
How do you keep a cache consistent with the database?
Why they ask
Cache invalidation causes real production bugs.
How to answer
Explain cache-aside (read from cache, fall back to the database, then populate the cache), setting a TTL, and deleting the cache key when data changes. Cover the trade-off between freshness and load, and the stampede problem when a hot key expires, which you can soften with locks or jittered TTLs.
Design a notifications service that sends email, SMS and push messages.
Why they ask
A typical system design round for mid-level backend roles.
How to answer
Clarify volume, latency and which channels. Then propose an API that accepts a notification request, stores it, and puts it on a queue; workers per channel call providers such as SendGrid, Twilio or Termii, and Firebase Cloud Messaging; retries with backoff; user preferences and quiet hours; templates; and a status table for delivery tracking. Discuss what happens when an SMS provider is down.
How do you run a migration on a large table without downtime?
Why they ask
Shows production maturity.
How to answer
Avoid locking operations on big tables. Add new columns as nullable, backfill in batches, then add constraints. Create indexes concurrently in PostgreSQL. Deploy code that works with both old and new schemas, and only remove old columns once nothing uses them.
Behavioural questions
Past situations. Answer with a real example: what happened, what you did, what changed.
Tell me about a production incident you were involved in.
Why they ask
They want honesty, calm under pressure and learning.
How to answer
Describe the impact, how it was noticed, what you did first (stop the bleeding), how you found the cause, and what changed afterwards. Keep blame out of it.
Show a sample answerHide the sample answer
A deploy added a NOT NULL column with a default to our orders table, which locked writes for several minutes in the evening rush. I rolled back, we added the column as nullable and backfilled in batches the next morning. I wrote the post-mortem and we added a migration checklist to our pull request template.
How do you explain a technical trade-off to a non-technical founder?
Why they ask
Remote backend developers often report to founders or product managers.
How to answer
Focus on cost, risk and time, not jargon. Offer two or three options, recommend one and say what you would watch for.
Situational questions
Hypotheticals about problems you'd meet in the job.
The frontend team needs an endpoint by tomorrow, but the data model is not settled. What do you do?
Why they ask
Real teams have to move before everything is decided.
How to answer
Agree a response contract now and document it in OpenAPI, return mocked or partial data behind that contract, and keep the internal model flexible. Flag clearly what may change.
Remote work questions
How you'll work from Nigeria with a team elsewhere: hours, power, internet, communication.
You are on call and an alert fires at 2am Lagos time, but your power has gone off. What do you do?
Why they ask
They want to know you have thought about it before it happens.
How to answer
Explain your setup first (inverter or solar, hotspot on a second network), then the process: acknowledge the alert so others know you are on it, triage on battery power, and escalate to the secondary on-call if you cannot fix it quickly.
How do you make sure your work is visible to a team you rarely see?
Why they ask
Remote backend work can disappear from view because there is no UI to show.
How to answer
Small, well-described pull requests, short written updates, design docs before big changes, and dashboards or metrics that show the effect of your work.
Remote interview tips
System design interviews happen on a shared whiteboard such as Excalidraw or Miro. Practise drawing quickly with a mouse or trackpad beforehand; it is slower than you expect.
Keep a sample project open and running during technical calls in case they ask you to walk through real code. Close anything with client secrets first.
When asked about on-call or overlap, answer concretely: which hours you can cover, and what your backup power and internet are.
Questions people ask
Do backend interviews include system design?
For mid-level and senior roles, almost always. Juniors may get a lighter version, such as designing the database for a small app.
What should a backend take-home include?
Working endpoints, input validation, error handling, tests, a docker compose file to run it, and a README explaining decisions and what you would do with more time.
How much SQL do I need for backend interviews?
You should write joins, group by, subqueries and window functions comfortably, and explain indexes and transactions. Some companies give a pure SQL exercise.
Are algorithm questions common in backend interviews?
At many US companies, yes. Practise medium-level problems on arrays, hash maps, trees and graphs. Smaller startups often prefer practical tasks.
Updated October 2026 by the WorkRemote careers team
Interview questions for roles close to backend developer
- Software Engineer
A software engineer designs, writes, tests and maintains the code behind products, and it is one of the remote jobs Nigerians most often get with foreign companies. Entry-level remote roles are rare, so most people get their first two years of experience locally or through freelance work before landing a dollar-paid contract.
- Full Stack Developer
A full stack developer builds both the user interface and the server side of a product, often React or Next.js on the front and Node.js, Python, Laravel or Rails behind it with a SQL database. Startups hiring remotely like full stack developers because one person can ship a whole feature, and many Nigerians land remote work this way after a few years at an agency or startup.
- Python Developer
A Python developer writes software in Python, most often web backends with Django or FastAPI, but also automation scripts, data pipelines and the tooling around AI models. Remote companies hire Nigerian Python developers for all of these, and Python skills also open dollar-paid AI training and evaluation work.
- DevOps Engineer
A DevOps engineer builds and runs the machinery that takes code from a developer's laptop to production: CI/CD pipelines, Docker images, Kubernetes clusters and Terraform-managed infrastructure. It is very doable remotely from Nigeria, but it is rarely a first tech job, because employers are handing you access to production.