Wingify Senior JavaScript Engineer - Rejected
Summary
I experienced a multi-round interview process for a Senior JavaScript Engineer role at Wingify, which ultimately resulted in my rejection. The process involved an online assessment, two technical rounds focusing on JavaScript fundamentals, advanced polyfills, async programming, and system design, followed by hiring manager and leadership discussions covering projects, rate limiting, and web performance.
Full Experience
Round 1: Online Assement:
- 8 JavaScript based MCQs
- 2 DSA Question (Fibonacci and Regex based question)
Round 2 (Techinal):
- Questions on JS topics (Closures,let vs const vs var)
- Implement polyfill for Promise.all()
- Find height of the DOM tree
Round 3 (Techinal):
- Implement mapLimit async function
- Implement polyfill for Promise.
Round 4 (Hiring manager):
- Discussion about previous projects
- Implement Rate limiter in JS
- Questions around rate limiter
Round 5 (Leadership):
- Discussion about past experiences
- Discussion on web performance and dom manipulation
- Write an algorithm to manage localStorage memory (like LRU) with help of chatGPT
Interview Questions (6)
Implement polyfill for Promise.all()
Implement a JavaScript polyfill for the native Promise.all() method, handling its resolution and rejection behavior correctly.
Find Height of DOM Tree
Write a JavaScript function to determine the maximum height of the Document Object Model (DOM) tree, starting from a given root element (or the document body).
Implement Async mapLimit Function
Implement an asynchronous mapLimit function that takes an array, an async iterator function, and a concurrency limit. It should process items from the array concurrently, but never exceeding the specified limit, and return a Promise that resolves with an array of results.
Implement Polyfill for Promise
Implement a JavaScript polyfill for the core Promise constructor, mimicking the fundamental behavior of native Promises, including resolve, reject, and then methods.
Implement Rate Limiter in JavaScript
Implement a rate limiting mechanism in JavaScript to control the frequency of function calls or API requests within a specified time window.
Implement LRU Cache for localStorage
Design and implement an algorithm in JavaScript to manage data in localStorage as an LRU (Least Recently Used) cache, including strategies for handling memory limits and evicting older items.