Brevo
Interview Experience
Introduction & Background
- Can you give a brief introduction about yourself?
- Are you primarily a frontend developer or a full stack developer?
- What are your stronger skills, frontend or backend?
- What is your current role in your project?
- What responsibilities do you handle apart from coding?
- Do you create Jira stories and plan timelines?
- How do you manage time between coordination and development?
Skill Self Assessment
- How would you rate yourself in React out of 10?
- How would you rate yourself in JavaScript?
- Which state management libraries have you worked with?
- Which bundlers are you familiar with?
Webpack & Build Tools
- What is the difference between loaders and plugins in Webpack?
JavaScript Core Concepts
- JavaScript is single-threaded and synchronous. How does it handle asynchronous operations?
- What is the event loop?
- What is the difference between call stack, macro task queue, and micro task queue?
- What are closures?
- What are the disadvantages of closures?
- What are IIFE or currying functions?
- Can you write a function to sum values using multiple chained function calls?
- What is the time complexity of your solution?
- What is the space complexity of your solution?
- What will be the output of a given async JavaScript code snippet?
- Why do microtasks have higher priority than macrotasks?
- Why do promises execute before setTimeout?
Objects, Copying & Memory
- What is the difference between shallow copy and deep copy?
- What is the difference between shallow copy and reference assignment?
- How can you create a shallow copy?
- How can you create a deep copy?
- What are the disadvantages of JSON.stringify and JSON.parse?
- What happens when you destructure an object? Is it shallow or deep copy?
- How does reference passing work in JavaScript functions?
- How does JavaScript garbage collection work?
- What causes memory leaks in JavaScript?
Call, Apply, Bind
- What is the difference between call, apply, and bind?
- Can you write a polyfill for apply?
- Why do we handle null or undefined context in apply?
- What does context[0] or context assignment mean?
- How would your polyfill behave if an empty array is passed?
- Can your polyfill cause a memory leak?
React Fundamentals
- Why is React faster than vanilla JavaScript DOM manipulation?
- What is Virtual DOM?
- How many Virtual DOMs exist?
- Where does actual rendering happen, Virtual DOM or Real DOM?
- Why does Virtual DOM improve performance?
- What is reconciliation?
- What is the diffing algorithm?
- What is React Fiber?
- What are the major changes from React 16 to React 18?
- What is batching in React?
React Advanced Concepts
- What are service workers?
- Where and why do we use service workers?
- What React design patterns do you know?
- What is Atomic Design Pattern?
- What is Pub-Sub pattern?
- What are render props?
- What is Singleton pattern?
Micro Frontend
- Have you worked with micro frontend containers?
- Why do we use micro frontends?
- What problems do micro frontends solve?
- What role does the container play in micro frontend architecture?
- Where should routing and navigation be handled?
- How do you navigate between micro frontend apps without page reload?
- How does Module Federation work?
- How do you share state between micro frontends?
- How do you manage dependency version conflicts?
- How do you ensure parent and child use the same React version?
- What are shared dependencies?
- What is the meaning of caret (^) and tilde (~) in package.json?
- How does package-lock.json affect versioning?
Performance & Web Vitals
- Have you worked with Web Vitals?
- What are Core Web Vitals?
- What is LCP?
- How did you improve LCP in your project?
- How does lazy loading help performance?
- Which metrics are affected by rerendering?
- Have you used React Profiler?
- How did pagination improve performance?
- Which Web Vital metrics did you directly improve?
Closing
- Do you have any questions for me?