Backend Engineer
Tell me about a time you changed a database schema on a live system. How did you do it without downtime?
What the interviewer is looking for
- This question tests databases & data modelling. Chooses schemas and indexes for real query patterns, understands transactions, and describes safe migrations on live data.
- What to bring out: Expand and contract steps, backward-compatible deploys, backfilling in batches, monitoring, and a rollback plan.
- Expect a follow-up like: What went wrong or nearly went wrong during that change?
Another way it may be asked: You need to rename a column that the running app reads every second. How do you make that change safely?
A structure to follow: STAR, with the weight on Action and Result
- Step 1
Situation
One or two sentences: where, when and what was at stake. Pick a real example you were close to.
- Step 2
Task
What you personally were responsible for. Say "I", not only "we", so the databases & data modelling you showed is visible.
- Step 3
Action
The two or three things you did and why you chose them over the alternatives. This should be about half your answer.
- Step 4
Result
What changed, in your own measure of it, and what you would do differently. Only use numbers you can stand behind.
This is guidance on shape, not a script. Use your own real experience and facts; never invent details to fill a gap. See the STAR guide and answer frameworks.
Common slips
- Describing what the team did without saying what you did.
- Choosing an example with no clear outcome, or one you cannot answer detailed questions about.
- Ending on the action and skipping the result and what you learned.
How to practise it
Write two bullet points for each STAR letter, then say the answer aloud in about two minutes.
Related questions
- What is a database index, and how would you decide whether a column needs one?
- If you were building an API for a simple to-do app, what endpoints would you create, and how would you handle errors?
- How do you protect a web application from someone sending malicious input, such as an SQL injection attack?
- An endpoint starts timing out in production at peak hours. How would you investigate, and what would you look at first?
- How do you handle two requests trying to update the same record at the same time?