🇸🇪 İsveç’teki yazılım pozisyonları için teknik mülakatlarda nelere dikkat ediliyor?

Uğurcan Laçin
3 min readSep 27, 2021

--

Photo by Robert Bye on Unsplash

Bu seride 6 ana başlıkta bunları anlatıyorum.

1. Tanışma ve öz geçmiş

Bu sizin hikayenizin dinlendiği aşama. Hangi şirketle görüşürseniz görüşün, akıcı bir iletişim için kendi hikayenizi önceden hazırlamalısınız. Kendinizin bir personasını yaratıp, bunu görüşmede nasıl satabileceğinizi iyi planlamanız gerekiyor.

- Kimsin?
- Nerelerde çalıştın ve hangi problemleri çözdün?
- Ne yapmayı seviyorsun?
- Neden bu ilana başvurmayı düşündün?
- Seni ne motive eder?
- Hiç side project yaptın mı? Yaptıysan ne kullandın?
gibi sorulara hazırlanabilirsiniz.

Bu soruları tek seferde, anadilde bile kafada toplayıp ifade etmek zor. Bu nedenle görüşme öncesi akıcı bir şekilde kendinizi ifade etmek için hazırlanmanız yararınıza olur.

2. Algorithm Complexity and Data structure

Şirketler ön eleme için basit bir algoritma sorusu sorabiliyor. Leetcode, Hackerrank gibi sitelerde kolay ve orta seviye sorularla pratik yaptıysanız, kendinizi bu aşamada daha rahat hissedebilirsiniz.

Şu ana kadar çok zor sorular ile karşılaşmadım. Bazı şirketler kurduğunuz algoritmanın complexity seviyesini ve bunu nasıl daha iyi hale getirebileceğinizi sorabilir. Leetcode’da biraz vakit geçirdiyseniz, bu tür sorulara zaten cevap verebilirsiniz.

Özellikle backend pozisyonu için veri yapıları hayati önem taşıyor. Hangi veri yapısını neden seçtin, başka neyi seçebilirdin sorularına cevap verebilmek, hatta en temel veri yapılarının arka planda nasıl çalıştığını sözlü olarak anlatabilmek gerekebiliyor.

3. System Design

System design, ucu açık bir konu. Bu aşamada bir senaryo verilir ve bunun için bir sistem tasarlamanız istenir. Bu tip mülakatların ana amacı; sistem tasarımını isterlere göre yaparken muhakeme yeteneğinizi ölçmektir.

Örneğin; bir şirketle teknik mülakatım tamamen system design üzerine kuruluydu. Bir problem verildi ve görüşmeyi yapanlar odadan çıktı. 15 dakika boyunca tek başıma sorunu çözmem istendi. Daha sonra odaya girdiklerinde çözümü tahtada çizerek anlatmıştım. Verdiğim kararları nedenleriyle birlikte açıklamam istenmişti.

Örneğin;
- Veritabanını nasıl tasarladım ve bu multi tenant olmaya açık mi?
- Değilse desteklemek için ne yapmak gerekir?
- Servisleri bölerken hangi domain terimlerini dikkate aldım?
- İleride hangi koşullarda bir servisten yeni bir servis çıkabilir?
- Proje globalde çalışacaksa latency değerlerini düşük tutmak için ne yapılabilir?
- High availability için ne yapılabilir?

Kısaca farklı koşullara karşı nasıl muhakeme yaptığız test ediliyor.

4. Muhakeme

Muhakemeyi iyi anlamak için şu iki terimi bilmek gerekiyor.

Analytical thinking: Problemi parçalara bölüp, olası çözümleri çıkarıp analizini yapma yeteneği.

Critical thinking: Analizi yapılan çözümleri değerlendirip karar verme yeteneği.

Çözümlere olan bakış açınızın trade-off odaklı olması sizi öne çıkarıyor. Nasıl sorusunu ne kadar sorduğunuz, kullandığınız araçları ne kadar tanıdığınız önemli.

Spring kullanıyorum çünkü çok iyi derseniz kötü bir imaj oluşturabilirsiniz. Spring kullanıyorum, artıları ve eksileri şunlar diyebilmek araca değil probleme odaklandığınızı gösterir. Çünkü karmaşık problemleri çözecek şey kullanılan araç değil sizsiniz.

Şirketler, sürekli gelişen ve değişen isterlere sahip dinamik yapılar. Dolayısıyla araçlara değil probleme odaklanmak, genelde artı puan kazandırıyor.

5. İletişim

Teknik anlamda çok iyisiniz ama bu yeterli değil.

Bir soru sorulduğunda soruyu doğru anladığınızı teyit etmeniz, verdiğiniz cevapları nedenleriyle birlikte açıklayabilmeniz iletişim yeteneklerinizi göstermeniz açısından önem arz ediyor.

6. İngilizce

En önemlisi bütün bunları kendinizi İngilizce ifade ederek cevaplamanız gerekiyor. Teknik anlamda ne kadar iyi olursanız olun kendinizi iyi ifade edip, karşı tarafı iyi anladığınız seviyede İngilizce konuşamıyorsanız maalesef süreç pek ilerlemiyor.

Bu yazıdaki gibi daha fazla içerik görmek istiyorsanız aşağıdaki linkten ulaşabilirsiniz.

🇸🇪 10 başlıkta İsveç’te yazılım geliştirici olmak ve yaşam

Aşağıdaki kanallardan bana ulaşabilirsiniz.
Twitter: https://twitter.com/ugurcanlacin
Linkedin: https://www.linkedin.com/in/ugurcanlacin/
Email: ugurcanlacin@gmail.com
Instagram: https://www.instagram.com/ugurcanlacin/

--

--