Software Engineer
Your codebase has growing technical debt and there's pressure to ship features. How do you make the case for paying some of it down?
What the interviewer is looking for
- This question tests testing & code quality. Explains what deserves tests and why, distinguishes unit from integration tests, and treats readability and refactoring as part of the job.
- Strong answers: Tying debt to concrete costs like slower delivery or incidents, prioritising the most painful areas, incremental refactoring alongside features, and getting buy-in with evidence.
- Likely follow-up: How would you measure whether the clean-up actually paid off?
Another way it may be asked: Every new feature takes longer because of old messy code, but the business wants more features. What would you do?
A structure to follow: Answer, explain, example, limits
- Step 1
Answer
Give your direct answer in the first sentence so the interviewer knows where you are going.
- Step 2
Explain
Say how it works or why you would do it that way, in plain words before jargon.
- Step 3
Example
Anchor it in something you have actually done or seen, with the detail that shows hands-on experience.
- Step 4
Limits
Say when your approach would not be the right one. It shows judgement.
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
- Reciting a definition without showing you have applied it.
- Using terms you cannot explain if asked a level deeper.
- Claiming experience beyond what you can discuss in detail.
How to practise it
Say the answer in 90 seconds, then answer the follow-up as if it were a new question.
Related questions
- How do you decide what to test in a new feature, and how do you balance unit tests against integration tests?
- When would you pick a hash map over a list to store data, and what does that choice cost you?
- Imagine your code works on your laptop but fails in the test environment. Walk me through how you would start figuring out why.
- How do you usually use Git day to day, from starting a piece of work to getting it merged?
- Tell me about the trickiest bug you have tracked down. How did you find the root cause?