পাঁচটা round. পাঁচটা একদম আলাদা skill test হচ্ছে। আমি prep করেছিলাম maybe দেড়টার মতো। lol. basically পুরো গল্প এটাই, কিন্তু ঠিকঠাক বলি, কারণ এখনও কী হয়েছে সেটা process করছি।
আমার buddy Jake Stripe-এ কাজ করে। দুই বছর হলো। তার আগে আমরা Mission-এর Valencia-তে একটা startup-এ একসঙ্গে কাজ করতাম—চারজন এক WeWork desk pod-এ গাদাগাদি করে, runway এগারো মাস, জ্বালিয়ে ফেললাম ছয় মাসেই। company মারা গেল। Jake Stripe-এ ঢুকে গেল, আমি এদিক-সেদিক ঘুরলাম। যাই হোক, এক শনিবার সে আমাকে SoMa-র Equator Coffee-তে বসাল। cold brew order করল। সাত ডলার EACH. coffee-র জন্য। সে বলল, "dude do not do leetcode for Stripe they do not even test that" আর আমি মাথা নেড়ে বললাম yeah totally, তারপর সে বেরোবার SECOND পরেই neetcode খুললাম। কারণ আমি কথা না শোনা এক clown।
তো integration round. এটাতেই আমি ভেঙে পড়েছিলাম, একটুও বাড়িয়ে বলছি না। shared screen-এ Stripe-এর actual API docs খুলে দিল, অন্য কারও half built codebase হাতে দিল, আর বলল এই feature add করো। পঁয়তাল্লিশ মিনিট। আমার brain একদম lock in করছিল না। একদমই না। এমন সব function signature-র দিকে squint করছি যেগুলো কখনও দেখিনি, up scroll, down scroll, আবার up scroll, কিছুই absorb হচ্ছে না। zero information. একই line চারবার পড়ে ফেলেও কিছু না বোঝার feelingটা জানো? THAT. শুধু পার্থক্য হলো interviewer পাশে বসে আমার প্রতিটা mistake লিখে রাখছে। একদম horrible feeling. একবার Google onsite এত খারাপ দিয়েছিলাম যে recruiter আমাকে ghost করেছিল, আর somehow এটাও তার চেয়েও খারাপ লাগল।
প্রতিটা company-ই তো বলে তারা নাকি আলাদাভাবে test করে, তাই না? Google বলে। Meta বলে। তারপর সবাই CoderPad-এ একটা medium-hard problem দেয় আর এগিয়ে যায়। কিন্তু Stripe actually এটা সত্যি করে। Jake-ই ঠিক ছিল। honestly, দুই মাস পরেও এটা নিয়ে আমি irritated।
একটু দাঁড়াও, bug bash round-এ ফিরে যাই। এটাকে আলাদা paragraph দিতেই হবে, কারণ ছয় মাসের interview prep-এর কোনোকিছুই আমাকে এর জন্য ready করতে পারেনি। তারা তোমাকে অন্য কারও payment code-ভরা একটা file দেয়, আর interviewer বলে, "find the bugs." এক ঘণ্টা। apparently তাদের actual codebase থেকে টানা real bug. কখনও Where's Waldo page দেখেছ আর তোমার চোখ বারবার ওর পাশ দিয়ে চলে যায়? ঠিক সেটাই। তাদের buggy payment code পড়তে আমার ঠিক ওই feeling হচ্ছিল। একই validation path দুইবার পড়লাম, আর দুইবারই gap miss করলাম। দুইবার! এটা algorithm skill না। zero percent algorithm skill. এটা হচ্ছে "রাত ২টায় PagerDuty বাজায়, কিছুতে আগুন লেগেছে, তখন বছরের পর বছর bad production code পড়েছ কি না"—এই skill. আর আমার জন্য? nope. Jake বারবার বলছিল leetcode skip করে bad code পড়ার practice করতে। InterviewMan আমি যে validation gap miss করেছিলাম সেটা ধরেছিল। মাসে বারো ডলারের tool যা আমার eyeballs ধরতে পারেনি সেটা ধরেছে—লজ্জার, কিন্তু pride দেখিয়ে roundটা bomb করার ইচ্ছে আমার ছিল না।
আবার integration-এ ফিরি। JAKE. Jake এই round নিয়ে আমাকে সবচেয়ে বেশি warn করেছিল। Equator-এ পুরো চল্লিশ মিনিট ধরে এটা নিয়ে বলেছিল। চল্লিশ। আমি আমার absurdly expensive cold brew খেতে খেতে ভাবছিলাম, ok Jake calm down, normal coding round থেকে এত আলাদা আর কী হবে। lol. Wrong. এত ভুল ছিলাম যে এখন almost funny লাগে। তুমি এমন codebase-এ নামো যা আগে কখনও দেখনি, আর তোমাকে clean কিছু ship করতে হবে, এমনভাবে যেন আগের dev যেভাবে লিখেছে সেটার সঙ্গেই match করে। এর কোনো algorithm নেই। neetcode-এ "stripe integration practice" search করেছিলাম, zero result. সেখান থেকেই কিছু বোঝা উচিত ছিল। Jake সবসময় বলত algorithm grinder-রা এই round-এ exposed হয়ে যায়, আর yeah. exposed. আমার সঙ্গেও তাই হয়েছে। InterviewMan আমি নিজে খুঁজে পাওয়ার আগেই আমাকে right API endpoint-এর দিকে ঠেলে দিয়েছিল, maybe পাঁচ মিনিট বাঁচিয়েছে? exact বলা কঠিন। এটা prep করতে চাইলে আগেভাগে Stripe API docs খুলে দেখো। memorize না। শুধু layout শেখো। PaymentIntents কোথায়। webhook docs কোথায়। এই ধরনের জিনিস। tool ছাড়াই ওই একই পাঁচ মিনিট বাঁচত lol.
coding round. CoderPad. তিনটা part, একটার ওপর আরেকটা stack হচ্ছে। part one basic, fine, whatever. part two-তে payment stuff add হলো, আর ok yeah, ওখানে actually ভাবতে হয়েছে। part three-তে retry logic edge case, আর ওহ man. OH MAN. ওখানে খুব তাড়াতাড়ি ugly হয়ে গেল। Stripe-এর coding round-এ যেটা আমাকে গুলিয়ে দিল, interviewer আমার HOW-টাকে বেশি care করছিল, আমি কত fast solve করছি সেটা না। সে literally আমার function name দেখছিল। code-কে readable piece-এ ভেঙেছি নাকি এক function-এ সব গুঁজে দিয়েছি, সেটা দেখছিল (আমি হয়তো কিছু জিনিস গুঁজে দিয়েছিলাম)। Google-এর থেকে এত আলাদা, যেখানে তুমি O(n)-এ দৌড়াও, math prove করো, আর তোমার variable-এর নাম temp2 হলে পৃথিবীর কেউ care করে না। loop-এর আগে Jake আমাকে বলেছিল, "write it like your pickiest coworker is reviewing your PR" আর man. BEST advice. জীবনে কোনো interview-এর জন্য পাওয়া single best piece of advice. InterviewMan part one শেষ করার আগেই part two map করে ফেলেছিল, তাই আমি flow-এ থাকতে পেরেছি। আমি কি একা solve করতে পারতাম? Maybe. কিন্তু part three-র ওই retry edge case? no way. saved time ছাড়া আমি ওখানে পৌঁছাতাম না। no way.
system design. ওরা Whimsical use করে, যেটা আমার actually ভালো লেগেছে, কারণ বেশিরভাগ virtual whiteboard-এ আঁকতে wet bar of soap দিয়ে আঁকার মতো লাগে lol. rate limiting at scale. distributed state. দুই server-এর disagreement যে client already limit hit করেছে কি না। YouTube-এর সেই URL shortener না, যেটা সবাই আর তাদের মা চারশো বার practice করেছে। Jake বলে তাদের actual team standup-এ rate limiting নিয়ে argue করে, যা ভাবতেই kind of wild লাগে। এখানে আমি একটু ok ছিলাম, কারণ Jake আর আমি যখন সে prep করছিল তখন Equator-এ সপ্তাহে দুবার whiteboard করতাম। napkin-এ এত diagram এঁকেছি যে barista 100% ভাবত আমরা heist plan করছি।
behavioral. standard STAR. speed আর quality-র tradeoff. তুমি যদি Amazon behavioral prep করে থাকো, তুমি fine. এখানে weird কিছু নেই।
তো এই পুরো experience থেকে আমার actual takeaway কী? পাঁচটা round. পাঁচটা completely different ability test হচ্ছে। আমার Google prep একটার জন্য কাজ করেছে। Amazon behavioral আরেকটার জন্য। সব ধরনের round cover করে এমন solid interview preparation plan ছাড়া Stripe-এর range handle করা যায় না। bug bash, integration, আর YouTube-এর same old URL shortener নয় এমন একটা real system design problem—এই তিনটার জন্য আমি literally একবারও practice করিনি, কারণ অন্য কোনো company এগুলো test-ই করে না। যে validation gapটা আমি দুইবার miss করেছিলাম মনে আছে? InterviewMan সেটা ধরেছিল। integration-এর সময় যে পাঁচ মিনিট আমি right endpoint খুঁজে পাইনি? Stripe-এর প্রতিটা round timer-এ চলে, তাই finishing আর not finishing-এর মাঝে ওইটাই পার্থক্য। coding-এর সময় আমি এখনও part one-এ, আর ওটা part two already map করে ফেলেছে। dock check করেছি, process list check করেছি, CoderPad আর Zoom—দুইটার screen recording-ও check করেছি। visible কিছুই না। annual plan-এ মাসে বারো ডলার। 57,000 user. 20 plus stealth feature. মাসে দুইশো নিরানব্বই ডলারের coding-only tool পাঁচটা round-এর maybe একটাই cover করে, আর Stripe-এর জন্য ওই math একদমই মেলে না।
Jake আমাকে বলেছিল leetcode skip করে bad code পড়ার practice করতে। সত্যি বলতে, প্রথমবারেই যদি তার কথা শুনতাম, খুব ভালো হতো lol.
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.
