Interviewing
Practical coding rounds
Some loops ask you to build, debug or review in a toy repo. Clarity, tests and trade-off talk beat clever asymptotics.
Not every company runs LeetCode. Many startups and some big-tech teams ask you to build a small feature in a toy codebase, debug a failing test suite, review a pull request, or extend an API with validation and tests. These rounds measure maintainable code, testing and code review instincts more than asymptotic cleverness.
The score is whether a teammate would trust the change you left in the repo.
The big idea
A take-home or paired feature is not a license to invent a framework. Prefer a complete simple path over a half-finished abstraction. Call out what you would do in production that you are skipping here.
The analogy is a first day on a foreign codebase: read, then change the smallest honest slice. The analogy breaks if they asked for a design discussion — then talk structure before you type.
Walking through it
How to prepare:
- Practice reading unfamiliar code for 10 minutes before changing anything.
- Prefer boring clarity: names, small functions, tests for the behavior you added.
- Call out trade-offs: "I'd add an index in production; for this exercise I'll do a linear scan."
- Leave the repo runnable.
Example
Prompt: "Add rate limiting to this Express handler." A strong candidate asks about per-user vs per-IP, in-memory vs Redis, and what status code to return; implements a simple token bucket or fixed window with tests; notes that a multi-instance deploy needs a shared store. A weak candidate pastes a global counter and claims it is production-ready.
If you interview others later, grade process generously and puzzles narrowly — the signal is noisy. The best interviewers coach through hints the same way strong seniors unblock teammates: toward a solution, not toward humiliation.
Day-to-day SDE2 work rarely looks like "implement LRU cache from scratch," but the underlying skills transfer: breaking problems down, choosing data structures, testing edge cases and explaining trade-offs in design reviews. Treat interview prep as practice for clarity under pressure, not as a separate sport.
Common mistakes
- Changing code before reading. You "fix" the wrong layer.
- Half-finished architecture. A working linear scan plus a spoken index beats an incomplete cache layer.
- Claiming production-ready. A global counter is not a rate limiter. Name the gap.
Check yourself
- You have 40 minutes to add rate limiting. What do you ask before you code?
Per-user vs per-IP, in-memory vs shared store, and which status code to return.
- When is a linear scan acceptable in this round?
When you say you would add an index in production and you leave a complete, tested path in the repo.
Key takeaways
- Read first; change a small, tested slice; leave the repo runnable.
- Say the production trade-off you are skipping.
- Practical rounds grade taste and tests, not only big-O.
Further learning
Next: how to practice.
Related
Coding interviews
Patterns, problem-solving process and communication for algorithm interviews — plus how practical coding rounds differ.
Writing code others can maintain
Managing complexity with deep modules, clear naming, honest comments, consistent style, and error strategies that shrink the blast radius of change.
Testing strategy
What to test, at which level, and how to keep a suite fast, reliable, and worth the maintenance — from pyramid trade-offs to production safety nets.