Two Sigma আমাকে ফিরিয়ে দিয়েছিল এমন একটা ইন্টারভিউয়ের পর, যেটাকে আমার একেবারে নিখুঁত মনে হয়েছিল। ব্যাপারটা এখনো মাথা থেকে নামেনি। ফুটপাথে বেরিয়ে বোকার মতো দাঁত বের করে হাসছি। আগের এক সহকর্মীকে মেসেজ করলাম, "দোস্ত, মনে হয় ফাটিয়ে দিয়েছি।" প্রতিটা সমস্যা শেষ। সময় আর স্পেস, দুটোই অপটিমাল। কোড প্রথম চেষ্টাতেই কম্পাইল করেছে, আমার বেলায় যা কখনো হয় না। সে এক মাস ধরে বলে যাচ্ছিল, quant firm-এ নম্বর দেওয়ার হিসাবটা আলাদা। আমি শুধু মাথা নেড়ে গেছি, হ্যাঁ হ্যাঁ, বুঝেছি। চার দিন পর গাড়িতে বসে breakfast burrito খাচ্ছি, ফোনে hot sauce লেগে গেছে, ঠিক তখনই rejection email এল। তিনবার পড়লাম। ভুল লোককে পাঠিয়েছে কি না, সেটাও দেখলাম। না, ভুল হয়নি।
আসলে কী হয়েছিল বলি। Two Sigma-র শুরু HackerRank দিয়ে। দুটো সমস্যা, প্রতিটির জন্য চল্লিশ মিনিট। medium difficulty-র আশপাশে graph আর array। দুটোই সময়ের আগে শেষ করেছি। live round-এ ছিল DP, optimal sequence partitioning। সেটাও ঠিকঠাক। interviewer বলল, ভালো। তারপর একই সমস্যার সামান্য বদলানো একটা রূপের complexity বিশ্লেষণ করতে বলল। উত্তরটা ঠিকই দিয়েছিলাম, তবে ভাবতে প্রায় দশ সেকেন্ড লেগেছিল। দেখলাম সে notepad-এ কিছু লিখে রাখল। পরে ওই সহকর্মী বলেছিল, এসব জায়গায় দশ সেকেন্ড মানে অনন্তকাল। এরা এমন system বানায়, যেখানে প্রতি millisecond-এ লাখ লাখ জিনিস নড়ে। complexity বলতে এতক্ষণ থামলে তাদের মনে হয়, রাত 3টায় production বন্ধ হয়ে গেলে তুমি কীভাবে সামলাবে। সঠিক উত্তরটা কোনো কাজেই এল না। দশ সেকেন্ড। সপ্তাহে অন্তত একবার ওই মুহূর্তটা মাথায় চলে আসে, এখনো কিছু একটা ছুড়ে মারতে ইচ্ছে করে।
কয়েক সপ্তাহ পর Jane Street আর Citadel-এর loop-এ ঢোকার খবর পেয়ে সে রাত প্রায় 11টায় আমাকে মেসেজ করল। কয়েক সপ্তাহ ধরেই InterviewMan ব্যবহার করতে বলছিল। অত ভাবনা বন্ধ করে সত্যি সত্যি একবার চালাতে বলল। শেষমেশ করলাম। বিশ মিনিট পর আমার laptop-এ চলছিল। annual plan-এ মাসে বারো, আর সামনে থাকা প্রতিটি round type-ই এর মধ্যে ছিল।
Jane Street একেবারে অন্য দুনিয়া। গোটা দিন, চারটি round, প্রতিটি সত্তর মিনিটের। প্রত্যেক room-এ দুজন interviewer। একজন প্রশ্ন করে, অন্যজন তোমার বলা প্রতিটা কথা লিখে রাখে। অস্বস্তি লাগার জন্য এটুকুই যথেষ্ট। যে কথাটা কেউ বলে না, সমস্যাগুলো LeetCode-এ নেই। একেবারেই নেই। আমার মুখস্থ ছিল দুইশো problem। একটাও কাজে লাগেনি। প্রথমে দিল নির্দিষ্ট cache eviction rule-সহ একটা memoized function। তারপর Connect Four-এর জন্য game state class, যার মধ্যেই move validation আর win detection রাখতে হবে। এরপর এমন একটা tree structure, mutation-এর পরও যার custom hash একই থাকবে। সবকটাই নতুন problem। code চালানোর আগেই আমাদের tool আমার Connect Four validator-এ দুটো edge case দেখিয়ে দিয়েছিল। সম্ভবত পাঁচ মিনিট বেঁচেছে। আর আমার ওই দুইশো LeetCode problem? কোনো কাজের না, হা হা।
আর হ্যাঁ, OCaml জানার দরকার নেই। নিজের loop-এর আগে ওই সহকর্মী OCaml শিখছিল। ওরা আক্ষরিক অর্থেই তাকে থামতে বলেছিল, যে ভাষায় সবচেয়ে দ্রুত লিখতে পারো, সেটাই ব্যবহার করো। Python। আমরা দুজনই সেটাই নিয়েছিলাম। কারও কিছু যায় আসেনি।
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan FreeJane Street-এর interviewer-রা hint দেয়। Google থেকে গেলে বিষয়টা বেশ অবাক করার মতো, সেখানে তারা চুপচাপ বসে তোমার ভোগান্তি দেখে। Connect Four-এর diagonal edge case-এ আটকে ছিলাম, তখন তাদের একজন বলল, "board পুরো ভরা না থাকলে diagonal-টা ভাবো।" সঙ্গে সঙ্গে গিঁট খুলে গেল। তারা চায় তুমি মুখে মুখে ভাবো, আর দরকারে নিজের পথ বদলাও। ওই সহকর্মীর ভাষায়, তাদের team-ও বাস্তবে এভাবেই কাজ করে।
চুপ করে গিয়ে একাই নায়ক হতে চাইলে ভুল করবে। তৃতীয় round-এ চল্লিশ সেকেন্ড নীরব ছিলাম। দুজনই শুধু আমার দিকে তাকিয়ে। ভয়ংকর, সত্যি। তারপর খুব তাড়াতাড়ি আবার কথা বলা শুরু করেছিলাম।
এবার Citadel। finance-এর একটা Discord-এ আমি চুপচাপ পড়ে থাকি। সেখানকার একজন Citadel Securities-এ intern করেছিল। channel-এ সে যা লিখেছিল, হুবহু কথাটা ছিল, "তুমি যেভাবে কঠিন ভাবছ, এটা সেভাবে কঠিন নয়।" আমি মাথা নেড়েছিলাম। তার মানে কী, বিন্দুমাত্র ধারণা ছিল না। room-এ ঢোকার পর বুঝলাম, আচ্ছা, এবার ধরেছি। partial credit বলে কিছু নেই। solution সব test case পার করবে, নয়তো zero। zero। একটা problem-এ সম্ভাব্য approach নিয়ে বলা শুরু করেছিলাম, interviewer বাক্যের মাঝখানেই থামিয়ে দিল। "এটা তোমার জানা উচিত।" হা হা। Meta-তে ওই walkthrough-এর জন্য নম্বর মেলে। Citadel-এ মেজাজটাই আলাদা। problem দেখো, সঙ্গে সঙ্গে typing শুরু করো। আর কিছু না। ঠিক ওই জায়গাতেই InterviewMan নিজের দাম তুলে দিয়েছিল। screen থেকে HackerRank problem পড়ে প্রায় তিন সেকেন্ডে algorithm দিয়েছিল। আমার laptop-এ tool-টা রাখার গোটা কারণই ছিল এটা।
Citadel-এর system design আবার অন্য রকম। Discord-এর ওই মানুষটি আমাকে সাবধান করেছিল। আমি শুনেছিলাম? অবশ্যই না, হা হা। বলতে হবে, দশ হাজার rps-এ P99 পাঁচ ms-এর নিচে। low latency বললে হবে না। সে দেখেছে, একজন শুধু "cache ব্যবহার করতে পারি" বলায় নম্বর হারিয়েছে। eviction policy বলেনি। hit rate বলেনি। memory budget-ও না। কোনো কিছু হাত নেড়ে এড়িয়ে যাওয়ার সুযোগ নেই। আমি ভেবেছিলাম Google-এর মতো হবে, whiteboard-এ box এঁকে অস্পষ্টভাবে হাত নাড়লেই চলবে। একদমই না।
প্রতিটি session শেষ হওয়ার পর dock, process list আর Activity Monitor দেখেছি। এসব নিয়ে আমি বেশ সন্দেহবাতিকগ্রস্ত, ঠিক আছে। ওই সহকর্মীকে Zoom call-এ এনে তার দিক থেকে কিছু দেখা যাচ্ছে কি না, তাও দেখিয়েছি। HackerRank-এ screen recording। Zoom call। Meet call। তিনটি firm-এই পরীক্ষা করেছি। কিছুই দেখা যায়নি। একটাও চিহ্ন না। screen share-এ পুরোপুরি অদৃশ্য থাকার জন্যই আমরা এটি বানিয়েছি, আর আমি যত platform-এ পরীক্ষা করেছি, সবখানেই সেটা ঠিক ছিল।
গত সপ্তাহে পানীয়ের টেবিলে ওই সহকর্মী বলল, quant shop নির্দিষ্ট এক ধরনের মস্তিষ্ক খোঁজে। FAANG-এর মানুষের চেয়ে বেশি বুদ্ধিমান নয়। শুধু দ্রুত। keyboard ছোঁয়ার আগেই যার উত্তর তৈরি। আমি বললাম, হ্যাঁ, ঠিক সেটাই। সে বলল, "তাহলে Two Sigma নিয়ে এখনো রেগে আছ কেন?" beer প্রায় মুখ থেকে বেরিয়ে যাচ্ছিল। দশ সেকেন্ড, ভাই। ওই দশ সেকেন্ডে offer-টা গেছে। Discord-এর ওই মানুষটি বলে, এবার ছেড়ে দাও। আমি পারি না। দশ সেকেন্ড।
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.

