DataZip Interview Experience – SDE 2 (Golang)
Summary
The candidate interviewed for an SDE 2 (Golang) role at DataZip, undergoing two technical rounds covering DSA, Golang concurrency, and Low-Level Design, ultimately receiving a rejection.
Full Experience
📅 Round 1: DSA + Golang Fundamentals Topics Discussed: 🔹 Questions based on past projects 🔹 Golang-specific concurrency concepts:
What is a WaitGroup and how does it manage goroutine lifecycle?
Difference between Concurrency vs Parallelism
What is the Worker Pool Pattern in Go? → Common concurrency pattern where multiple goroutines (workers) pull tasks from a shared job queue for efficient task distribution
What is the purpose of a done channel and how it signals goroutines to stop?
🧠 Coding Questions: Q1: Word Transformation Convert one word into another using minimum operations. Operations allowed:
- Add a character
- Replace a character
- Delete a character
⏱ Time: 20 minutes
Q2: Flatten Nested JSON Given a deeply nested JSON payload, return a flattened version without any nesting. ⏱ Time: 15 minutes
📅 Round 2: Internal Team (Goroutines + Go LLD) 🧩 Question 1: Concurrent Scheduler Problem Context:
- A scheduler needs to execute N SQL queries concurrently
- System constraint: Warehouse crashes if more than 5 queries are run at once
- Max memory usage: 16 GB
✅ Expected:
- Run at most 5 queries in parallel
- Ensure efficient and safe execution using goroutines
- Each query should be executed via a function like:
Execute(query)→ prints result
🧩 Question 2: Document Service (Low-Level Design) Requirements:
-
Users can create documents (default: private)
-
Owner can:
- Edit the document
- Grant access to specific users
-
A document can also be marked as public
-
Implement logic for:
- Read
- Write
- Access control
❌ Result: Rejected in Round 2
Interview Questions (8)
WaitGroup Management in Goroutines
What is a WaitGroup and how does it manage goroutine lifecycle?
Concurrency vs Parallelism
Difference between Concurrency vs Parallelism
Worker Pool Pattern in Go
What is the Worker Pool Pattern in Go?
Purpose of Done Channel in Go
What is the purpose of a done channel and how it signals goroutines to stop?
Word Transformation (Edit Distance)
Convert one word into another using minimum operations. Operations allowed:
- Add a character
- Replace a character
- Delete a character
Flatten Nested JSON
Given a deeply nested JSON payload, return a flattened version without any nesting.
Concurrent SQL Query Scheduler
Problem Context:
- A scheduler needs to execute N SQL queries concurrently
- System constraint: Warehouse crashes if more than 5 queries are run at once
- Max memory usage: 16 GB
✅ Expected:
- Run at most 5 queries in parallel
- Ensure efficient and safe execution using goroutines
- Each query should be executed via a function like:
Execute(query)→ prints result
Document Service (Low-Level Design)
Requirements:
-
Users can create documents (default: private)
-
Owner can:
- Edit the document
- Grant access to specific users
-
A document can also be marked as public
-
Implement logic for:
- Read
- Write
- Access control