Skip to the notes
JSGroundwork
JSGroundwork handwritten · web dev
✎Playground→⌘Problems◎Interview prep↻Review🔥Progress

Chapters

23 chapters
⌕
Beginner18›
00Scouting reportR1Screening callR1·OAOnline assessmentR1·THTake-home roundR1·TPTech phone screenR2Machine codingR3JavaScript & TSR3·TSTypeScriptR4React & Next.jsR5Node & NestJSR6Databases & RedisR7DSA roundR8System designR9AWS, Docker, CI/CDR10Resume grillingR11BehaviouralR12HR & the number✓The week before
Advanced5›
50LWhat changes at ₹50L50LHard DSA50LDistributed systems50LRuntime internals50LStaff behavioural
/ search[ ] chaptert top
Switch topic4›
JSJavaScript⑂GitΣDSA in JSSDSystem Design

⚙ Display

Text size
100%
Theme
Style
R1·TP

The technical phone screen

Length30–45 min
WhoA senior engineer — sometimes the hiring manager
DecidesWhether four more hours of their team is worth booking
Fail modeAnswers that never reach a specific
productsaasserviceagency

The first time an engineer talks to you. It is short, it is cheap for them, and it exists to kill loops before they cost anybody a day. Nothing here is hard — the bar is "does this person sound like they have actually built the thing on their resume", and it is failed almost entirely by vagueness.

1TP.1
Walk me through your last project — the engineer's version.
What they are really testingDepth. The recruiter wanted a story; this person wants a system, and they can tell within two sentences which one you are giving.

Same project as R1, completely different answer. The recruiter version was four beats and no jargon. This version has architecture, a number, and a problem you solved that was genuinely hard.

Shape it as what it does → how it is put together → the hardest part → what it cost or saved, and stop at ninety seconds so they can steer.

Say it like this

GetDandy is an AI front-office platform — it answers inbound calls and hands off to a human when it should. Next.js on the front, NestJS services behind it, Postgres and Redis, all on AWS. I designed the service layer and the deploy across five environments, which was the hard part: five sets of data, secrets and provider keys, with a real-time dashboard over agent performance on top. Rationalising how those environments were provisioned took infrastructure cost down about twenty-five percent. Happy to go deeper on the environment split or on the real-time piece — whichever is more useful.

The answer that loses the room

"I worked on the frontend and also did some backend work." That sentence contains no system, no decision and no number, and it is the most common opening in this round. Every sentence should be something only a person who built it could say.

They will push with
  • Why NestJS and not plain Express?
  • What was in the five environments that differed?
  • Where did the twenty-five percent come from?
1TP.2
The twenty-minute shared editor question.
What they are really testingWhether you can write working code while someone watches, at a level well below the DSA round.

Roughly half of phone screens include a small problem in CoderPad, CodeSandbox or a plain shared doc. It is deliberately not hard — a string or array transform, a debounce, a promise sequencing task, a small React component. It is the "can this person type" round.

Two rules. Clarify the input shape before you write anything. And write the obvious version first — nobody has ever failed this for being O(n) instead of O(log n), and plenty have failed it by disappearing into a clever solution.

the genuinely common ones at this stage
// group an array of objects by a key
// flatten a nested array without .flat()
// debounce(fn, ms)
// retry(fn, times) with async/await
// run promises with a concurrency limit of 2
// a <SearchInput /> that debounces and cancels the stale request

That last one is the one to have ready cold. It is the phone-screen favourite for anyone with React on their resume, and it has an obviously wrong answer — debouncing without cancelling the in-flight request, so a slow early response overwrites a fast late one.

1TP.3
Talking while you type.
What they are really testingCollaboration. On a call with no shared body language, silence reads as being stuck.

Narrate at three moments, not continuously:

  • Before you type. "I will build a map from key to array, then one pass to fill it — O(n), and it handles the empty case by returning an empty object."
  • When you make a choice. "Using a Map rather than an object here so non-string keys survive."
  • When you are stuck. Say what you tried and what you are considering. "The recursive version blows up on cycles — I am going to track visited nodes in a Set." A stuck candidate who is thinking out loud is a hire; a stuck candidate who goes quiet for ninety seconds is not.

Then shut up and type. Continuous commentary is as bad as silence.

Say it like this

Let me make sure I have the input right — an array of objects, and I return an object keyed by the field, values as arrays, order preserved. Can the field be missing on some objects?

1TP.4
The two or three language questions used as a filter.
What they are really testingWhether six years of JavaScript is six years of JavaScript.

This round rarely goes deep — it picks two or three from a small set and moves on. The whole set is in R3; the ones that show up at this stage specifically are:

  • Event loop ordering. A setTimeout(0) and a resolved promise in the same tick — which logs first, and why microtasks drain before the next macrotask.
  • Closures. The var-in-a-loop classic, and what let changes about it.
  • this in an arrow function versus a regular function, in a class method passed as a callback.
  • Shallow versus deep copy, and what spread actually does to a nested object.
  • One TypeScript question if TS is on the job description — usually interface versus type, or what unknown buys you over any. That is R3·TS.

Answer in three sentences and stop. Long answers in a phone screen eat the coding time and the interviewer is watching the clock.

The answer that loses the room

Reciting a memorised definition. "A closure is a function bundled with its lexical environment" is a phrase, not an answer. Give the behaviour and one line of code where it bites.

1TP.5
When the first call is the hiring manager, not an engineer.
What they are really testingFit and level. They are deciding what to open you at, not whether you can code.

In smaller companies the first technical conversation is with the person you would report to, and the questions change shape completely. They will ask why this role, what you want to own, how you work with a team, and what you are looking for in your next two years — with one or two technical probes to confirm the resume.

Three things to get across, all of them things a manager buys:

  • Ownership, not tasks. "I own release and reliability for four applications" is the sentence. Feature lists are not.
  • A reason to want this job specifically. The client-studio-to-product story from R1 works here and lands harder, because this person lives the difference.
  • A question about scope. "What would you want me to own in the first six months?" It is the question a senior asks and a mid-level does not.
The answer that loses the room

Treating it as a warm-up because "it is only the manager". This conversation frequently decides your level, and level decides your number long before R12 gets to argue about it.

They will push with
  • Where do you want to be in two years?
  • What kind of team do you do your best work in?
  • What would make you turn this down?
1TP.6
What you ask an engineer.
What they are really testingWhether you evaluate them back. Seniors do.

Different questions from the ones you asked the recruiter — this person can answer things nobody else in the loop can, and their answers tell you whether the job is actually good.

  • What does the codebase look like today — where is the pain? The honest answer tells you what your first year is. An engineer who says "there is no pain" is either new or not listening.
  • How does something get to production here? Branch, review, CI, who presses deploy. This is the single most predictive question about your day-to-day.
  • What is on call like? Ask before the offer, not after.
  • What does the rest of the loop cover? They will usually tell you exactly what to prepare for, and that is a free advantage.
Say it like this

What does the codebase look like right now — where does the team feel the most friction? And how does a change get from a branch to production?

1TP.7
The setup that quietly loses this round.
What they are really testingNothing. It just costs you the round anyway.
  • Wired headphones and a tested mic. Laptop speakers plus a room echo makes forty-five minutes of you exhausting to listen to.
  • The editor link opened five minutes early. CoderPad and CodeSandbox both take a minute to load and both can be blocked on a work network.
  • A second network ready. Phone hotspot on standby, because it will be the day your wifi drops.
  • A closed room and a silenced phone. If you must take it from the office, book a room — taking a technical call from a corridor is audible and it reads as unserious.
  • Your resume open on a second screen, plus the four numbers you might be asked to defend. You will be asked about something on page two.
2026 note

If the connection genuinely fails, say so immediately and switch to phone audio while keeping the editor. Interviewers are entirely forgiving about network problems and entirely unforgiving about ten minutes of silence they had to interpret.

←previousTake-home round↑ CovernextMachine coding→