Senior Software Engineer - Frontend | Impact Analytics
Summary
Interview process consisted of an online assessment followed by technical and component design interviews focusing heavily on JavaScript, React, HTML/CSS concepts. The final onsite round was poorly organized with irrelevant questions for the role.
Full Experience
Round 1 — Online Assessment (OA)
3 questions:
- A Redux + Redux Thunk based React application boilerplate was given and I needed to fill out all the functions.
- Had to add HTML, CSS and JS to generate TSA, Total Volume, etc. for a cuboid. There were a list of instructions regarding the HTML, CSS and JS structure, and we needed to add functions to calculate the TSA and TV.
- A HTML, CSS, JS based form (don't recall the exact details).
Round 2 — JS/React Technical Interview (R1)
Was asked everything under the sun, a lot of HTML, CSS, JS, React and Git based questions. Some that I recall:
- How would you set up a new app if you know that it is data heavy? (web workers expected here)
- Debounce vs Throttle, and real-world examples for each
- How to rename an old commit
- Difference between rebase and merge
- Implement object flatten
- Explain currying and implement it
- What is JS implicit type coercion and what do these evaluate to:
1 + "1"1 - "1"1 - - "1"
- Internal working of Redux
- Difference between normal function and arrow function
- Explain the Event Loop and Execution Context
- What is CORS?
- Explain code splitting
- What is memoisation?
- What is batching in React?
- How do you update a parent from a child in React?
Round 3 — Component Design Round (R2, Onsite)
The recruiter mentioned it was going to be a System Design round but it turned out to be a component design round. The questions I recall are:
- How would you rate yourself in HTML and CSS?
- What are some new additions in HTML5?
- Center a box without touching the HTML, it was a single div in the HTML, CSS only.
- Design a Nested Dropdown Menu similar to https://www.radix-ui.com/primitives/docs/components/dropdown-menu
A Few Things To Note
- There was no proper recruiter call. Multiple recruiters were reaching out at different stages with no clear ownership of the process.
- The scope of the role and the team (component building team) were never communicated during the process, I found out from the interviewers themselves in the final round. Three rounds in.
- None of the previous interview rounds were relevant to the actual role.
- I had to fly to Bangalore for the final round at my own expense. No reimbursement.
- The interviewers were 15 minutes late to what ended up being a 30 minute interview.
If a company can't reimburse the candidate for travel, they need to just take the interview online. Flying out for a 30 minute interview that started 15 minutes late was a genuine waste of time and effort.
Interview Questions (17)
Setup Data Heavy Application
How would you set up a new app if you know that it is data heavy?
Debounce vs Throttle Implementation
Difference between debounce and throttle with real-world examples.
Rename Old Commit in Git
How to rename an old commit using git commands.
Rebase vs Merge in Git
Difference between rebasing and merging branches in Git.
Flatten Object Implementation
Implement a function to flatten nested objects into a single level object.
Currying Function Implementation
Explain and implement currying in JavaScript.
JavaScript Implicit Type Coercion Evaluation
Evaluate expressions involving JavaScript implicit type coercion:
- 1 + "1"
- 1 - "1"
- 1 - - "1"
Redux Internal Working
Explain internal working principles of Redux library.
Normal Functions vs Arrow Functions
Difference between regular functions and ES6 arrow functions in JavaScript.
Event Loop and Execution Context Explanation
Explain how JavaScript event loop works along with execution context lifecycle.
CORS Explanation
What is Cross-Origin Resource Sharing (CORS)?
Code Splitting Explanation
Explain concept and implementation of code splitting in modern web applications.
Memoization Concept
What is memoization and when should it be used?
Batching in React
What is batching mechanism in React updates?
Update Parent Component from Child
How do you communicate upward from child to parent components in React?
Center Box Using Only CSS
Given a single div element, center it horizontally and vertically using only CSS without modifying HTML.
Nested Dropdown Menu Design
Design a nested dropdown menu similar to Radix UI primitives dropdown menu component.