قسمت دوم – 1400/9/12
در قسمت قبل گفتم که چند مصاحبه برگزار شد و هنوز موفقیتی کسب نکرده بودم. از طرفی قرارداد شرکت جدید ایرانی را یا باید هر چه سریعتر می پذیرفتم یا رد می کردم. به هر حال زمان گذشت و روز مصاحبه بعدی (اواخر شهریور) فرا رسید.
مصاحبه کننده، خانم مسئول HR بود. روال مصاحبه با بقیه مصاحبههای HR فرق زیادی نداشت. من حدود 10 دقیقه راجع به خودم و تجاربم صحبت کردم. راجع به پلتفرم هایی که کار کردم و متودولوژی هایی که آشنا هستم. از کارهای قبلیام که به آنها افتخار میکنم گفتم. راجع به علایقم و اینطور چیزها. و یک مقدار به این سؤالات جواب دادم که آیا تجربه قبلی با cloud و ci/cd دارم یا نه.
آن روزها webcam لپ تاپم خراب بود (تعمیرگاهی که SSD نصب کرده بود یادش رفته بود کابل webcam را سفت کند). به همین خاطر مصاحبه نیم ساعته را با موبایل انجام دادم. الان که به آن روزها فکر میکنم به خودم میگویم چه احمقی بودم که حاضر نبودم همان روز مشکل لپ تاپ و نور اتاق را سریعاً حل کنم. یک هزینه خیلی کم که تأثیر خیلی زیادی روی کیفیت مصاحبه داشت.
نوبت به مصاحبه کننده رسید. حدود 15 دقیقه از شرکت و پروژه هایش گفت. از ترکیب تیم گفت. از تکنولوژی های مورد استفاده و نحوه ارتباط تیم با هم. 5 دقیقه آخر هم حالت پرسش و پاسخ داشت. من پرسیدم که آیا وضعیت زبان انگلیسی من قابل قبول است. گفت بله مشکلی ندارد. بعداً فهیدم که بخشی از تیم خودشان به زور انگلیسی حرف میزنند و وضعشان حتی از من هم بدتر است. راجع به اختلاف تایم زون صحبت کردیم. راجع به ماندگاری کارمندان در شرکت که خودش میگفت میانگین 5 سال است. در نهایت راجع به مراحل بعدی مصاحبه صحبت کردیم. و تمام. مصاحبه به نظر خود خیلی می آمد. به نظرم رسید که طرف مقابل هم راضی است.
بعد از چند روز، خبر رسید که در مرحله اول پذیرفته شده ام و باید برای مرحله بعدی که مصاحبه فنی است آماده شوم. روز مصاحبه فنی را تعیین کردیم ولی متأسفانه همان روز تنها یک یا دو ساعت قبل از شروع مصاحبه، شرایط سلامتی یکی از بستگان که چند روزی بود کرونا گرفته وخیم شده و از طریق اورژانس به بیمارستان منتقل شد. من با عجله به بیمارستان رفتم و تنها فرصت کردم موضوع را خبر بدهم. به بیمارستان که رسیدم و کارهای بیمارستان که کمی انجام شد دوباره تماس گرفتم اما متأسفانه مصاحبه cancel شده بود. فردا دوباره صحبت کردیم و قرار جلسه را برای یک روز دیگر گذاشتیم.
جلسه بعدی روز چند روز بعد برگزار شد. مصاحبه کنندها عبارت بودند از Principal Tech Lead و Back-end developer. از روی CV یک مقدار سؤال پرسیدند. کار با دیتابیس، استفاده از Open API، میکروسرویس و یک سؤال عجیب راجع به Http Request Call پرسیدند. راجع به پروژه trade در شرکت قبلی پرسیدند. سؤال فنی جداگانه نپرسیدند. کلاً ساده بود.
تا اینجا حس میکردم خیلی شانس آورده بودم. کلی Design Pattern و سؤالات الگوریتمی را آماده کرده بودم که جواب بدهم. آماده بودم که از آن feature های C# که خود مایکروسافت هم استفاده نمیکنند سؤال بپرسند. حتی منتظر بودم وارد حوزه دیتابیس و DevOps شوند و از Kubernetes و Database sharding و config های پیچیده message broker ها بپرسند. یا حتی بخواهند همان لحظه یک سیستم طراحی کنم که چند صد request بر ثانیه جواب بدهد.
اما هیچ کدام اینها اتفاق نیفتاد. سؤالات واقعاً ساده بودند. در این حد که با فلان چیز کار کردی یا نه و اگر بله یک مقدار توضیح بده. همین سؤالات هم در مورد کلیات بود. در مورد میکروسرویس، در مورد Open Api، در مورد Http و قس علی هذا. اصلاً وارد جزییات نشدیم. مثلاً کسی نپرسید stream در C# را توضیح بده یا بگو چرا Multi Inheritance در C# نداریم.
این تیپ سؤالات دور از ذهن را که میگویم واقعاً برایم پیش آمده که در مصاحبههای ایرانی ازم بپرسند. یک بار برای یک پروژه نیمه بانکی در یک مؤسسه اعتباری مصاحبه شدم، طرف تازگیها یک کتاب راجع به مفاهیم پیشرفته دیتابیس خوانده بود، هر چه سؤال ریز و درشت را از من پرسید. انگار که داشتم امتحان می دادم. کل مصاحبه هم فقط دیتابیس بود و نه چیز دیگر. سؤالاتی مثل Distributed Transaction ها و انواع آن و روشهای پیادهسازی و اینطور چیزها. در مورد Design Pattern ها هم دو بار گیر افتاده بودم یک بار همین اواخر بود و یک بار هفت هشت سال پیش. هر دو جا مصاحبه را با Design Pattern ها شروع کردند و انواع الگوهای رایج و غیر رایج و فلسفه وجودی آنها و مثالها را از من پرسیدند و وقتی که به نتیجه دلخواه نرسیدند، کل پروسه را متوقف کردند. همین اواخر سال پیش یک جا مصاحبه دادم و مواجه شدم با سؤالات الگوریتم در حد المپیاد. از این خاطرات مزخرف کم ندارم…
به هر حال در جلسه مصاحبه فنی از پرسش و پاسخ رد شدیم و به live coding رسیدیم. جایی که نمیدانستم چه تیپ سؤالاتی پرسیده خواهد شد. آنها سه task مطرح کردند. هر کدام از آنها یک کد نیم کاره C# بودند که باید کامل می کردم. بعد از تکمیل، سؤالاتی پرسیده میشد یا میخواستند که کدها را بهبود یا تغییر دهم.
سؤال اول فوقالعاده ساده بود. دو تا Exception بود که یکی از آن یکی ارث برده بود. حالا میخواستند در قسمت catch هر کدام از این Exception ها را جداگانه متوجه شده و پردازش کنند. سؤال دوم در مورد interface ها بود. دو کلاس متفاوت یک interface واحد را پیادهسازی کرده بودند. حالا باید بر اساس یک ورودی ساده string تصمیم گرفته میشود که از کدام کلاس instance ساخته شود. سادگی در حد همان سؤال اول بود. سؤال سوم هم مثل سؤالات اول و دوم خیلی ساده بود. این یکی در مورد استفاده از Extension method بود. در حد تعریف و به کارگیری آن.
بله درست است. Task ها هم خیلی ساده بودند در حد سؤالات فنی بخش اول مصاحبه. در حدی که نگران شدم که شاید کل فرایند مصاحبه سرکاری است. با این نگرانی یکی دو تا پرسش و پاسخ آخر مصاحبه را هم راجع به متودولوژی انجام کار و وضعیت ریموت انجام دادم و منتظر نتیجه مصاحبه ماندم.
فردای آن روز نتیجه مصاحبه فنی اعلام شد. آنها از مصاحبه فنی هم راضی بودند. کاغذ بازیهای قرارداد نویسی چند روزی طول کشید و قرار شد اولین روز کاری من اواسط مهر باشد. همه امضاها الکترونیک بود و هیچ چیز کاغذی بین ما رد و بدل نشد. ولی متن قراردادها کاملاً حقوقی و رسمی بود. حالا تنها کاری که داشتم این بود که منتظر روز شروع کار باقی بمانم.
.
تا بعد…
Comments
Pingback: یک تجربه - وبلاگ افشار محبی
شروع خوب و موفقیتآمیزی داشته باشی!
یکبار جایی خواندم در مصاحبه فنی جواب درست، جوابی است که در ذهن مصاحبهکننده وجود دارد، نه هیچ چیز دیگر. دیزاینپترنها هم به نظر من جز برخی از آنها کاربردی در دنیای واقعی ندارند و فقط به درد مصاحبه میخورند.
Author
آره. به هر حال این بار اقبال با من یار بود و حالا در خدمت این دوستان هستم. تا ببینیم که سرنوشت این تجربه به کجا کشیده میشه )