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
  1. About the role and your experience
  2. Technical questions
  3. Behavioural questions
  4. Situational questions
  5. Remote work questions
  6. Remote interview tips
  7. FAQs

About the role and your experience

Openers that check you understand the job and have done the work.

  1. 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.

  1. 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.

  2. 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 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.

  3. 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.

  4. 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.

  5. 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_related and prefetch_related in Django, include in 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  1. 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 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.

  2. 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.

  1. 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.

  1. 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.

  2. 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

Share or discuss this guide