Frontend

Senior developer expectations

This is a non-exhaustive list but outlines some key areas a senior Frontend developer should have work experience in or have a strong understanding of:

  • Arrow functions vs normal functions
  • Modules
    • using Module.export and exports
    • understading the difference between both
  • Ecma module system
  • Asynchronous programming: blocking vs non-blocking code
    • Promises
    • Callbacks
    • async / await
  • TypeScript
  • TypeScript Utilities
  • Generics in typescript
  • Node.js architecture
    • V8 engine
    • event queue
    • event loop
    • thread pool
    • garbage collector
    • memory management
  • Handling callback hell
  • Event driven programming model
  • Authentication & authorization
  • Debugging frontend applications
    • Dev tools, Redux dev tools, React dev tools, etc.
  • Testing React applications
    • Jest
    • React Testing Library
    • Faker
    • Mock Service Worker
    • Other testing libraries
  • Object
    • Object deconstruction and implications
    • Object spread operator
    • Object.assign
    • Object.freeze
    • deletions
  • Use of ENV variables
  • this object
  • setImmediate vs process.nextTick vs setTimeout(fn, 0). Link
  • Handling JWTs tokens
  • Handling CORS
  • Frontend Architectures
    • Push vs pull
    • MVC
    • Flux
    • MVVM
  • Websockets and real-time communication
  • Package managers
    • NPM
    • Yarn
    • PNPM
    • Understand their differences
  • Deployment and DevOps:
    • Containerization with Docker
    • CI/CD: Github actions, AWS Codepipeline
  • Monitoring and logging in production
    • New Relic
    • Datadog
    • Sentry
  • Server Side Rendering (SSR)
  • Static Site Generators
  • State management in React
    • Redux
    • Context API
    • Apollo
    • Recoil
    • Zustand
    • etc
  • Caching
    • Browser cache
    • Server response cache
    • CDN cache
    • etc
  • API State management
    • Tanstack Query
    • RTK Query
    • Zustand
    • etc
  • Asset bundlers
    • Webpack
    • Rollup
    • Vite
    • NextJS
    • Turbopack
  • Preprocessors and compilers
    • Babel
    • TypeScript
    • SASS
    • LESS
    • Stylus
    • PostCSS
  • Frameworks and their difference on how they manage state and rerenders.
    • React
    • React Native
    • Vue
    • Angular
    • Svelte
  • Canvas
  • Web workers
  • WebRTC
  • WebAssembly
  • Web Components
  • Atomic Design
  • CSS
    • CSS Animations
    • CSS in JS
    • CSS modules
    • Styled components
    • CSS frameworks
      • Bootstrap
      • Tailwind
      • Material UI
      • etc