I applied for the Software Engineer role at BrowserStack through LinkedIn and was contacted by the recruiter.
Background
Education: Tier 3 College
Experience: 11 months intern in PBC (6 months in mid size company + 5 months in start up)
Round 1: Online Assessment
The first round was an online assessment focused on DSA and problem-solving skills.
Round 2: Machine Coding Round (Online)
The problem required me to implement a log-watching solution, similar to the tail -f command in UNIX, where:
The server monitors a log file and streams real-time updates.
The client (web interface) displays the last 10 lines of the file and updates without a page refresh.
Key Constraints:
The log file is append-only and can be several GBs in size.
The server should push updates instead of polling.
It should not retransmit the entire file every time.
The solution must support multiple clients simultaneously.
No external libraries/tools could be used for reading the file.
I implemented the solution using Node.js (WebSockets for real-time updates) and a simple frontend to display logs dynamically. The discussion focused on:
Optimized retrieval of the last 10 lines without reading the entire file.
Efficient streaming of updates to multiple clients.
Handling edge cases like log file rotation and network failures.
Round 3: Director of Engineering Round (Online)
In-depth discussion on my current project, covering:
System architecture
Scalability challenges & solutions
Optimizations for high-traffic scenarios
Questions around scalability strategies, handling high concurrency, and fault tolerance.