preparation checklist - rs-hash/GETTHATJOB GitHub Wiki

Senior Frontend Engineer Interview Checklist

A comprehensive checklist to prepare for a Senior Frontend Engineer interview. Tailored for system design, technical depth, behavioral interviews, and leadership expectations.


✅ Core Frontend Fundamentals

  • HTML5 semantics & accessibility (ARIA, screen readers, keyboard navigation)
  • CSS3 (Flexbox, Grid, specificity, BEM, animations/transitions)
  • Responsive design & mobile-first approach
  • Browser rendering pipeline & repaints/reflows
  • Event propagation: bubbling, capturing, delegation
  • Cross-browser compatibility issues
  • Security (XSS, CSRF, CORS, sandboxing)

✅ JavaScript / TypeScript Mastery

  • ES6+ features (let/const, arrow functions, destructuring, spread/rest)
  • Closures, hoisting, scopes
  • this, bind, call, apply
  • Promises, async/await, event loop, microtasks vs macrotasks
  • Functional programming (map/filter/reduce, immutability, pure functions)
  • TypeScript: interfaces, types, generics, type guards, utility types
  • Error handling best practices

✅ Frameworks & Libraries

React (or Vue/Angular — adapt if needed)

  • Functional components with Hooks (useEffect, useMemo, useCallback, etc.)
  • Component lifecycle (class vs hooks)
  • Controlled vs uncontrolled components
  • State management (Context API, Redux, Zustand, etc.)
  • Prop drilling, lifting state, memoization
  • Code splitting, lazy loading
  • Forms and validation (Formik, React Hook Form, custom)

Ecosystem

  • Routing (React Router / Vue Router)
  • Styled Components / CSS Modules / Emotion / TailwindCSS
  • Component libraries (Material UI, Ant Design, etc.)

✅ Testing & Debugging

  • Unit testing with Jest / Vitest / Mocha
  • Component testing with React Testing Library / Vue Test Utils
  • E2E testing with Cypress / Playwright
  • Test coverage and strategies (TDD, mocking, spies)
  • Debugging with browser dev tools

✅ Build Tools & DevOps

  • Webpack / Vite / Rollup: configuration and performance optimization
  • Babel: transpilation, polyfills
  • ESLint / Prettier / Husky / Lint-staged
  • CI/CD basics (GitHub Actions, GitLab CI)
  • Environment configs (.env, secrets, staging vs prod)

✅ Performance Optimization

  • Lazy loading, code splitting, tree shaking
  • Debounce/throttle
  • Virtualization (e.g. react-window)
  • Memoization techniques
  • Lighthouse audits and Core Web Vitals (LCP, CLS, FID)
  • Avoiding unnecessary re-renders

✅ System Design (Frontend)

  • Designing scalable component systems
  • Managing shared state in large apps
  • Micro-frontends: pros/cons, when to use
  • Design tokens / design systems (Storybook, Figma integration)
  • Handling real-time data (WebSockets, polling, SSE)
  • REST vs GraphQL: architecture and tooling (Apollo, URQL)

✅ APIs & Backend Integration

  • RESTful API design principles
  • GraphQL basics and best practices
  • Authentication (JWT, OAuth2, session vs token)
  • Caching strategies (SW caching, localStorage, memoization)
  • WebSockets / SSE basics

✅ Git & Collaboration

  • Git branching strategies (Git Flow, trunk-based)
  • Writing clean PRs and commit messages
  • Code reviews: etiquette, feedback patterns
  • Working in mono-repos / Lerna / Nx
  • Agile practices (Scrum/Kanban basics)

✅ Behavioral & Leadership

  • STAR method for behavioral answers
  • Mentorship experience: onboarding juniors, pair programming
  • Architectural decision-making examples
  • Conflict resolution within teams
  • Collaboration with designers and PMs
  • Driving initiatives / leading features / owning domains

✅ System Design Mock Topics (Frontend Focused)

  • Design a scalable design system for a 50+ engineer team
  • How would you handle A/B testing at scale?
  • Design a performant dashboard with live metrics
  • Implement a file uploader with progress, cancel, and retry
  • Architect a multi-step form wizard with validation and autosave

✅ Misc & Prep Tips

  • Brush up on recent frontend trends (e.g. signals, islands architecture)
  • Review past projects and have 2-3 stories ready
  • Prepare questions to ask the interviewer
  • Practice whiteboarding or live-coding
  • Update resume and portfolio (if needed)

💡 Tip: Don't just memorize — prepare to demonstrate depth in problem-solving, architecture, tradeoffs, and communication.