System Design শেখো

ইন্টারভিউ গাইড

System design interview-তে কী আশা করবে আর কীভাবে এগোবে — সবকিছু এক জায়গায়।

৭ ধাপের Framework

১. Requirements বোঝা

Functional (কী কী feature) আর Non-functional (কত user, কত দ্রুত, কতটা available) — দুটোই স্পষ্ট করো। প্রশ্ন করতে ভয় পেয়ো না।

২. Scale আন্দাজ (Estimation)

কত ব্যবহারকারী, প্রতি সেকেন্ডে কত request (QPS), কত storage লাগবে — মোটামুটি হিসাব করো (napkin math)।

৩. API ডিজাইন

মূল endpoint গুলো ঠিক করো — যেমন createPost(), getFeed(userId)। input/output কী হবে।

৪. Data Model

কোন ডেটা কোথায় থাকবে, SQL না NoSQL, মূল table/collection গুলো কী।

৫. High-Level Design

একটা বড় ছবি আঁকো — client, load balancer, server, cache, database, queue কীভাবে যুক্ত।

৬. Deep Dive

২-৩টা গুরুত্বপূর্ণ অংশ গভীরভাবে আলোচনা করো — যেমন feed কীভাবে তৈরি হবে, ডেটা কীভাবে shard হবে।

৭. Bottleneck ও Scaling

কোথায় সমস্যা হতে পারে (single point of failure?) আর কীভাবে আরও scale করবে — সেটা বলো।

গুরুত্বপূর্ণ টিপস

  • 1.প্রশ্ন স্পষ্ট না হলে আগে clarifying প্রশ্ন করো — অনুমান করে শুরু করো না।
  • 2.জোরে জোরে চিন্তা করো (think aloud) — interviewer তোমার চিন্তাভাবনা শুনতে চায়।
  • 3.নিখুঁত উত্তর নয়, যুক্তিসঙ্গত trade-off খুঁজছে তারা।
  • 4.সবসময় একটা সহজ ডিজাইন দিয়ে শুরু করো, তারপর ধাপে ধাপে scale করো।
  • 5.প্রতিটা সিদ্ধান্তের পেছনে 'কেন' ব্যাখ্যা করো।
  • 6.Estimation-এ বড় গোল সংখ্যা ব্যবহার করো — নিখুঁত হিসাব দরকার নেই।
  • 7.Single point of failure খুঁজে বের করো ও সমাধান দাও।
  • 8.সময় ব্যবস্থাপনা করো — এক জায়গায় আটকে থেকো না।
  • 9.Read-heavy না Write-heavy system — সেটা আগে বুঝে নাও, সমাধান বদলে যায়।
  • 10.জানা না থাকলে সততার সাথে বলো, তারপর যুক্তি দিয়ে আন্দাজ করো।

সবচেয়ে কমন প্রশ্ন

1একটা URL Shortener (TinyURL) ডিজাইন করো
2একটা Rate Limiter ডিজাইন করো
3Twitter/Facebook-এর মতো News Feed ডিজাইন করো
4WhatsApp-এর মতো একটা Chat অ্যাপ ডিজাইন করো
5YouTube/Netflix-এর মতো ভিডিও স্ট্রিমিং ডিজাইন করো
6Uber-এর মতো রাইড শেয়ারিং ডিজাইন করো
7একটা Notification System ডিজাইন করো
8Google Drive/Dropbox-এর মতো ফাইল স্টোরেজ ডিজাইন করো
9একটা Web Crawler ডিজাইন করো
10Search Autocomplete (typeahead) ডিজাইন করো