To interview a software engineer, combine a live coding or take-home exercise with questions on data structures, time complexity, debugging, and system design. This set covers algorithmic problem-solving, code quality, version control, testing discipline, and how candidates collaborate and reason through ambiguous requirements under realistic constraints.
Run a software engineer interview as a mix of a hands-on coding exercise and structured discussion, scoring problem decomposition, code clarity, and how the candidate explains trade-offs. Keep one round practical (live or take-home) and one focused on collaboration and judgment.
Walk me through how you would reverse a linked list in place, and what the time and space complexity is.
What to look for: Correct pointer manipulation without extra allocation, clear O(n) time and O(1) space reasoning, and naming edge cases like empty or single-node lists.
When would you choose a hash map over a sorted array or a tree, and what are the trade-offs?
What to look for: Understands average O(1) lookup vs ordered traversal, collision handling, memory overhead, and when cache locality or ordering changes the choice.
Describe a bug you found that only appeared in production. How did you isolate and fix it?
What to look for: Systematic debugging: reproducing the issue, reading logs, binary-searching the change set, adding a regression test, not just patching the symptom.
How do you decide what to unit test versus integration test, and what makes a test valuable to you?
What to look for: Tests behavior not implementation, values fast deterministic unit tests, knows the test pyramid, and treats a flaky test as a defect.
Explain how you would handle a function that needs to be backwards-compatible while you change its signature.
What to look for: Versioning, deprecation paths, default arguments or adapter layers, feature flags, and awareness of callers they don't control.
What does idempotency mean and where would you enforce it in a retryable operation?
What to look for: Defines idempotency precisely, applies it to payments or message processing, and uses idempotency keys or dedup logic rather than hoping retries are safe.
How do you structure a Git history and pull request so reviewers can actually follow your change?
What to look for: Small focused commits, meaningful messages, scoped PRs, self-review before requesting review, and responsiveness to feedback.
Given a function that's gotten 300 lines long, how do you decide whether and how to refactor it?
What to look for: Refactors behind tests, extracts cohesive units, names by intent, and weighs refactor cost against churn instead of gold-plating.
Tell me about a time you disagreed with a code review comment. How did you resolve it?
What to look for: Treats review as collaboration, separates ego from code, escalates with data, and can change their mind or defend a position respectfully.
Describe a project where you had to learn an unfamiliar language or framework quickly.
What to look for: Self-directed learning, reading docs and source, building a small spike, and shipping despite incomplete knowledge.
When have you had to ship something imperfect to hit a deadline, and what did you do about the debt later?
What to look for: Pragmatic trade-offs, explicit tracking of tech debt, and follow-through rather than abandoning it.
Tell me about a time you mentored a less experienced engineer through a tricky problem.
What to look for: Patience, ability to teach by guiding rather than taking over, and investment in raising the team's overall level.
A teammate's merged change broke the build for everyone and they're offline. What do you do?
What to look for: Reverts to unblock the team first, communicates clearly, then diagnoses, valuing team velocity over assigning blame.
You're given a vague ticket: 'make the app faster.' How do you turn that into actionable work?
What to look for: Asks for the metric, profiles before optimizing, finds the actual bottleneck, and avoids premature optimization.
You inherit a service with no tests and a recurring outage. Where do you start?
What to look for: Adds monitoring and a characterization test around the failing path before changing code, then fixes incrementally.
Two reasonable approaches solve a problem but the team is split. How do you drive a decision?
What to look for: Frames the trade-offs, gathers data, seeks a reversible choice, and commits the team rather than letting analysis stall progress.
Get a personalized walkthrough of Pitch N Hire on your own roles and workflow. No slides, no obligation.
Prefer to talk? Book a demo · View pricing
Free 1-user plan · No credit card · Talk to a real hiring expert
See how Pitch N Hire automates sourcing, screening and AI interviews on your real roles. Start with your work email — no credit card.
★ Free 1-user plan · No spam · Talk to a real hiring expert