BrowserStack Interview Experience - SDE 2
Summary
I interviewed for an SDE 2 role at BrowserStack, which involved 5 rounds covering DSA, system design, machine coding, and behavioral aspects, ultimately resulting in a rejection due to a mismatch in work culture.
Full Experience
📅 Round 1: DSA + System Knowledge
Project-related discussion System Design / Fundamentals: 🔹 What happens when you hit a URL like google.com in the browser? 🔹 Which protocol is used and what steps occur in sequence? 🔹 What is TCP and how does the TCP handshake work? 🔹 How many handshakes does TCP involve? 🔹 What does the server send back in response? (headers, body) 🔹 What does the browser do with the response? 👉 Parsing HTML → Creating DOM Tree → JS Execution → CSS Styling → Painting
DSA/Logic Question: ➕ Given a programming language that only supports numbers from 0–99, determine if adding two numbers will cause overflow.
✅ Logic:
remaining = 99 - num1
if num2 > remaining → overflow
📅 Round 2: Machine Coding Round
Problem: Build a real-time log viewer (like tail -f in UNIX) Task: A server-side program that monitors a large, append-only log file and streams new content in real-time.
A web client accessible at http://localhost/log which:
Displays last 10 lines of the file on page load
Receives real-time updates without needing to refresh
Stays static after load (no continuous reloading)
Constraints: 🔸 Log file can be several GB — optimize for reading only last 10 lines 🔸 Do not re-send the full file repeatedly 🔸 Must support multiple concurrent clients 🔸 Cannot use off-the-shelf libraries/tools for file tailing 🔸 Focus on modularity, testability, code quality, and corner cases
📅 Round 3: Engineering Manager Round Topics: 🔹 Current role and responsibilities 🔹 Detailed explanation of one complete project 🔹 Questions based on the project 🔹 HLD for scaling the system from Round 2
Verbal DSA Question (Approach Only): You are given an array of temperatures. For each day, determine how many days you'd have to wait until a warmer temperature.
Input:
[72, 71, 74, 75, 69, 71, 76, 73]
Output:
[2, 1, 1, 3, 1, 1, 0, 0]
🔹 Some HR questions also discussed
📅 Round 4: Director of Engineering (DOE) Round Topics: 🔹 Role in your current organization 🔹 Reason for leaving your current company 🔹 What challenges are I looking for in the new role? 🔹 Example of a team conflict — discussed export feature conflict
Technical Question: 🧠 How would you count the number of unique words in a very large file, where storing everything in memory (e.g., via a map) isn’t feasible?
🔹 A few behavioral/HR questions were also asked
📅 Round 5: HR Round Topics: 🔹 Current responsibilities 🔹 Team collaboration and working style 🔹 Culture fit questions
❌ Final Outcome: Rejected 📣 Feedback given: You have 5 weeks office regularly — might not align well with BrowserStack’s fully remote work culture.
Interview Questions (5)
What happens when you type a URL in the browser?
What happens when you hit a URL like google.com in the browser? 🔹 Which protocol is used and what steps occur in sequence? 🔹 What is TCP and how does the TCP handshake work? 🔹 How many handshakes does TCP involve? 🔹 What does the server send back in response? (headers, body) 🔹 What does the browser do with the response?
Check for Overflow in Limited Range Addition
Given a programming language that only supports numbers from 0–99, determine if adding two numbers will cause overflow.
Real-time Log Viewer (tail -f like utility)
Problem: Build a real-time log viewer (like tail -f in UNIX) Task: A server-side program that monitors a large, append-only log file and streams new content in real-time.
A web client accessible at http://localhost/log which:
Displays last 10 lines of the file on page load
Receives real-time updates without needing to refresh
Stays static after load (no continuous reloading)
Constraints: 🔸 Log file can be several GB — optimize for reading only last 10 lines 🔸 Do not re-send the full file repeatedly 🔸 Must support multiple concurrent clients 🔸 Cannot use off-the-shelf libraries/tools for file tailing 🔸 Focus on modularity, testability, code quality, and corner cases
Daily Temperatures
You are given an array of temperatures. For each day, determine how many days you'd have to wait until a warmer temperature.
Input:
[72, 71, 74, 75, 69, 71, 76, 73]
Output:
[2, 1, 1, 3, 1, 1, 0, 0]
Count Unique Words in a Very Large File
How would you count the number of unique words in a very large file, where storing everything in memory (e.g., via a map) isn’t feasible?