خمس جولات. خمس مهارات مختلفة تمامًا يجري اختبارها. وأنا حضرت ربما لواحدة ونصف منها. lol. هذه تقريبًا القصة كلها، لكن دعني أحكيها كما يجب لأنني ما زلت أحاول استيعاب ما حدث.
صديقي Jake يعمل في Stripe. له هناك سنتان. وقبل ذلك عملنا معًا في startup على Valencia في Mission، أربعة أشخاص محشورون داخل WeWork desk pod واحدة، runway لـ 11 شهرًا، أحرقنا منها ستة. الشركة ماتت. Jake هبط في Stripe وأنا ظللت أتخبط بين وظائف. المهم أن Jake أجلسني في Equator Coffee في SoMa يوم سبت. طلبنا cold brew. سبعة دولارات للكوب الواحد. للقهوة فقط. فقال لي: "يا رجل، لا تدرس LeetCode من أجل Stripe، هم أصلًا لا يختبرون هذا." هززت رأسي وقلت: نعم طبعًا، ثم فتحت neetcode في الثانية التي غادر فيها. لأنني مهرج لا يستمع.
جولة integration. هذه هي التي كسرتني، وأنا لا أبالغ أبدًا. فتحوا Stripe API docs الحقيقية على shared screen، ثم أعطوني codebase مبنية جزئيًا من شخص آخر، وقالوا: أضف هذه feature. 45 دقيقة. دماغي لم تستطع أن تمسك أي شيء. كنت أضيّق عيني على function signatures لم أرها من قبل، أصعد وأنزل في الملف، ثم أصعد مرة أخرى، ولا شيء يثبت. صفر معلومات. تعرف إحساس أن تقرأ السطر نفسه أربع مرات؟ هذا بالضبط. لكن مع interviewer جالسة تكتب كل خطأ أفعله. أسوأ شعور. أنا مررت مرة بـ Google onsite سيئة لدرجة أن recruiter اختفت بعدها، ومع ذلك هذه كانت أسوأ.
كل شركة تقول إنها تختبر بطريقة مختلفة، صحيح؟ Google تقول ذلك. Meta تقول ذلك. وفي النهاية كلهم يعطونك medium-hard على CoderPad ثم يمشون. Stripe تقصدها فعلًا. Jake كان محقًا. وما زلت منزعجًا من هذا بعد شهرين بصراحة.
انتظر، يجب أن أرجع إلى bug bash round. هذه تحتاج فقرة خاصة، لأن لا شيء، لا شيء، في ستة أشهر من التحضير للمقابلات جهزني لها. يعطونك ملفًا مليئًا بـ payment code لشخص آخر، ثم يقول interviewer: "اعثر على الأخطاء." ساعة كاملة. أخطاء حقيقية مسحوبة من codebase حقيقية لديهم على ما يبدو. هل سبق أن نظرت إلى صفحة Where's Waldo وشعرت أن عينيك تواصلان الانزلاق فوقه؟ هذا. هذا بالضبط ما كان عليه الأمر وأنا أقرأ buggy payment code عندهم. قرأت validation path نفسها مرتين وفوتّ الثغرة نفسها في المرتين. في المرتين! هذه ليست algorithm skill. صفر بالمئة algorithm skill. هذه skill من نوع "هل قضيت سنوات تقرأ production code سيئة الساعة 2 صباحًا لأن PagerDuty انفجرت وشيء ما يحترق؟" وبالنسبة لي؟ لا. Jake ظل يقول لي اترك LeetCode وتدرّب على قراءة code سيئة بدلًا منها. InterviewMan التقط validation gap التي لم أرها. محرج أن أداة بـ 12 دولارًا في الشهر تلتقط ما لم تلتقطه عيناي، لكنني لم أكن على وشك أن أفشل في الجولة بدافع الكبرياء.
نرجع إلى integration. يا JAKE. Jake حذرني من هذه الجولة أكثر من أي شيء آخر. قضى 40 دقيقة في Equator يشرحها لي. أربعون. وأنا جالس مع cold brew الغبية الغالية وأفكر: اهدأ يا Jake، من المستحيل أن تكون مختلفة إلى هذا الحد عن coding round العادية. lol. خطأ. خطأ كبير لدرجة أنه صار مضحكًا الآن. أنت تهبط داخل code لم ترها من قبل، ويجب أن تشحن شيئًا نظيفًا ينسجم مع طريقة المطور السابق في الكتابة. لا توجد خوارزمية لهذا. بحثت في neetcode عن "stripe integration practice" ولم أجد شيئًا، وهذا يجب أن يقول لك كل شيء. Jake كان يقول دائمًا إن algorithm grinders ينكشفون في هذه الجولة، ونعم، انكشفت. InterviewMan وجّهني إلى API endpoint الصحيحة قبل أن أجدها بنفسي، وربما وفّر لي خمس دقائق؟ يصعب عليّ تحديدها بدقة. إذا أردت أن تحضر لهذه الجولة، فقط افتح Stripe API docs مسبقًا. لا تحفظها. فقط تعوّد على بنيتها. أين توجد PaymentIntents؟ أين توثيق webhooks؟ هذا النوع من الأشياء. كان سيوفر عليّ الدقائق الخمس نفسها من دون أداة lol.
جولة coding نفسها على CoderPad. ثلاث مراحل فوق بعضها. المرحلة الأولى بسيطة، لا بأس. الثانية أضافت تفاصيل payments، وهنا احتجت أن أفكر فعلًا. الثالثة جاءت مع retry logic edge cases، وهنا يا رجل... هنا صار الوضع قبيحًا سريعًا. الشيء الذي أربكني في coding round لدى Stripe هو أن interviewer كانت تهتم أكثر بكيفية كتابتي للكود من اهتمامها بسرعة الوصول للحل. كانت تراقب أسماء الدوال فعلًا. وتنظر هل كسّرت المنطق إلى قطع قابلة للقراءة أم حشرت كل شيء في function واحدة. ربما حشرت بعض الأشياء. وهذا مختلف جدًا عن Google، حيث تتسابق إلى O(n) وتثبت التحليل، ولا أحد في العالم يهتم إذا كان اسم المتغير temp2. Jake قال لي قبل loop: "اكتب كأن أكثر زميل مزعج في code review هو من سيقرأ PR." يا رجل. أفضل نصيحة. أفضل قطعة نصحني بها أي شخص في أي مقابلة. InterviewMan كانت قد رسمت لي المرحلة الثانية وأنا ما زلت أنهي الأولى، وهذا أبقاني متقدمًا. هل كان يمكن أن أحلها وحدي؟ ربما. لكن تلك retry edge cases في المرحلة الثالثة، لا يمكن أن أصل إليها من دون الوقت الذي ربحته. لا يمكن.
system design. يستخدمون Whimsical، وقد أحببت هذا بصراحة لأن أغلب virtual whiteboards تشعرك أنك ترسم بلوح صابون مبلل. السؤال كان عن rate limiting على scale، وdistributed state، وحالتين يكون فيهما خادمان غير متفقين على ما إذا كان client ما قد تجاوز الحد أم لا. ليست URL shortener الموجودة في YouTube والتي تمرن عليها الجميع وأمهاتهم 400 مرة. Jake يقول إن فريقه الفعلي يتجادل حول rate limiting في standups، وهذا غريب عندما تفكر فيه. شعرت أنني بخير هنا لأنني وJake كنا نرسم diagrams على napkins في Equator مرتين في الأسبوع عندما كان يحضّر هو أيضًا. رسمنا كثيرًا لدرجة أن الـ barista على الأرجح ظنت أننا نخطط لسرقة.
behavioral؟ STAR المعتادة. tradeoffs بين السرعة والجودة. إذا كنت قد حضرت behavioral Amazon فأنت بخير. لا شيء غريب هنا.
الخلاصة الحقيقية بالنسبة لي هي هذه: خمس جولات. خمس قدرات مختلفة تمامًا يجري قياسها. تحضير Google عندي غطى واحدة منها. وتحضير behavioral الخاص بـ Amazon غطى واحدة ثانية. أما أن تمتلك خطة تحضير مقابلات محترمة تغطي كل أنواع الجولات، فهذا هو الطريق الوحيد للتعامل مع Stripe. bug bash وintegration وsystem design حقيقية ليست نسخة URL shortener من YouTube، هذه الثلاث لم أكن قد تمرنت عليها ولو مرة لأن لا شركة أخرى تختبرها. تتذكر validation gap التي فوتّها مرتين؟ InterviewMan أمسك بها. وتتذكر خمس دقائق integration التي ضيعتها وأنا أبحث عن endpoint الصحيحة؟ هذه هي الفارق بين أن تنهي ولا تنهي، لأن كل جولة في Stripe تعمل على timer. وخلال coding كانت قد رسمت لي المرحلة الثانية وأنا ما زلت في الأولى. تفقدت الـ dock وprocess list وتسجيل الشاشة على CoderPad وعلى Zoom. لا شيء مرئي. 12 دولارًا في الشهر على الخطة السنوية. 57,000 مستخدم. أكثر من 20 خاصية stealth. أداة coding-only بـ 299 دولارًا في الشهر تغطي ربما واحدة من خمس جولات، وهذا الحساب لا يستقيم أصلًا مع Stripe.
Jake قال لي اترك LeetCode وتدرّب على قراءة code سيئة. كنت أتمنى حقًا لو استمعت إليه من أول مرة lol.
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.
