Facebook, Amazon, Apple, Netflix ve Google (FAANG) şirketlerinde Yazılım Mühendisliği Mülakatları

Hasan Kose
4 min readDec 13, 2019

--

Bu yazıda bahsedeceğim FAANG mülakatları süreçleri yıllar içinde değişebilir ve yaptığım yorumlar benim gözlemlerimdir.

Genel Hazırlık

Bu tarz mülakatlara hazırlık süreci aylar alabiliyor, bu süreçte hangi konularda eksik olduğunuzu hissediyorsanız, onların üzerinde çalışmak ve genel olarak pratik yapmak verimli olacaktır.

Ben mülakat için ilk önce, çok bilinen Cracking the Coding Interview kitabına bakacaktım. Fakat bu kitap çok kalın ve kısa sürede baştan sona bitirmek çok zor olduğu için, kitaptan verimli bir şekilde yararlanma yolu aradım ve bu videoyu buldum. Bu videodan da yararlanarak kitabın çoğu bölümünü atlayabilirsiniz. Pratik olarak da LeetCode, HackerRank gibi sitelerde zaman geçirdim. Diğer mülakatlar için de kaynakları aşağıda bulabilirsiniz.

İlk İrtibat

Yazılım Mühendisliği mülakatları ilk önce recruiter dediğimiz işe alan kişi ile başlıyor. Bu şirketlerin iş ilanları için LinkedIn ya da web sitelerindeki ‘job’ sekmesinden başvuru yapabilirsiniz. Ayrıca LinkedIn yoluyla da sizinle irtibata geçebilirler. Ki benim Facebook ile serüvenim böyle başlamıştı.

Recruiter

Bu ilk görüşme ‘niçin iş değiştirmek istiyorsunuz, hangi yazılım dillerine hakimsiniz’ gibi genel sorularla geçiyor. Hemen ardından sizden teknik mülakat için müsait zamanınızı sorabildikleri gibi, takımların menajerleri ile görüşmek için size sonra da geri dönüş yapabilirler. Bu görüşmede sizin genel bilgi ve yetenek setlerinizi anlayıp, ihtiyaca uygun olup olmadığınız değerlendiriliyor.

Telefon Mülakatı

Bu süreç genelde 45 dakika ya da 1 saat telefonda geçiyor. Her şirketin farklı soru sorma stili var, ama genel olarak 10-15 dakika sizin alanınızda soru-cevap şeklinde geçiyor. Soruların cevaplarını 1–2 dk gibi kısa sürede cevaplamanız bekleniyor. Geriye kalan dakikalarda problem çözme olarak devam ediliyor. Bu problemler bir online döküman üzerinden, mülakat yapanın da göreceği şekilde yapılıyor. Bunun için Coderpad ya da herhangi bir online paylaşımlı döküman kullanılabilir.

Şirketler bir ya da daha fazla telefon mülakatı yapabilir. Sizi bir telefon mülakatı yapıp onsite denilen şirket ortamındaki mülakata çağırabilirler. Bazı durumlarda üç kereye kadar da telefon mülakatı yapabilirler. Bu mülakata kısmen ön eleme diyebiliriz. Bazı şirketler bu aşamadan önce ‘online assignment’ olarak da bir ön eleme süreci ekleyebilir.

Onsite Mülakat

Telefon mülakatlarından sonra, eğer sizi alma potansiyelleri yüksek ise sizi şirketlerindeki mülakatlara davet ediyorlar. Bu süreç en son ve en zor aşama. Ancak bence pozitif düşünmek önemli, çünkü sizi mülakata çağırmaları demek, sizin bütün yol, konaklama ve diğer masraflarınızı karşılamaları anlamına geliyor. Hatta sizi mülakat yapacak 4–5 mühendisin zamanını alacaksınız, bu da ayrı bir maliyet. Bu da demek oluyor ki, sizi alma ihtimalleri hayli yüksek.

Ben de Chicago’da yaşadığım dönemde, San Francisco’ya gidip gelerek baya mil toplamıştım. Ancak gerçekten yorucu diyebilirim. Mülakat için bir günde 4.5 saat uçakla yol yaptığım oluyordu.

Bu mülakatta içerikler ise; tahtada soru çözme, sistem tasarımı, davranışsal ve liderlik konusunda sorular. Ayrıca bir mühendisle kahvaltıda veya öğle yemeğinde vakit geçirerek sormak istediğiniz tüm soruları sorabilirsiniz. Bu da çalışma ortamını, şirket kültürünü anlamak için güzel bir imkan.

Onsite mülakat genelde 5–6 saat sürüyor. Birer saat seanslar şeklinde ayrı ayrı insanlarla mülakat yapıyorsunuz. Şirkete alınmak için bütün mülakat yapanlar tarafından onaylanmanız gerekiyor. Bu da her mülakatın önemli olduğu anlamına geliyor. Diyelim çok iyi bir mühendissiniz ve tüm algoritma sorularını en iyi performansla çözüyorsunuz, ama davranışsal ve lidelik sorularına güzel cevaplarınız yoksa alınma ihtimaliniz yok diyebilirim.

Dilerseniz onsite mülakatına daha detaylı bakalım;

Soru Çözme

Bu aşama telefon mülakatının soruyu tahtada çözme versiyonu. Genelde birer saat olarak, 2 seans halinde gerçekleşiyor. Burada önemli olan kısımlar kesinlikle; iletişim ve verimli problem çözme.

Mülakat yapan insana sırtınızı dönüp, hiç konuşmadan, en optimal sonucu bile bulsanız sanırım mülakattan geçemezsiniz. Çünkü soruları internette görmüş olabilirsiniz, mülakat yapan kişi bu soruyu anlayarak çözdüğünüzden emin olmak ve iletişim kabiliyetinizi görmek istiyor. Mülakatlarda genelde sazı sizin eline almanız istenir, soruyu çözerken mülakatı kontrol etmelisiniz ancak bilemediğiniz durumda soru da sorabilirsiniz.

İkinci olarak da optimal cevabı bulmanız önemli. Diyelim ki sorunun O(n^2) time complexity’li cevabı olduğu gibi O(n) ya O(1) gibi daha verimli cevabı da olabilir. Buradaki önerim ise; sorunun cevabını yazmaya başlamadan, yapacaklarınızı ve nasıl bir time complexity beklediğinizi mülakat yapana aktararak bilgi alışverişi yapmak. Aslında bunu bir şirkette çalışırken, takım arkadaşınızla problem çözme simülasyonu olarak düşünmek gerekir.

Sistem Tasarımı

Bir ürün geliştirmesine kapsamlı bir şeklide, uçtan uca ne kadar hakim olduğunuzu göstereceğiniz bu aşama, sizin alanınıza göre şekillenebilir. Bazen herhangi bir ‘design pattern’ sorusu sorabildikleri gibi, bir uygulamayı baştan sona tasarlamanızı da isteyebilirler. Ya da ikisi birden de ayrı ayrı olarak karşınıza gelebilir. Sistem tasarımı genel bilgisi için bu videoyu tavsiye ederim.

Davranışsal ve Liderlik

Bu süreç sizin önceki tecrübeleriniz üzerinden, soru cevap şeklinde geçiyor. Benim gözlemlerime göre, sistem tasarımı ve davranışsal mülakatlar çok önemli. Çünkü soru çözme alanını zaten yapmanız ve cepte olması lazım. Onsite mülakata gelecek kadar telefon mülakatlarını geçenler ya da Harvard, Stanford veya herhangi bir yerden yeni mezun taze beyinler, soru çözme kısımlarını zaten yapıyor. Bu son iki aşama sizi ön plana çıkaracaktır.

Bu aşamada geçmişteki tecrübelerinizde, şirketlere ne kadar etkiniz oldu. Sadece verilen bir işi mi yapıyorsunuz yoksa sizden istemeden bir şey geliştirdiniz mi ya da sizden istenmeden bir sorunu çözdünüz mü? Bu gibi sorular karşınıza gelecektir. Aslında sizden beklenen aykırı, sorgulayan hatta hatalar yapıp ondan ders çıkaran biri olmanız. Sorgusuz sadece işini yapan, ben buna dokunmayayım bozulur veya ben sadece maaşımı alırım etliye sütlüye karışmam gibi bir kişiliğiniz varsa, bu şirketlere girmeniz çok zor hatta hayatınızda başka bir alanda da büyük başarıya ulaşmanız zor.

Bu aşamadaki soruları cevaplamak için de tabii ki bir metot var; STAR metodu çok bilinen ve tavsiye edilen bir metot. Bu aşamada her soru için çok zamanınız olmayacak. Soruları net bir şekilde, hızlı ve neden sonuç ilişkisinde cevaplandırmanız beklenir. STAR metodu ile ilk önce durum belirlenir, sonra sizin sorumluluğunuz neler olduğundan bahsedilir, ardından sizin aldığınız aksiyondan ve sonuçtan bahsedilir. Her sorunun cevabının mutlaka bir kazanımla bitmesi lazım. Soru eğer hatanızla ilgiliyse, hatalarınızdan ders çıkarmanız da bir kazanımdır. Ya da bir uygulama performans artışı, satışlarda bir artış gibi bir şekilde kazanım olmalıdır. Davranışsal ve liderlik soruları için bu kanala göz atabilirsiniz. Ayrıca internette yüzlerce örneğini bulabilirsiniz.

Mülakatların teknik aşamları olduğu gibi, stresli zamanları da olacaktır. Bu süreçte psikolojik olarak nasıl savaşırım gibi soruların cevaplarına aşağıdaki linkten ulaşabilirsiniz.

— Mülakatlar Üzerine. Bölüm 2: Facebook’ta Yeni Sayfa—

--

--