2021-yil uyda o'tirganimda Telegram kanallarni biridan xabar keldi. Ha topdingiz, Azimjon aka Facebook kompaniyasida "Yozgi amaliyot" o'tashi haqida va u yerdagi imkoniyatlar haqida yozgan edi. Juda havas qilib uydagilarga ko'rsatgandim. Ayam ertasi kuni bozordan menga kalitga osiladigan keychain olib bergandi. Uni doim sumkamda osib yuraman. "Har safar unga qarasang orzularing yodinga tushsin" degan gaplari hali ham esimda. Bugun o'sha orzu amalga oshdi va men Facebook intervyularini buzib tashlay oldim. Mana bunday narsa:
Ko'plab insonlar bilan tanishish va do'stlashish juda ko'p imkoniyatlar eshigini ochadi. Mening ham hikoyam aynan eng yoshi katta do'stlarimdan biri, Meta'da Senior Software Engineer lavozimida ishlovchi, Ahmad bilan boshlanadi. Ahmad bilan Meta ofisida tanishganmiz, tanishganimizdanoq soatlab gaplashib juda kelishib oldik. Oradan vaqt o'tib u o'z jamaosiga meni taklif qildi va shu bilan intervyu jarayoni boshlandi.
Texnik Intervyular
Men Software Engineering E3 (junior)ga topshirdim. Ertasi kuniyoq menga intervyu kunini belgilash uchun havola keldi. Umumiy hisobda 3 ta intervyu bo‘lgani uchun 2 ta texnik intervyuni bir kun, system design intervyusini ertasi kunga belgiladim. Ha Meta junior olsa ham, undan system design intervyu qilar ekan. Yo‘qotadigan hech nima yo‘q, IBM va Dropboxdan ishga taklif bor va Meta ham zarar qilmaydi deya tayyorgarliklarsiz intervyuga kirdim.
Birinchi intervyuda 4-yildan buyon Senior Software Engineer bo‘lib London ofisida ishlab ishlab kelayotgan bir aka oldi. Intervyu boshida biroz kirishib olish uchun suhbat qurdik va yaqinroq tanishdik. 7-8 daqiqadan so‘ng tanishuv to‘xtab, savol o‘rtaga tashlandi va jang boshlandi. Birinchi savol xuddi leetcode’dagi mana bu savolga o‘xshab ketadi. Boshida savolga biroz tushunmadim ammo 2-marta o‘qiganimdan so‘ng tushunarli bo‘ldi. Muammoni yana ham aniqroq tushunish uchun uchun savollar berib va yechim taklif qildim, unga yoqdi va yozib berdim.
Ikkinchi savol Tree bo‘yicha bo‘ldi, post traversal bilan optimal yechim berdim. Edge-case’larni o‘ylab o‘sha yechimda qoldik va kodni yozish jarayonini tugatmasimdan vaqt tugab qoldi. Unga savollarim bo‘lsa berishimni so‘radi va ayrim o‘zimni qiziqtirgan savollarni so‘rab xayrlashdik. Ikkinchi intervyu biroz qiyinroq bo‘ldi asosan Matrix va Graph bo‘yicha savollar berdi. Matrix bo‘yicha savolni ishlay oldim ammo Graph bo‘yicha savolni tushunishga juda qiynaldim. Yechim taklif qilmasimdan vaqt tugab qoldi.
System Design intervyu
Navbat System Design bosqichiga keldi. Intervyu olgan odam oldin Google’da ishlagan ekan, ajoyib samimiy suhbat olib bordi. Bu safar Image storage dizayn qilish bo‘ldi. Berilgan shartlar taxminan.
- sekundiga 100 ta rasm yuklanadi
- duplikatsiyalarni oldini olish kerak
- xotira cheklangan bo'lsa, nima qilardim
- ...
Bunday servisni 45 daqiqada dizayn qilib berish juda qiyin. Ammo qo‘ldan kelguncha harakat qilib uni birgalikda dizayn qildik. Ayniqsa duplikat rasmlarni oldini olish va cheklangan xotira muhitida ishlash uchun ajoyib yechimlarga birga to‘xtalganimiz juda ko‘p narsalarni o‘rgatdi. Intervyu ijobiy bo‘ldi va u bilan mail, linkedin almashib olib xayrlashdik.
Tayyorgarlik
Bu haqda juda ko‘p insonlar allaqachon yaxshi tavsiyalar berib bo‘lishgan. Ammo men ham o‘z hissamni qo‘shishni istagan holda sizga ajoyib resurslar tavsiya qilmoqchiman
Boshlang‘ich Algoritmlar bilan tanishish uchun Grokking algorithms kitobi zo‘r. Agar video ko‘raman desangiz 42.uz dagi Express Algoritm kursi juda foydali bo‘lgan. Matematika va chuqur algoritmik bilimlarni mustahkamlash uchun esa Introduction to Algorithms va The Algorithm Design Manual kitoblaridan yaxshirog‘ini ko‘rmadim.
System Design yodlab olinadigan narsa emas. Bu bo‘yicha juda ko‘p manbalar bor, asosan har xil joydan o‘qib, amaliyot qilsangiz bo‘ladi. Imkon qadar implementatsiya qilib ko‘ring. Ma’lumotlar ombori bilan yaxshi ishlash uchun Design Data Intensive Applications va Database Internals kitoblari juda foydali bo‘lgan menga. Ko‘proq ma’lumot uchun roadmap.sh eng zo‘r joy.
Natija
System Design intervyudan so‘ng, 4 kun o‘tib rekruter menga barcha intervyular yaxshi o‘tgani va menejer bilan 1:1 uchrashuv qilish uchun havola yubordi. Ertasi kunga ma’qul vaqtni belgiladik va u yerda turli xil mavzularda suhbatlashdik. Suhbat davomida intervyudan yaxshi o‘tganim uchun tabrikladi, jamoa, muhit, imkoniyatlar, oylik, loyihalar va men haqimda gaplashdik. Mavzu o‘rtasida immigratsiya haqida gap ketdi, men esa "Varshava ofisga ko‘chirib bera olasizmi? Bakalavr hali olmaganman." deb so‘raganimni bilaman menejerni yuzidagi quvonch yo‘qolib to‘xtab qoldi. Biroz o‘ylanib bu holat juda qiyin ammo uni muhokama qilib ko‘ramiz dedi. Menejer bilan bo‘lgan suhbatdan keyin esa menga shunday xabar keldi.
Albatta bu ham yaxshilikka, eng asosiysi intervyularni o‘ta oldim. Offer jo‘natishmaganiga yagona sabab bu bakalavr diplomi yo‘qligi bo‘ldi. Agar immigratsiya qilishni istasangiz sizga albatta universitet kerak. Azimjon aka ham bu haqda ajoyib maqola yozgandi. O‘qing!
Maqola sarlavhasi aslida "Metadan salkam offer oldim" bo'lishi kerak edi, qisqaroq qilish uchun shunday yozdim, uzur. Umid qilaman maqolada ko‘p ma’lumot ochiqlay olmagan bo‘lsam-da yaxshi ma’lumot bera oldim deb. O‘rganishdan charchamang!