1. Introduction & Project Discussion
The interview began with a quick round of introductions, followed by a deep dive into my most recent project. I was asked to:
Design the system architecture of the project using draw.io.
Explain how the system scales and handles concurrent users.
Talk about real-world scaling issues I faced and how I addressed them — especially in terms of performance optimization and distributed systems.
Next, I was asked about the hardest technical problem I’ve solved recently. I shared a scenario that involved a challenging bug or architectural issue and explained:
2. Computer Fundamentals & Networking Concepts
How a browser works internally – what happens when a URL is entered into the address bar.
About CDN (Content Delivery Network)
TCP vs HTTP
WebSockets vs HTTP
3. System Thinking Question (No Code)
Finally, I was given an interesting constraint-based algorithm design problem:
We have developed a new programming language with a constraint:
Numbers with more than 2 digits are not supported (both input and output).
Using this, add two 4-digit numbers like 8908 + 9980.
The result should be computed such that each intermediate and final value never exceeds 2 digits.
I was only asked to explain the approach, not implement the solution.
My solution:- Break both numbers into individual digits from right to left.Perform unit-place addition with carry propagation.
Interview :- Since the system can handle numbers up to 2 digits, why are you limiting yourself to 1-digit chunks?
My next solution :- I divided the input numbers into 2-digit chunks from right to left.Performed base-100 addition
Interviewer:- when you did 89 + 99 = 188, that violates the constraint. The language cannot store or even compute numbers > 99, not even temporarily.
I wasn't able to think past this, as he also ruled out any binary based solution.
In the end he answered to store each digit in an array type solution.