Summary
I recently interviewed for a Senior Software Engineer - Frontend position at Okta in Bangalore. The process consisted of three rounds, including a take-home assignment focused on React UI and a Form Builder, a technical discussion with live coding on a reusable Tab Component, and a managerial discussion.
Full Experience
I recently interviewed for the Senior Software Engineer – Frontend position at Okta in Bangalore. The entire process consisted of 3 rounds, combining hands-on assignments, technical deep-dives, and managerial discussions.
Round 1 – Take-Home Assignment (2 Days)
The first round was a take-home assignment which I had to complete within 2 days. The expected tech stack included Next.js, React.js, and Tailwind CSS. I was given two separate implementation tasks:
- Build a pixel-perfect React UI based on a provided design mockup.
- Create a visual Form Builder tool.
Round 2 – Technical Discussion (Live Coding + System Thinking)
This round was a live session with a Staff Software Engineer and a Product Manager. The discussion covered various topics:
- JavaScript & React fundamentals
- Next.js workflow, rendering patterns, and optimizations
- Output-based and concept-based JS questions
Following the discussion, I had a machine coding exercise where I was asked to build a reusable Tab Component from scratch.
Round 3 – Managerial Discussion
The final round was a managerial discussion where we talked about my previous project experience and role responsibilities. We also discussed product-driven thinking, collaboration experiences, my tech stack preferences, learning attitude, and future interests.
Interview Questions (3)
I was tasked with building a pixel-perfect React user interface based on a provided design mockup. The expected tech stack for this take-home assignment included Next.js, React.js, and Tailwind CSS.
For the take-home assignment, I needed to create a visual Form Builder tool. The tech stack mentioned was Next.js, React.js, and Tailwind CSS.
During a live coding exercise, I was asked to build a reusable Tab Component from scratch. This was part of the technical discussion round, aiming to assess my understanding of React and JavaScript fundamentals.
Summary
I was rejected for an SDE-2 Frontend role at Okta after multiple rounds, despite strong performance in React and System Design, due to perceived weaknesses in JavaScript fundamentals, especially async handling and memory internals.
Full Experience
🟢 Round 1: React + JavaScript Deep Dive
🔧 React Problem: Dynamic Grid with Incremental Values
The interviewer asked me to build a small React app within their pre-configured environment.
💬 Problem Statement:
- Input: A number
n(via input box) - Output: A grid of size
n x n - Grid Logic:
- On clicking an empty cell → Fill it with
max(existingNumbers) + 1. - On clicking a non-empty cell → Update it with
max(existingNumbers).
- On clicking an empty cell → Fill it with
✅ Expectations:
- Well-structured and modular React component(s)
- Optimal state management (useState/useEffect, etc.)
- Efficient computation of the maximum value
- Clean UI and minimal re-rendering
- Bonus for explanations and performance considerations
The problem tested both React fundamentals and state optimization. It was more about thinking in React and minimizing redundant state updates or unnecessary computations.
💡 JavaScript Section:
- Several code snippets with Promises, async/await, and chaining.
- Questions on:
- Event loop, microtasks, macrotasks
Promise.resolve().then()vssetTimeout()asyncvsdeferin script tagsasync/awaitvsthen/catch- Memory management in JavaScript
- Debouncing and throttling (with real use cases)
- Differences between synchronous and asynchronous API calls
- What happens under the hood during async operations
🧠 Assessment Criteria:
- Depth of understanding of JavaScript execution model
- Ability to predict output and explain why
- Understanding of event loop, callback queue, call stack, etc.
🟠 Round 2: System Design – Content Publishing Platform
💬 Problem Statement:
Design a system where:
- Admins can publish news (stored as
.mdfiles) - Users can view the news articles
- The system should be scalable and performant
🧩 Key Discussion Areas:
- Role-Based Access Control (Admins vs Readers)
- Storage and Rendering of Markdown (.md)
- Client-Side vs Server-Side Rendering
- CDN Usage: Is it really necessary for static markdown-based content?
- SQL vs NoSQL: When and why?
- Sitemap and SEO: How does Google pick up and display articles for specific queries?
- Back-of-the-envelope estimation:
- Estimated number of readers per second
- Number of articles per admin
- Storage requirements (avg. markdown file size)
- Caching Strategies: CDN + Browser + Server
- Authentication & Authorization (JWT, session-based?)
- Pagination and Feed Delivery
🧠 Assessment Criteria:
- Practicality and scalability of design
- Awareness of web architecture patterns
- Trade-offs between performance and complexity
- Real-world awareness of tools like CDNs, SSG, site maps
❌ Final Verdict: Rejected
Despite a strong performance in React and System Design, I was not shortlisted due to weaker foundational understanding in JavaScript, especially in async handling and memory internals.
Interview Questions (3)
The interviewer asked me to build a small React app within their pre-configured environment.
💬 Problem Statement:
- Input: A number
n(via input box) - Output: A grid of size
n x n - Grid Logic:
- On clicking an empty cell → Fill it with
max(existingNumbers) + 1. - On clicking a non-empty cell → Update it with
max(existingNumbers).
- On clicking an empty cell → Fill it with
✅ Expectations:
- Well-structured and modular React component(s)
- Optimal state management (useState/useEffect, etc.)
- Efficient computation of the maximum value
- Clean UI and minimal re-rendering
- Bonus for explanations and performance considerations
The problem tested both React fundamentals and state optimization. It was more about thinking in React and minimizing redundant state updates or unnecessary computations.
- Several code snippets with Promises, async/await, and chaining.
- Questions on:
- Event loop, microtasks, macrotasks
Promise.resolve().then()vssetTimeout()asyncvsdeferin script tagsasync/awaitvsthen/catch- Memory management in JavaScript
- Debouncing and throttling (with real use cases)
- Differences between synchronous and asynchronous API calls
- What happens under the hood during async operations
🧠 Assessment Criteria:
- Depth of understanding of JavaScript execution model
- Ability to predict output and explain why
- Understanding of event loop, callback queue, call stack, etc.
💬 Problem Statement:
Design a system where:
- Admins can publish news (stored as
.mdfiles) - Users can view the news articles
- The system should be scalable and performant
🧩 Key Discussion Areas:
- Role-Based Access Control (Admins vs Readers)
- Storage and Rendering of Markdown (.md)
- Client-Side vs Server-Side Rendering
- CDN Usage: Is it really necessary for static markdown-based content?
- SQL vs NoSQL: When and why?
- Sitemap and SEO: How does Google pick up and display articles for specific queries?
- Back-of-the-envelope estimation:
- Estimated number of readers per second
- Number of articles per admin
- Storage requirements (avg. markdown file size)
- Caching Strategies: CDN + Browser + Server
- Authentication & Authorization (JWT, session-based?)
- Pagination and Feed Delivery
🧠 Assessment Criteria:
- Practicality and scalability of design
- Awareness of web architecture patterns
- Trade-offs between performance and complexity
- Real-world awareness of tools like CDNs, SSG, site maps