intermediate
Build Tools and JavaScript Tooling
Package managers, bundlers, compilers, quality gates, monorepo orchestration, and release automation for modern JavaScript teams.
Build-tooling interviews test whether you can ship reproducible JavaScript with fast feedback—not whether you memorized one bundler config. Strong answers compare package managers, bundlers, compilers, quality gates, monorepo orchestration, and release automation before naming Vite or Turborepo.
This domain spans package managers (npm, pnpm, Yarn, lockfiles, workspaces), bundlers and compilers (Vite, Webpack, Rollup, esbuild, SWC, Babel, Rspack, Turbopack), code quality tooling (ESLint, Prettier, Biome, Husky, lint-staged), monorepos (workspaces, Turborepo, Nx, dependency graphs, build caching), and release tooling (semver, Changesets, conventional commits).
On interviews: for a team starting a TypeScript app, explain install reproducibility, dev versus production build paths, where lint and format run, and what CI must remain authoritative.
Common pitfalls: `npm install` in CI mutating lockfiles; treating fast transpilers as type checkers; hooks as the only gate; workspaces without package boundaries; semver labels that do not match behavior.
The trade-off is toolchain speed and convenience versus reproducibility, compatibility, and operational confidence.
Checklist:
- Pin package manager and lockfile policy.
- Separate transform, bundle, typecheck, and test stages.
- Keep CI authoritative over local hooks.
- Use child topics for stack-specific depth.