Box.com dan rad javob oldim.

Box.com dan rad javob oldim.

Donishmand Dasturchi

Fevral oyi oxirida box.com kompaniyasi bilan ish uchun suhbat jarayonlarini yakunladim va yakunda rad (reject) oldim. Shunday bo'lsada sizlarga jarayon va olgan xulosalarim haqida aytib bermoqchiman.

box.com

Jarayonlar.

Ushbu kompaniyada ishga olish jarayoni to'rtta bosqichdan iborat. Barcha jarayonlar, suhbatlarning hammasida ingliz tilida bo'ldi. Lekin bu yerda men ular haqida o'zbekcha yozaman.

  1. Phone call
  2. Technical interview (live coding - DSA)
  3. Interview (DSA - System design - Behavioral)
  4. Interview with the hiring manager
DSA - Data structures and algorithms.

Ishga topshirish jarayonining boshlanishi.

Hammasi 2024-yil, 23-yanvar kuni LinkedIn platformasi orqali box.com da ochilgan yangi ish o'rni e'loni ko'rib qolgan kunim boshlandi. Varshavada "Software Engineer II (L4)" darajasi uchun ish o'rni ochilgan ekan. LinkedIn orqali saytiga o'tib formani to'ldirdim va resume yuborib qo'ydim. Ular men kiritgan elektron pochta manzilimga avtomatlashtirilgan xabar yuborishdi.

Ertasi kuni kompaniyadan recruiter menga elektron pochta orqali aloqaga chiqdi va men bilan ishga olish suhbatini (interview) boshlashmoqchi ekanligini aytib, kelayotgan haftalarda suhbat uchun menga qulay vaqtlarni tanlashim uchun kalendar yubordi. Kalendardan bo'sh vaqtim bor kunlarni va soatlarni belgilab chiqdim.

Shundan so'ng, shu kunni o'zida menga suhbat jarayonining birinchi qismi (phone call) uchun vaqtni belgiladi. Telefon orqali bo'ladigan suhbat 7-fevral, ertalab soat 10:00 ga belgilandi.

Recruiter - odatda kompaniyalar uchun yangi xodimlarni izlab topadigan, ularni tanlab, kompaniya ishga olish jarayoniga jalb qiladigan insonlar.

Phone call

7-fevral kuni, belgilangan vaqtda, recruiter menga telefon orqali qo'ng'iroq qildi. Avvaliga, menga kompaniya haqida ma'lumot berdi. Men ishlaydigan loyiha, undagi jamoa qanday bo'lishini tushuntirdi. So'ng mendan quyidagi ma'lumotlarni so'rab oldi:

  1. Polshada ishlash va yashash uchun huquqim bor yoki yo'qligi.
  2. Visa (Polshada qonuniy turish huquqim) muddatim qachon tugashi.
  3. Hozir qanday status'da ekanligim.
  4. Taxminiy oyiga qancha oylik maosh istashim
  5. Qanday turdagi shartnoma turini afzal ko'rishim (B2B yoki U0P)

Bergan savollariga javob berdim. Kompaniya bilan ishga suhbat texnik jarayonini boshlashga tayyor ekanligimni aytdim.

Telefon orqali suhbat o'tgach, ertasi kuni menga birinchi texnik suhbat 15-fevralda bo'lishini aytib xabar berishdi.

Technical interview (live coding - DSA)

Birinchi texnik suhbat "DSA live coding challenge" bo'ldi. Ya'ni, ma'lumot tuzilmalari va algoritmlarga doir masala berildi va unga yechim berish so'raldi.

Masalaga ko'ra, "InMemoryDatabase" yasash kerak edi. Masalani yechishda Object Oriented Design qilish va database'lardagi "transaction", "rollback", "commit" imkoniyatlarini joriy qilish so'raldi.

Albatta bu yerda "Redis" kabi haqiqiy InMemoryDatabase yasash emas, balki shunday database'lardagi simple interface'ni kod bilan Object Oriented Design orqali yozish so'raldi.

Suhbat davomida zoom platformasi orqali yuzma-yuz ko'rishib gaplashdik. hackerrank.com platformasida masalani yetmish daqiqa ichida yechish so'raldi.

Masalani belgilangan vaqt ichida yechib bo'ldim va keyin men yozgan kodni suhbat olayotgan dasturchi bilan tahlil qilishni boshladik.

U yerda yozgan ba'zi class method'larini qanday qilib time va space complexity tomonlama rivojlantirish mumkinligini so'radi.

Ushbu suhbat jarayoni yaxshi o'tdi. Suhbat olgan dasturchi ancha xushmuomala edi va suhbat so'ngida menga keyingi bosqichlarda omad tiladi.

Ertasi kuni kompaniya HR manejeri menga aloqaga chiqib, birinchi texnik suhbatdan yaxshi o'tganligimni aytdi va ikkinchi suhbatga taklif qildi. Bo'sh vaqtlarimni tanlashim uchun yana kalendar yubordi va men o'zimga mos vaqtni tanladim.

Keyinroq ikkinchi texnik suhbat(lar) 23-fevral kuni bo'lishini aytib menga xabar berishdi.

Interview (DSA - System design - Behavioral)

Suhbatning bu qismi ancha qiyinroq bo'lishini avvaldan sezib turar edim. Chunki bu safar ketinma-ketin uch xil suhbat olinishi kerak edi.

  1. Behavioral
  2. DSA - coding
  3. System Design

Behavioral.

Bu suhbat turi yarim soat davom etdi. Suhbat davomida turli kishining tabiati, ish jarayonida boshqalar bilan qanday muomalada bo'lishiga doir savollar so'raldi. Ba'zi so'ralgan savollardan misollar keltiraman.

Ishxonada hamkasbing bilan tortishib qolsang qanday yo'l tutasan?

Avval ishlagan loyihalaringning birida, lead yoki manejer ishga kelmay qolganda, loyihaga doir muhim qarorni qabul qilish kerak bo'lgan vaqt bo'lganmi va o'sha vaqt nima qilgansan?

Ishxonada qanday narsalar sen uchun judayam muhim?

Loyihada senga yuklatilgan vazifani muddatida bitkaza olmay qolgan vaqting bo'lganmi, agar ha bo'lsa, o'sha payt nima qilgansan?

Ishdagi biror masala yuzasidan sening qarashlaringga qarshi fikrlaydigan hamkasblaring bilan qanday qilib kelishasan?

Savollarga qo'limdan kelgancha javob berdim. Lekin bazi savollarni avval o'ylab ham ko'rmagan ekanman. Shuning uchun o'sha lahzada javob berish ozgina qiyin bo'ldi.

Bu savollarga to'g'ri yoki no'to'g'ri javoblar bo'lmaydi. Ular faqatgina bergan javoblaringizdan kelib chiqib, siz haqingizda, tabiatingiz, fe'l atvoringiz haqida xulosa qilishadi va kompaniya ichki muhitiga mos kelasizmi yoki yo'qmi aniqlashadi.

Bu kungi suhbatning birinchi qismi shunday savollar bilan boshlandi va bergan javoblarim o'zimni judayam qoniqtirmadi. Bundan tashqari, bu safargi suhbat olayotgan ayolda ozgina qo'pollik, menga befarqlikni sezdim. Albatta bularning hammasi kayfiyatga tasir qiladi.

DSA - coding.

Texnik suhbatning bunisi ham o'tgan safar bo'lgani kabi bo'ldi. Zoom platformasida yuzma yuz suhbat va hackerrank'da masala yechish kerak edi.

Masalada "Rate Limiter" yasash kerak edi. Lekin o'tgan safargisidan farqi shundaki, bu safar hech qanday muammo yaxshilab tushuntirilgan masala tavsifi, yozilgan kod qay usulda ishlatilib ko'rilishiga misollar yo'q edi. Menga taxminan quyidagicha diagramma ko'rsatishdi va shuni kodda yasab berishimni so'rashdi.

Diagrammani ko'rishim bilan, ozgina o'ylab, yechishni boshlashdan avval savollar bera boshladim.

Har bir request qancha vaqt oralig'ida handle qilinadi? Time constraint qanday?

Bucket bir maximum bir vaqtda qancha request'ni sig'dira olishi kerak?

Bucket'da request'lar handle qilinishini men yozgan class metodi orqali chaqirib amalga oshiriladimi yoki avtomat qanchadir vaqt oralig'ida handle qilinadimi?

Unda qanday interface'lar bo'lishi kerak?

Suhbat oluvchi savollarimga javob berishga urundi lekin to'liq tushuntirib bera olmadi. Ingliz tilisi bilan anchagina muammo bor ekan.

Men qisman berilgan topshiriqni qilishga urundim lekin u qabul qilmadi. Suhbat davomida u mendan nima xoxlayotganini tushuntirib bera olmadi va men esa undan nima xoxlayotganini tushunib ololmadim. O'ylashimcha bu ingliz tilidagi muammo sabab bo'ldi.

Lekin men suhbat tugagandan keyin izlanib ko'rganimda tushundimki, u mendan RateLimiter uchun ishlatiladigan mashxur algoritmlardan biri "Leaky Bucket" algoritmini yasab berishimni so'ragan. Lekin men noto'g'ri tushunganman. Men bunday nomli algoritm borligini ham bilmasdim. Men suratdagi "Leaky Bucket" masalaning nomi bo'lsa kerak deb o'ylaganman.

System Design.

Yuqoridagi ikkita suhbatdan kayfiyat tushib bo'lgandan so'ng, bu kundagi oxirgi suhbat - System Design ga kirdim.

Boshida suhbat oluvchi dasturchi bilan tanishdik, biroz gaplashdik, muaomalasi yaxshi, ancha ravon gapirar edi.

Suhbatning asosiy qismiga keldik. Mendan lift (elavator) uchun design qilib berishimni so'radi. Rosti, bu ham kutilmagan bo'ldi. Men biror bir web dastur uchun design qilish so'raladi deb kutgandim.

Tavsifga ko'ra, 50-qavatli bino va unda bor bo'lgan, hammasi yonma-yon joylashgan 4 ta lift uchun system design qilishim kerak edi. Avvaliga design'ni diagrammalar orqali chizib, keyin uni gapirib tushuntirib berishim, so'ngra chizgan narsamni hackerrank'da kodga o'girib berishim so'raldi.

Savol berilgandan keyin, bir muddat o'ylandim. Ichimdan "buni qanday qilaman" qilaman degan hayollar o'tib, panikaga tushishni boshladim. Hayajonlandim. Lekin keyin o'zimni qo'lga olib, topshiriqni aniqlashtirish uchun savollar berishni boshladim.

Keyin lucid dasturida turli diagrammalarni ishlatgan holda chizishni boshladim. Asosiy component'lar, ular qanday vazifalar bajarishi, ular orasidagi bog'liqlikni ko'rsatishga urundim.

Bu savol yana men uchun kutilmagan bo'lgani uchun, suhbatda ravon keta olmadim. Juda ko'p o'ylanib, to'xtalib, gapira olmay qolgan joylarim ko'p bo'ldi.

Keyinroq, bularni hammasini kodga o'girib berish kerak bo'lganda ham, hayolimga nima qilish kerakligi kelmasdi. Avval leetcode masalalar yechganman lekin u yerda sizga aniq tavsif va yozilgan kod qay tariqa ishlatilib ko'rilishi misoli beriladi. Hozir esa unday emas edi. Judayam mavhum va men o'zim ham hali to'liq qanday bo'lishini bilmaydigan narsani kodda yozishim kerak edi.

Yozishga urundim. Qaysidir joygacha bordim...

Xulosa

Suhbat yakunlangach ertasi kuni, suhbatdan o'ta olmaganligim haqida xabar keldi. Men suhbat tugashi bilanoq buni sezgandim. Xabarda men haqimda har bir suhbat oluvchi o'z fikrlarini ham yuborgan ekan.

Ko'p narsa o'rgandim. Zaif nuqtalarimni bilib oldim. O'zimni "yaxshi bilaman" degan kibrli qarashlarimni sindirdim. FAANG kabi kompaniyalarda bo'ladigan suhbat jarayoni qanaqa bo'lishi haqida birinchi tassurotni oldim.



Report Page