Okta SDE-2 || Frontend Interview Experience || Rejected

okta logo
okta
Software Development Engineer 2 – Frontend
July 12, 20256 reads

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).

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() vs setTimeout()
    • async vs defer in script tags
    • async/await vs then/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 .md files)
  • 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)

Q1
Dynamic Grid with Incremental Values
Data Structures & Algorithms

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).

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.

Q2
JavaScript Event Loop, Async/Await, Promises & Memory Management
Other
  • Several code snippets with Promises, async/await, and chaining.
  • Questions on:
    • Event loop, microtasks, macrotasks
    • Promise.resolve().then() vs setTimeout()
    • async vs defer in script tags
    • async/await vs then/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.
Q3
Design a Content Publishing Platform
System DesignHard

💬 Problem Statement:

Design a system where:

  • Admins can publish news (stored as .md files)
  • 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
Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!