সিস্টেম ডিজাইন ইন্টারভিউ প্রস্তুতি
সিস্টেম ডিজাইন ইন্টারভিউ পৃথিবীর top tech কোম্পানিতে (Google, Meta, Amazon, Netflix, Uber) চাকরির পথ। কিন্তু এটি কোনো একদিনের প্রস্তুতি নয় — এর জন্য প্রয়োজন গভীর বোধ, কাঠামোগত চিন্তা ও অনুশীলন। এই গাইডে পাবেন একটি কার্যকর approach, কমন ভুলগুলো, এবং ৫০টি গুরুত্বপূর্ণ প্রশ্নের বিস্তারিত উত্তর।
📐 ইন্টারভিউয়ের কাঠামো (Framework)
প্রতিটি system design ইন্টারভিউয়ে এই ১০ ধাপের কাঠামো অনুসরণ করুন। এতে interviewer দেখবেন আপনি structured চিন্তা করেন।
- Requirements Clarify করুনFunctional (কী feature) ও Non-functional (RPS, latency, availability) — দুটোই নিশ্চিত করুন। কখনো assumption নিজে নিজে করবেন না।
- Scope নির্ধারণ করুন৪৫ মিনিটে সব design হয় না। কোনটা out of scope সেটাও বলে দিন। উদাহরণ: "এই scope-এ analytics বিবেচনা করছি না।"
- Capacity Estimation করুনQPS (queries/second), data size, bandwidth অনুমান করুন। উদাহরণ: ১০০M user × ১০ post/day = ১B writes/day ≈ ১২K writes/sec।
- API ডিজাইন করুনmain endpoints — method, path, request, response। REST/gRPC পছন্দ করুন।
- Data Model আঁকুনSQL না NoSQL? কেন? Schema কেমন? Indexes কোথায়? trade-off আলোচনা করুন।
- High-level Design আঁকুনClient → Load Balancer → API Gateway → Services → Database → Cache — মূল components।
- Detailed Design এ যানSharding strategy, caching strategy, replication, queue, search index — যেকোনো একটি বা দুটি component-এর গভীরে যান।
- Bottleneck চিহ্নিত করুনসিস্টেম যখন ১০× scale হবে — কোথায় ভাঙবে? Hot partition? Single point of failure?
- Trade-off ব্যাখ্যা করুনপ্রতিটি decision-এর pro-cons বলুন। CAP, ACID vs BASE, push vs pull — কেন এই pick।
- Failure Scenario ভাবুনসার্ভার fail হলে? Network partition? Data center down? Disaster recovery plan কী?
💡 সাধারণ ভুল ও পরামর্শ
❌ সরাসরি solution-এ যাওয়া
Requirements clarify না করেই solution বলা শুরু — সবচেয়ে কমন ভুল। প্রথম ৫-১০ মিনিট requirements ও scope-এ ব্যয় করুন।
❌ Buzzword ছড়ানো
"Microservices, Kubernetes, Kafka লাগবে" — কারণ ছাড়াই tools throw করা। প্রতিটি technology-এর কারণ ব্যাখ্যা করুন।
❌ Trade-off না বোঝা
Design-এ সব সমাধান পারফেক্ট নয়। CAP-এর কোনদিকে বেছেছেন, কেন — এটা বলতে পারলে interviewer impressed হন।
❌ Numbers না বলা
"অনেক user থাকবে" — vague। Estimation করুন: "১০০M MAU, ১০K QPS, ১TB/day write" — concrete numbers।
❌ একা একা কথা বলা
System design ইন্টারভিউ collaborative। Interviewer-এর সাথে check করুন: "এই assumption ঠিক আছে?" "আপনি কি এদিকে যেতে চান?"
❌ Scale ভুলে যাওয়া
সব মনে রাখুন: ১M user-এর সমাধান ১B user-এ কাজ করবে না। Sharding, replication, caching আগে থেকে ভাবুন।
✅ ছবি আঁকুন
Whiteboard বা virtual board ব্যবহার করুন। Box-arrow-এ component আঁকুন। ভিজ্যুয়াল communication গুরুত্বপূর্ণ।
✅ "I don't know" বলতে দ্বিধা করবেন না
না জানলে স্বীকার করুন, কিন্তু কীভাবে বের করতেন সেটা বলুন। Interviewer সততা ও problem-solving approach দেখেন।