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.