Clean Code, Refactoring, and Maintainability Questions

Writing code that other people can read, change, and keep alive over time: naming, function and module decomposition, avoiding duplication, readability, disciplined use of language idioms and design patterns, and recognizing code smells, extending into working effectively in large, aging, or unfamiliar codebases through safe incremental change, refactoring under test coverage, and managing technical debt. Covers both authoring professional-grade code beyond mere correctness and improving code you cannot rewrite without breaking it. Spans the coding-round quality signal and the seniority signal of leaving a codebase healthier than you found it.

MediumTechnical
28 practiced

You're shown a concrete, messy class (or class hierarchy) from a real codebase. Identify which SOLID principle(s) it violates, explain the concrete symptom that violation causes for callers or maintainers, and propose an incremental fix.

EasyTechnical
33 practiced

Explain the Single Responsibility Principle. What does 'responsibility' mean precisely (a reason to change, not merely 'does one thing'), and how do you recognize an SRP violation in a class or module you're reading for the first time?

HardSystem Design
38 practiced

You maintain an internal library or public API used by many callers, and you need to change its behavior or shape without breaking them. Design a versioning and deprecation strategy: how you signal the change, how long you support both, and how you know when it's safe to remove the old path.

EasyTechnical
36 practiced

What role do linters, formatters, and static analysis play in keeping a codebase clean? Name a couple of representative tools and explain the difference between what runs locally (pre-commit) versus in CI, and why that split exists.

MediumTechnical
36 practiced

An HTTP POST endpoint receives JSON that may include optional nested fields and arrays, for example {user: {name, email, preferences?: {newsletter?: boolean}}, items?: [{id, qty}]}. List the input validation and defensive checks you would implement on the server side to make the endpoint robust and secure. Specify the order in which you would run the checks, which HTTP status codes you would return for each failure, and how you would log or report invalid input.

Unlock Full Question Bank

Get access to all 37 Clean Code, Refactoring, and Maintainability interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.