Cookies on this site

Strictly necessary cookies keep the site working. Our analytics and advertising tags — Microsoft Clarity and Google Tag Manager — stay switched off, and write no cookie, until you accept them. Privacy Policy

Book Free Demo Start Hiring Free
16 Interview Questions

Interview Questions for a Software Engineer

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.

Last updated

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.

01 Questions to ask

Technical & Role-Specific

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.

Behavioral

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.

Situational / Problem-Solving

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.

02 After the interview

Software Engineer interview scorecard

Score every candidate on the same criteria, immediately after the interview, using evidence you actually heard rather than an overall impression. Agree the criteria with the panel before the first interview β€” deciding what counts after you have met people is how the loudest interviewer wins the debrief.

Criterion Evidence to record Score 1-5
Technical & Role-Specific What the candidate actually said or did, in their own example β€” not your impression of it 1 2 3 4 5
Behavioral What the candidate actually said or did, in their own example β€” not your impression of it 1 2 3 4 5
Situational / Problem-Solving What the candidate actually said or did, in their own example β€” not your impression of it 1 2 3 4 5
Overall recommendation Strong no / no / mixed / yes / strong yes, with the single reason that decided it -

Want this as a reusable document? Use the interview scorecard template.

03 Risk

Questions to avoid asking a Software Engineer

Exactly which questions are unlawful depends on where you are hiring, and the rules change β€” so treat this as the list of topics to route through your own employment counsel, not as a legal standard. The practical test that holds everywhere: if the answer could not change how the person does this job, you have no reason to ask it.

Age, date of birth, or when someone graduated as a proxy for age Marital status, pregnancy, children, or plans to have them Religion, ethnicity, national origin, or first language where it is not a genuine job requirement Disability or health history β€” ask whether they can perform the role's actual duties, with adjustments Salary history, which is restricted in a growing number of jurisdictions; ask about expectations instead Criminal record, outside the specific circumstances your local law permits and the role genuinely requires Anything you would not ask every other candidate for this role, because inconsistency is itself the risk

Run Software Engineer interviews on one platform

Recruiting terms explained

Related roles to hire

FAQ

Frequently asked questions

How many interview rounds for a Software Engineer?
Most teams run three to five rounds: a recruiter screen, one or two technical coding rounds, a system or design discussion, and a behavioral or team-fit round. Smaller companies compress this into two or three. Keep the coding round practical and the panel calibrated so scores are comparable.
Should I use a take-home assignment or live coding?
Both have trade-offs. Live coding tests thinking under observation but can favor confident communicators; a take-home is closer to real work but costs candidates hours. A short pair-programming session or a time-boxed take-home with a follow-up discussion often gives the most signal with the least bias.
What is the most important skill to screen for in a software engineer?
Beyond raw coding, screen for problem decomposition and code clarity: can the candidate break an ambiguous problem into testable pieces and write code another engineer can maintain. Debugging discipline and collaboration usually predict on-the-job success better than memorized algorithms.
How do I evaluate junior versus senior software engineers differently?
Juniors should show strong fundamentals, curiosity, and coachability. Seniors should demonstrate design judgment, mentoring, and the ability to weigh trade-offs across systems and teams. Adjust the weight of system-design and leadership questions accordingly rather than using one rubric for all levels.
Pitch N Hire ATS

Run these interviews structured, and compare candidates fairly

Pitch N Hire is an applicant tracking system with built-in interview scorecards. Load these questions into a scorecard so every interviewer assesses the same criteria and you can compare candidates side by side.

Scorecards so each interviewer rates the same criteria
Interview scheduling without the email back-and-forth
Side-by-side candidate comparison before the hiring decision

Free for 1 user Β· No credit card Β· Talk to a real hiring expert

Built for recruiters & hiring teams

See how much faster your team could hire

Get a personalized walkthrough of Pitch N Hire on your own roles and workflow. No slides, no obligation.

Prefer to talk? Book a demo Talk to sales View pricing

Free 1-user plan Β· No credit card Β· Talk to a real hiring expert

One Hiring Infrastructure.
Zero Tool Chaos.

Demos are consultative. We respect privacy and enterprise
governance. No lock-ins.

Start free Book demo