Summary
I recently interviewed at Detect Technologies for an SDE-2 role, where I successfully navigated three rounds focusing on DSA, Flutter deep dive, and High-Level System Design for Google Photos. I received and initially accepted the offer, though I later resigned after two weeks.
Full Experience
I recently had an interview experience at Detect Technologies for an SDE-2 position. The entire process consisted of three rounds.
Round 1: DSA + Project Discussion
The first round focused on data structures and algorithms. The interviewer asked me to solve the Merge Intervals problem. I explained my approach and implemented an efficient solution. Following that, I was given another problem: to write code to flatten a list. After the coding part, the interviewer asked basic questions about the projects listed on my resume. I walked them through the key highlights of my recent work, discussing the technologies I used and the challenges I faced.
Round 2: Flutter Deep Dive + Work Experience
This round was more focused on my work experience and an in-depth exploration of my Flutter knowledge. The questions revolved around several specific topics:
- What is lazy loading, and how have you used it in your projects?
- How do you use the null-check operator in Flutter?
- Can you explain the widget lifecycle in Flutter?
- How does the widget tree work, and how do you optimize it?
- What is the Flutter inspector, and how do you use it?
- What state management techniques do you use, and why did you choose BLoC?
- Can you explain tree shaking and how it benefits a Flutter app?
The interviewer also touched on various best practices for Flutter development and cross-examined my understanding with multiple follow-up questions.
Round 3: High-Level Design (HLD)
In the final round, I was asked to design the High-Level Architecture of Google Photos. Key points of discussion included:
- How I would design the high-level architecture of Google Photos.
- How I would handle the upload mechanism for photos.
- What I would do if there was a network issue during the upload, and how I would ensure the upload resumes rather than starting over.
- How I would track the upload status (e.g., uploaded, in-progress, failed).
- How I would keep all devices updated when a photo is uploaded on one device.
- How I would ensure cross-device consistency for photo updates.
There were several follow-up questions around scalability, fault tolerance, and ensuring a smooth user experience, all of which I handled by breaking down the system into smaller components and explaining them in detail.
Conclusion:
I successfully received an SDE-2 offer, which I gladly accepted. However, I later received an offer from Myntra, and after working at Detect for two weeks, I made the difficult decision to resign. Unfortunately, I faced some consequences for that decision.
Interview Questions (10)
Write a code to flatten a list (e.g., convert a nested list like [1, [2, 3], [4, [5]]] into a flat list [1, 2, 3, 4, 5]).
What is lazy loading, and how have you used it in your projects?
How do you use the null-check operator in Flutter?
Can you explain the widget lifecycle in Flutter?
How does the widget tree work, and how do you optimize it?
What is the Flutter inspector, and how do you use it?
What state management techniques do you use, and why did you choose BLoC?
Can you explain tree shaking and how it benefits a Flutter app?
- How would you design the high-level architecture of Google Photos?
- How would you handle the upload mechanism for photos?
- What would you do if there is a network issue during the upload? How would you ensure the upload resumes rather than starts over?
- How would you track the upload status (e.g., uploaded, in-progress, failed)?
- How would you keep all devices updated when a photo is uploaded on one device?
- How would you ensure cross-device consistency for photo updates?
The discussion also included several follow-up questions around scalability, fault tolerance, and ensuring a smooth user experience.