8 min read

Amazon'da Yazılım Mühendisliği Mülakatına Girmek

Amazon (Amazon Web Services) ile yaptığım yazılım mühendisliği mülakat sürecinin detaylı bir özeti
Amazon Irlanda - Shannon Ofisi

Bu yazıyı çok daha önce bitirip yayınlamayı planlamıştım ama araya giren bir sürü sebepten dolayı birkaç ay gecikmeli olarak tamamlayabildim. Her şeyden önce şunu söylemekte fayda var; bu yazı her sene binlerce mühendisle mülakat yapan bir şirkette tek bir adayın tek bir mülakat sürecinde yaşadığı deneyimleri anlatıyor. Elbette bazı çıkarımlar yapılabileceği gibi yine de sadece bu yazıdan yola çıkarak bir genelleme yapmak veya her mülakatın böyle geçtiği sonucuna varmak doğru olmayacaktır.


Asıl konuya geçmeden önce bu yazıda anlatılan dönemlerde kendimle ilgili bir cümlelik bir ön bilgi vereyim; bu yazıda anlatılan süreçte Özyeğin Üniversitesi’nde son sınıf bilgisayar mühendisliği öğrencisiydim ve ~1,5 senedir eBrandValue’da part-time yazılım geliştirici olarak çalışmaktaydım.


— İlk İrtibat

Süreç, maillerimi kontrol ederken gördüğüm bir Linkedin mesajıyla başlıyor (o sıralar mobil uygulamayı telefonumdan sildiğim için bildirim almamıştım).

Dear Batuhan,

Hope you have a great start of 2019. In our office in Dublin, the AWS Reliability Engineering is building a new team. It seems that your profile could be a great match for one of our roles.

Mesajın devamında ekip ve rol ile ilgili bir miktar bilgi verdikten sonra ilgilenip ilgilenmeyeceğimi soruyor işe almadan sorumlu kişi. İlgilenmem durumunda da CV’mi istiyor.

(Burada Linkedin profilinin önemine dikkat çekebiliriz ama hem konuyu dağıtmamak hem de hali hazırda bununla ilgili yazılmış/paylaşılmış bir sürü kaynak olduğu için bu yazıda değinmiyorum)

CV’mi paylaştıktan sonra işe alım sürecinin ilk aşaması olan Coding Challenge ‘a geçiyorum.

Dear Batuhan,

Thank you so much for your interest in Amazon Web Services. Your CV has been carefully reviewed by the Hiring Manager. Because we really like your profile we would like to invite you to the first stage of the recruitment process: a coding challenge.

— Coding Challenge

Teknik mülakatlara aşina olan hemen herkesin bildiği, çoğu işe alım sürecinin ilk adımı olan bu aşamada, bana verilen 2 adet programlama problemini çözmem bekleniyor. Bu sorulara bir internet sitesi üzerinden erişiyorum ve kodu da buraya yazıp kaydetmem gerekiyor.

Problemleri görmek için bana verilen linke 1 hafta içerisinde girmem gerekiyor (ne zaman müsait ve hazır olursam) ve tek giriş hakkım var. Bir kere girdikten sonra 2 saatlik süre başlıyor iki soruyu çözmek için.

Problemler -yine teknik mülakatlara aşina olan hemen herkesin tahmin edebileceği gibi- veri yapıları ve algoritmalar üzerine. Direkt soruları ve cevapları paylaşmam doğru olmayacağı için daha fazla detay veremiyorum ama iki soru için de değerlendirme kriterinin ne olduğu açıkça belirtilmişti. İlk soru için değerlendirme kriteri doğru sonuç verme (correctness) ikinci soru için ise hız/verim (efficiency) idi. Değerlendirme kriterinin söyleniyor olması odaklanmak gereken yeri gösterdiği için önemli ve işleri biraz daha kolaylaştırıyor.

Yazdığım kodun doğru olup olmadığını anlayabilmem için bir butona tıklayıp önceden hazırlanan testleri yazdığım kod üzerinde çalıştırabiliyorum. Buna ek olarak kendim de test input/output’u girip yeni test case’ler yaratabiliyorum. Kodu kaydetmeden önce bu testlerin hepsinden geçtiğinden emin olmanız bekleniyor.

İki problemi de tam 2 saat içerisinde kodlayıp, bütün test case’lerden geçtiğinden emin olup kayıt ediyorum.

Bundan sonraki süreç birkaç gün alabilir. Bir mühendis yazdığınız kodu ve beklentileri karşılayıp karşılamadığınızı inceliyor. Eğer bu aşama da başarılıysa telefon mülakatına davet ediliyorsunuz.

Dear Batuhan,

I hope my email finds you well.

My name is XXX and I will be scheduling your phone interview with Amazon Web Services.

Thank you for your interest in working for Amazon Web Services and especially for the position as Software Development Engineer. The team feels that you are a good fit for this role and would like to schedule a phone interview with you. Your first phone interview will take approximately 45–60 minutes

Bu aşamada, size telefon mülakatıyla ilgili bilgiler verilip önümüzdeki 3 hafta içerisinde müsait olduğunuz tarih/saatler isteniyor.

Bu noktada, normal sürecin dışına çıkıp Coding Challange performansım ve skorum ile ilgili feedback istedim. Girilen tüm mülakat süreçlerinde feedback istemek çok önemli kazanımlar sağlayabilir, özellikleri ilerideki mülakatlar için. Eğer feedback almadıysanız, her görüşmenizde istemenizi önerebilirim.

I cannot advise on the score, but the Engineer reviewing it mentioned: candidate produced clean, readable code and he is able to wield several utility classes provided by the language of choice. Good comments, I have no issue to see this candidate pushed to a phone screen

Bu feedbackten yola çıkarak, gönderilen kodlama problemlerini çözebilmenin yanında temiz, anlaşılır ve gerekli yerleri yorum satırlarıyla açıklanmış kodlar/çözümler yüklemenin önemli olduğu fikrine ulaşabiliriz.


— Phone Interview

Telefon mülakatı, Amazon Chime (Skype benzeri bir uygulama) üzerinden yapılıyor ve hem teknik hem de Amazon’un 14 Liderlik Prensibi çevresinde sözel sorularla ilerliyor. 1 saat kadar sürüyor diyebiliriz bu mülakat ortalama. Ortalama 30–40 dakika kadar teknik , 15–20 dakika kadar Liderlik prensipleri ve geri kalan sürede de sizin sorunuz varsa onları cevaplamak için vakit ayırılıyor.

Kodlama/teknik kısımda temel algoritma veya kavramlarla ilgili sorular geliyor, bunları açıklayabilmeniz veya uygulayabilmeniz bekleniyor. Benim mülakatım daha çok REST API çevresinde sorularla geçti.

Mülakatın sözel kısmında ise daha önceki tecrübelerinizden örnekler vererek ve 14 Liderlik Prensibine değinerek yaptığınız işleri/projeleri anlatmanız bekleniyor. Daha çok sohbet havasında geçiyor ve biraz formalite icabı yapılan bir şeymiş gibi görülse de aslında işe alımdaki en önemli faktörlerden biri bu liderlik prensipleri çevresinde verebildiğiniz cevaplar. Sebebi, sizin hakkınızda brif yazacak olan mühendis, raporuna bu liderlik prensiplerindeki güçlü noktalarınızı eklemeli işe alım ekibini ikna edebilmek için.

Telefon mülakatı farklı sebeplerden dolayı farklı sayılarda yapılabilir. Bazı durumlarda tek telefon mülakatı yeterliyken bazı durumlarda iki veya üç farklı telefon mülakatı yapılabilir.

Benim deneyimimde, tek telefon mülakatına girdim.

— On-site Interview

Telefon mülakatından sonra 1 hafta 10 gün içinde diğer aşamaya geçip geçemediğinizi bildiren bir e-mail alıyorsunuz.

Hi Batuhan,

I have excellent news for you — the phone screen was successful so we are looking to organise the final interview for you.
One of my colleagues will reach out to start planning this.

We are aiming for a hiring event beginning of April so hope you can wait a bit longer. That should allow us time to apply for the visa for you and fly you here to Dublin

Congrats and looking forward to having you here for the final interview!

Cheers,

Mülakat aşamaları arasında hem en keyifli hem de en zor olanı on-site interview. Şirket, sizi tüm masrafları karşılayarak açık pozisyonun bulunduğu lokasyona getiriyor ve son mülakatı burada gerçekleştiriyor. Tüm masraflardan kastım, gerçekten tüm masraflar (bu kadarını ben de beklemiyordum doğrusu :)). Mülakat için evinizden dışarıya adım attığınız andan itibaren bütün masraflarınız karşılanıyor; vize başvurusuna giderken bindiğiniz taksi, vize ücreti/vize hizmet ücreti, uçağa giderken bindiğiniz taksi, havaalanında yediğiniz yemek, Dublin’e gittiğinizde kaç gün kaldıysanız yediğiniz yemekler, havaalanından otelinize ulaşımınız, mülakata giderken bindiğiniz taksi, uçak biletleriniz ve oteliniz zaten şirket tarafından alınıyor… En kötü ihtimalle 3–4 günlük bir tatil yapmış oluyorsunuz :)

Bu maili aldıktan sonra 1 ay içerisinde vize başvurunuz için gerekli dökümanlar size gönderiliyor, tarihler ayarlanıyor, vizeniz çıktıktan sonra da uçak biletleriniz ve oteliniz ayarlanıp size uçağa binmek kalıyor.

Normalde mülakattan bir gün önce şehre gelip, mülakattan sonraki gün de tekrar dönüş yapıyorsunuz. Ben gitmişken Dublin’i biraz daha gezebilmek için uçak biletimi mülakattan hemen sonraki güne değil de iki gün sonraya almalarını istedim, kabul ettiler. İşin güzel tarafı, dönüş biletimi almalarını istediğim gün ekonomi sınıfında yer kalmadığı için business class alınmıştı biletim.

Pazartesi akşama doğru Dublin’e geldim, otelime gidip yemek yedikten sonra mülakat için hazırladığım dökümanların üzerinden son kez geçip ertesi günkü mülakata olan hazırlığımı tamamladım.

Mülakat Günü

Son aşama, daha önce de dediğim gibi sürecin en keyifli ama aynı zamanda en zorlu olan aşaması.

Sabah 9 başlayan, art arda 5 oturumdan ve yaklaşık 4,5–5 saat süren bir mülakat süreci başlıyor. Her oturum 50 dakikayla 1 saat arasında değişiyor.

Mülakatın yapıldığı ve girdikten sonraki 4–5 saatinizi geçireceğiniz oda
Mülakatın yapıldığı ve girdikten sonraki 4–5 saatinizi geçireceğiniz oda

Her oturumda bir mühendis gelip kendini tanıttıktan sonra, teknik ve liderlik prensipleri üzerinden sorular sormaya başlıyor.

Her oturum 50 dakikayla 1 saat arasında sürüyor ve 30–40 dakikası teknik sorulara ayırılıyor. Geri kalan kısmı Liderlik Prensipleriyle ilgili sorulara, ve bu kısım da en az teknik sorular kadar önemli. Verdiğiniz cevaplar işe alım kararında direkt etkili.

Teknik sorular, algoritma implementasyonu yerine problemlere nasıl yaklaştığınızı ölçüyor daha çok. Örnek bir problem verilerek, nasıl bir class dizayn kuracağınızı ve hangi algoritmaları neden tercih edeceğinizi açıklayarak tahtaya çözümünüzü yapmaya başlıyorsunuz.

Yine soruları direkt olarak paylaşmam doğru olmayacaktır ama fikir vermesi açısından örnek bir problem verebilirim, belirli bir flag geldiğinden mail’i arşive atan başka bir flag geldiğindeyse bunu forward eden bir mail class’ına ihtiyacımız var. İleride üstünde değişiklik yapmak isteyebiliriz. Nasıl bir yol izlerdin tahtaya class dizaynını ve çalışma prensibini istediğin dilde kodlayabilir misin?

Burada class dizaynınızdan, hangi veri yapısını niye kullandığınıza kadar her şeyi kodlamanızı yaparken sesli olarak da anlatmanız gerekiyor. Seçimlerinizin getirilerini/götürülerini ve sebeplerini paylaşmanız gerekli.

Bu 5 mülakatın 1 tanesi sistem dizayna ayrılıyor. Burada kodlamadan daha çok, sizden istenen bir sistemi nasıl tasarlayacağınız ve ileriye dönük nasıl scale edebileceğinizi anlatmanız/çizimlerini yapmanız isteniyor.

4–5 saatin sonunda iyi kötü bir performansla mülakatınızı sonlandırmış oluyorsunuz ve geriye sadece olumlu/olumsuz bir sonuç beklemek kalıyor.

Bundan sonra, şehirde kalan tüm vaktinizi gezmeye harcayabilirsiniz. Benim programım kısaca,

Pazartesi — Dublin’e gelip otele yerleşme
Salı — Öğlene kadar mülakat, öğleden sonra Dublin’i gez
Çarşamba — Tüm gün Dublin’i gez
Perşembe — Öğlene kadar Dublin’i gez ve dönüş için havaalanına git

şeklindeydi. Mülakattan çıktıktan sonra geri kalan tüm vaktimi Dublin’i gezmeye harcadım.

— Dönüş ve sonuç

Perşembe günü geldiğinde İstanbul’a dönmek için havaalanına gittim. Uçağımı beklerken, işe almadan sorumlu kişiden bir mail aldım. Sürecin olumlu sonuçlandığını bildirdi ve teklifi iletmek için ertesi gün bir telefon görüşmesi ayarladık.

Mülakattan sadece 2 gün sonra sonucun bildirilmesini beklemiyordum ama uçuştan hemen önce haberi almak yolculuğun çok daha keyifli geçmesini sağladı diyebilirim (şans eseri business class’ta yolculuk yapmamın da keyifli geçmesinde etkisi vardır eminim :))

Teklif
İstanbul’a döndükten sonra telefonda detayları konuştuk ve sonrasında teklif mailini ilettiler

Tüm mülakat sürecinin sonu, başka bir sürecin başlangıcı

Bundan sonraki süreç çok genel hatlarıyla, teklifi değerlendirme kabul etme ve evrak işleriyle uğraşmayla geçti. Bir yandan okuldaki son dönemimi ve mezuniyeti tamamladım, diğer taraftan taşınma ve evrak işleriyle uğraştım. Teklifi aldıktan yaklaşık 3 ay sonra yani mezuniyetimden birkaç hafta sonra da Dublin’e yerleştim.

Temmuz 2019'dan beri Amazon Web Services’ta yazılım geliştirme mühendisi olarak çalışmaktayım.

Bu yazıyı yazmamın bu kadar gecikmesinin bir sebebi de araya giren tüm bu işler. Umarım birilerine faydalı olur, sorularınızı/yorumlarınızı buradan veya @bakayim hesabından iletebilirsiniz.

Okuduğunuz için teşekkürler, başka yazılarda görüşmek üzere.