مصاحبه فنی در کانادا - بعضی چیزهایی که باید بدانید

مصاحبه فنی در کانادااگر مهندس نرم افزار هستید و به فکر مهاجرت به کانادا هستید و یا مثل من تازه اینکارو کردید احتمالا این نوشته به دردتون میخوره. در ضمن تجربه من در ایالت اونتاریو بیشتر موضوعیت داره جاهای دیگه شاید کمی فرق بکنه.از آخر شروع کنیم! بعد از یه ماراتن دو هفته ای و بین کلی ریجکشن نهایتا از بین چند آفر خوب بهترین آفرم رو پذیرفتم و هفته دیگه دارم میرم سر کار جدیدم. ولی به نظرم اومد تجربش احتمالا خیلی به درد بقیه بخوره.دو هفته قبل که تازه اجازه کار پیدا کردم شروع کردم موقعیت های شغلی رو دیدن و اپلای کردن. اینم بگم که من خودمو فول استک میدونم و برای همین تقریبا تو همه ی پوزیشن های ممکن رزومه دادم. میشه حدس زد که همیشه جواب های دلخواهمو نگرفتم.میخوام در مورد مهمترین جزییات این فرآیند براتون بیشتر صحبت کنم. اول بریم سراغ اینکه چه تخصص هایی بیشتر تو این حوزه نیازه.تخصص هاچیزی که اول از همه متوجه شدم این بود که تخصص های مورد نیاز خیلی رنجش وسیع هست. سمت بک اند شرکت های بزرگتر به خاطر نرم افزار های قدیمی ترشون معمولا تاکیدشون روی جاوا و دات نت هست. شرکت های جدید هم معمولا NodeJs و گاها گولنگ. چیزی که خیلی برام جالب بود این بود که خیلی شرکت های کمی روبی کار میخواستن و پایتون هم محدود به شرکت هایی بود که کارشون ماشین لرنینگ و به طور کلی دیتا ساینس بود. در زمینه های c/c++ و کلا کارهای embedded که به وفور فرصت شغلی زیاد هست.سمت فرانت اند اما بیشتر همه داشتن طرف react و vue میرفتن. خیلی ها هم به خاطر استک فعلیشون angular میخواستن ولی چیزهای نایاب تر مثل meteor و ... اصلا روی بورس نبود. خیلی از شرکت ها دولوپر فرانت اند رو به عنوان طراح رابط کاربری میخواستن. یه سریا هم خوب به عنوان برنامه نویس میگرفتن. سمت دوآپس ولی چندان استقبال زیاد نبود. از این نظر که عنوان شغلی به این صورت system admin یا Devops Engineer وجود نداشت و اگر کسی اینارو لازم داشت با همون عنوان fullstack دولوپر دنبالش میگشت.البته بگم من دو هفتس اپلای میکنم ولی حدود ۴ ماهی هست که عنوان های شغلی رو بررسی میکنم برای همین داده هام چندان نادقیق نیست.فرآیند مصاحبهاینجا تقریبا تمام اتفاقات با ایمیل میفته. کسی به شما زنگ نمیزنه مگر اینکه ساعت مصاحبه از قبل هماهنگ شده باشه. اگر رزومتون تخصص های مورد نیاز اونها رو داشته باشه یه نفر از منابع انسانی باهاتون تماس میگیره و ازتون در مورد خودتون میپرسه. اسم این مرحله رو میذاریم مرحله آشنایی که در ادامه راجع بهش میگم. مرحله دوم بستگی به شرکتش داره. ولی اصولش اینه که اکثر شرکت ها به نوعی یک چالش اولیه مطرح میکنن که ببینن اینکاره هستید یا نه. این چالش میتونه در قالب یه مصاحبه آنلاین نیم ساعته تا یک ساعته باشه و یا به صورت یک تست آنلاین زمان دار. تقریبا در تمام موارد این مرحله زمان محدودی داره. اسم این مرحله رو میذاریم مرحله چالش اولیه و در موردش بیشتر حرف میزنیم.اینجا ولی مسیر شرکت ها از هم جدا میشه. یک سری از شرکت ها ازتون مستقیم برای مصاحبه دعوت میکنن و توی همون مصاحبه سر و تهشو به هم میارن. ولی شرکت های بزرگتر مصاحبه های مرحله ای ازتون میکنن. از صحبت های فنی با مدیر مستقیم تا چالش های فنی ریز و درشت که در مورد اون ها هم حرف میزنیم. اسم این مرحله رو میذاریم غول اصلی.مرحله بعدی مرحله پرسیدن رنج درخواستی هست که بسیار مساله مهمیه. اینو با جزییات بیشتری توضیح خواهم داد.مرحله آخر هم معمولا به صورت خلاصه شامل فرستادن آفر و قبول کردنش و مراحل بعد از اون یعنی رفرنس چک و بکگراند چک میشه. نکته ای که اینجا مهمه اینه که معمولا رفرنس چک و بک گراند چک بعد از پذیرفتن پیشنهاد انجام میشه که کارو یه مقدار سخت میکنه برای همین خوبه که به فکر رفرنس های خوب باشید. در مورد بک گراند چک و رفرنس چک هم بیشتر حرف میزنیم.مرحله آشناییتو این مرحله همونطوری که گفتم یک نفر باهاتون تماس میگیره و در مورد خودتون ازتون میپرسه چند تا نکته مهمی که به نظرم میرسه:شرکت مقابل رو خوب بشناسیدمعمولا اولین سوالی که طرف میپرسه اینه که چقدر اونارو میشناسید. قصد این سوال اینه که ببینن شما واقعا به نوع کار علاقه دارید یا همینطوری رزومه میفرستید تا یکیش بگیره. برای همین حتما و حتما وب سایت کمپانی مورد نظر رو زیر و رو کنید. ترجیحا آدمایی که اونجا کار میکنن رو هم بشناسید و کلا طوری رفتار کنید که انگار کلا فقط همین یه جا رزومه فرستادید.از شوآف کردن بپرهیزیدمعمولا کسی که با شما تماس گرفته بک گراند فنی قوی نداره. سعی کنید موارد فنی رو در سطح دانش عمومی مطرح کنید. مثلا اگر از شما پرسید یه مساله سختی که حل کردی بگو در مورد graph architecture ی که فلان جا پیاده سازی کردید نگید. بهش به صورت عمومی بگید چی سخت بود و راه حل شما برای حل کردنش به چه شکل بود.شوخی کنید و هیجان داشته باشیدشاید مسخره به نظر بیاد ولی این شخص اولین مرحله ماجراست و اگر از شما خوشش نیاد میتونید با شغل مورد نظر خداحافظی کنید. بنابراین سعی کنید لای حرفاتون چیز های با نمک و جذاب هم داشته باشید. تو مکالمه راحت باشید.در موردشون بپرسیدیکی از مهمترین مواردی که میتونه واقعا بهتون کمک کنه پرسیدن در مورد فرهنگ کاری شرکت و نوع کار کردن در محیط شرکته. ازشون ساختار تیم رو بپرسید. ازش بپرسید دقیقا چه نقشی رو ازتون خواهند خواست ایفا کنید و پروژه هایی که در دست دارن تو چه سبکیه. به این شکل طرف احساس میکنه کار برای شما واقعا مهمه.از گفتن مفاهیم به صورت انتزاعی بپرهیزیدمعمولا به عنوان شخص فنی شمارو استخدام میکنن که یک سری مشکلات فنی رو پوشش بدید برای همین سعی کنید تاکیدتون روی مهارت های فردی باشه. اگر در مورد مهارت های تیمیتون صحبت میکنید از گفتن واژه هایی مثل رهبری و انتقاد پذیر و ... بپرهیزید. سعی کنید اینارو اول برای خودتون به صورت فیزیکی ترجمه کنید و اون ترجمه رو بیان کنید جوری که نحوه ی تعاملتون رو با بقیه آدمها نشون بده.مرحله چالش اولیه این مرحله شامل اولین چالشی میشه که بهتون میدن. این چالش میتونه یکی از موارد زیر باشهمصاحبه تلفنی high-level که معمولا طرف در مورد روش حل مسایل خاص و تکنولوژی های استفاده شده توی شرکت هایی که در رزومه آوردید سوال میپرسه. این شخص معمولا مدیر فنی یا مدیر بخشه و معمولا از نحوه حرف زدنتون میفهمه چقدر با تکنولوژی های مورد نظر کار کردیدمصاحبه فنی آنلاین که معمولا شما با یک شخص دیگه لایو صحبت میکنید. یه مقدار از خودتون میپرسه و معمولا بلافاصله یه چالش فنی مطرح میکنه که شما تو یه محیط آنلاین حلش میکنید. چالش ها گاها خیلی سخت هستن و ممکنه نتونید کامل حل کنید. توصیه میکنم نحوه فکر کردنتون رو با طرف به اشتراک بذارید و اجازه بدید اون هم به نوبه خودش کمکتون کنه. تجربه من این بوده که این سوالات معمولا سوالات پایه ای هستند که وابسته به تکنولوژی خاصی نیستند. یک الگوریتم سورت به خصوص و یا یک چالش با جاوااسکریپت داخل مرورگر و یا طراحی یک بازی با هر زبونی که دوست داشتید.تست آنلاین که شما خودتون هستید فقط و زمان محدود دارید. میزان سختی تست کاملا بستگی به شرکت مورد نظر داره و باز هم بیشتر دانش های پایه ای رو هدف میگیرن. SQL و یا javascript و یا دانش regex و ...برای این مرحله تا حدود زیادی نیاز به تجربه و دانش همزمان دارید . چالش ها گاها چندان سخت نیستند ولی ممکنه محدودیت زمانی و اینکه با طرف مقابل هم باید وسطش صحبت کنید اذیتتون کنه. توصیه میکنم چند مثال رو بدون اینکه قبلش بدونید نوشتن مسایل به چه صورته با خودتون انجام بدید. مثلا الگوریتم های سورتینگ معمولی رو فقط با داشتن ایده به چند تا زبون محتلف بنویسید و یا سعی کنید یک بازی کوچیک طراحی کنید. تمرکزتون روی قدرت حل مساله باشه. همچنین بعضا ازتون میخوان کدهایی که بقیه نوشتن رو تحلیل کنید. این کار رو با خودتون چندین بار انجام بدید و اگر نمیتونید کتاب های طراحی و کد زیبا نوشتن خیلی میتونه کمک کنه.غول اصلیاین مرحله معمولا به صورت حضوری و احتمالا در چند مرحله انجام میشه. خودتون رو برای یک ماراتن فنی آماده کنید. مصاحبه های فنی ممکنه چندین مرحله داشته باشن و معمولا سوال های نسبتا سختی مطرح میشه که حالا یا ازتون میخوان کدش رو توی کامپیوتر خودتون بزنید یا روی تخته حل کنید. توصیه من همیشه روی تخته هست چون مجبور نیستید سینتکس ارور ها رو هم درست کنید.سوال های فنی مطرح شده معمولا شامل سوال های الگوریتمی و حل مساله های خاص میشه. مثلا پیدا کردن بازه خرید و فروش تو اطلاعات بورس یک روز و یا پیدا کردن یه روش بهینه برای برنامه ریزی یک روز خاص . همچنین سوال های طراحی و سطح بالاتر هم معمولا مطرح میشه که ببینن چقدر طراحی بلد هستید. نکته ای که مهمه که بدونید اینه که راه حل اولی که به ذهنتون میرسه معمولا بهترین راه نیست و ازتون میخوان جواب های بهتری پیدا کنید. سعی کنید تمرین کنید قبلش که مغزتون برای اینکار آماده باشه. در مورد اینکه چه چیزی در انتظارتون خواهد بود خیلی نمیشه پیش بینی کرد ولی معمولا تمرکز اصلی روی توانایی حل مساله و تحلیل شما و همچنین دانش بیسیک مهندسی نرم افزار هست. با تمرین میتونید خیلی نتایج خوبی بگیرید.پرسیدن رنج درخواستیرنج درخواستی خیلی مهمهدیر یا زود ازتون در مورد حقوق درخواستی سوالی میکنن. قبلش تو سایت های اشتغال مثل neuvoo.ca نسبت مهارت و رنجتون رو مشخص کنید. در واقع چیزی آن چنان به عنوان مذاکره برای حقوق نیست ( به جز موارد معدودی). از شما رنج درخواستی رو میپرسن. اگر بتونن بدن و شما رو لایقش بدونن توی همون رنج پیشنهاد میدن در غیر اینصورت براتون آرزوی خوشبختی و سعادت میکنن.آفر و بعد از آناگر خوش شانس باشید و مراحل بالا رو رد کنید آخرین مرحله براتون آفر ارسال میشه. این آفر معمولا زمان پایان نزدیکی داره ( بین یک روز تا ۴-۵ روز) و بعد از اون دیگه اعتباری نداره. نکته مهم اینه که پذیرفتن آفر معمولا برای شما تعهد ایجاد میکنه و اگر بزنید زیرش ازتون خسارت میگیرن. این شرکت به شرکت فرق میکنه ولی معمولا به این شکله. بعد از پذیرفتن آفر معمولا بکگراند چک میشید که سابقه ی خلاف ندارید و بعدش با افرادی که خودتون معرفی میکنید از همکاران و روسای سابق تماس میگیرن و اخلاق های کاری و مهارت های کاریتون رو ازشون میپرسن. نکته ای که مهمه اینه که سعی کنید رفرنس هاتون قابل اعتماد باشن چون از زمانی که آفر رو قبول میکنید تا زمانی که کامل بررسی بشه عملا آفر جای دیگه رو نمیتونید بپذیرید بنابراین سر این مرحله ریسک نکنید.نکته هایی که مونددر مورد رزومه نویسی خیلی مطلب هست. سعی کنید بخونید و رزومه ساده متنی بدون عکس و داستان اضافه داشته باشید. علتش هم این هست که خیلی از شرکت ها رزومه ها رو با ماشین بررسی میکنن و اگر ماشین رزومه رو نتونه بخونه عملا کارو از دست میدید.چندین سایت مختلف رو برای کار بررسی کنید. تو کانادا این چند تا سایت برای کار خیلی مهمن:indeed.calinkedin.comneuvoo.caworkintech.caglassdoor.caنا امید نشید. از بین این همه کار فقط یکیش رو هم بتونید بگیرید کافیه. کانادایی ها به شدت محتاط و کند هستن. ممکنه از زمانی که رزومه شما فرستاده تا دیده میشه یه بازه ۳ ۴ هفته ای طول بکشه.برای نوشتن رزومه و همچنین تکمیل پروفایلتون در سایت های کاریابی وقت بذارید. واقعا کار زمان بر و حوصله سر بری هست ولی در موفقیت شما بسیار موثره. تمامی اطلاعاتتون رو یکسان و هماهنگ بذارید تا یک چهره واحد از خودتون نمایش بدید.اگر سوالی داشتید برام در توییتر بفرستید که در حد توانم کمک کنم. به امید روزی که خارجی ها برای کار کردن در ایران چنین پستی بنویسند.