Uğurcan Laçin

Uğurcan Laçin

30-09-2021

06:06

🇸🇪 İsveç'te Backend Developer pozisyonları için teknik mülakatlara nasıl hazırlanıyorum? 8 adımlık hazırlık sürecimi paylaşıyorum 👇

1. Tanışma ve öz geçmiş Bana göre teknik seviyede kendinizi geliştirmek ne kadar önemliyse, bu teknik bilgiyi iyi sunabilmek de bir o kadar önemli. Teknik mülakatlara hazırlanırken kendi hikayemi ve teknik serüvenimi bir persona olarak hazırlayıp sunuyorum.

Kendimi iyi ve hızlı ifade edebilmek için aşağıdaki sorulara hazırlanıyorum. - Hangi şirkette ve hangi pozisyonda çalışıyorum? - Şirketin iş kolu nedir ve bu iş kolunda hangi problemi çözüyor? - Ben bu çözümün neresinde katkı sağlıyorum? Genel akışa hakim miyim?

- Çalıştığım projede hangi teknik problemleri hangi araçlarla çözdüm? Bu kararları nasıl verdim? - Ne gibi hatalar yapıp nasıl dersler çıkardım? - Halen çalıştığım yerde bir problemi farklı çözme imkanım olsaydı nasıl çözerdim?

2. Data structures List, Hash table, Stack, Queue gibi temel veri yapılarını hiçbir kaynağa bakmadan sıfırdan yazabilecek hale geliyorum. Yıllar geçtikçe otursa da hatırlamak için pratik yapmakta her zaman fayda var.

3. Algorithm Complexity Bu veri yapılarının ekleme, silme, erişme gibi temel işlemlerinin Big O değerlerini tekrarlıyorum. Zaten veri yapılarını sıfırdan yazabildiğim için nasıl çalıştığını, hangi Big O değerine sahip olduğunu mantıklı bir şekilde açıklayabiliyorum.

Leetcode'daki kolay ve orta seviyedeki soruları brute force ile çözüp, daha sonra algorithm complexity değerini düşürmek için çabalıyorum. Zaten Leetcode ilgili problemin çözümlerini de paylaştığı için bu adım oldukça eğlenceli ve eğitici oluyor.

4. System Design Aşağıdaki adreste bulunan örnekleri bakmadan çözecek hale geliyorum. Real world architectures kısmında epey faydalı içerikler bulunuyor. Sadece teknik mülakatlara hazırlanırken değil, güncel kalmak için de arada okumak çok şey katıyor.

5. CV - Özgeçmiş İsveç'te cinsiyet, yaş, ırk, fotoğraf gibi şeyleri CV'ye eklemenize genellikle gerek yok. CV'yi düzenlerken aşağıdaki kaynaktan yararlanabilirsiniz. Şahsen en beğendiğim tavsiye, genel geçer konuşmak yerine sayısal ifadeler kullanmak.

Örneğin; - Bir takım yönettim demek yerine, 7 kişilik bir takımı yönettim. - API'leri optimize ettim yerine, 12 saniyeye kadar çıkan bir cevap süresini 300 millisaniyeye düşürdüm. - Hataları düzelttim yerine, daha iyi error handling yaparak support ticket'larını %20 düşürdüm.

6. Tech stack Her ne kadar tecrübeniz olsa da kullandığınız dilde bazı uç durumları unutabiliyorsunuz ki bu çok normal. O nedenle her teknik mülakat öncesi java interview questions çözüyorum. Mülakatta zor durumda kalmamak için mümkün olduğunca bilgileri tekrar etmek gerekiyor

Rest API tasarımı konusunda best practice tekrarı yapıyorum. Bazı önemli http status kodlarını (201, 202, 403 gibi) tekrar ediyorum. Zaman geçtikçe oturuyor ancak yine de görüşmede hızlı cevaplar verebilmek için tekrar etmekte fayda var.

Network bilgisi onemli. TCP, UDP, HTTP protokollerini, OSI katmanlarını tekrar ediyorum. Bir istek atıldığında başarılı veya başarısız sonuç verdiğinde neler gerçekleşiyor bir örnek üzerinden anlatabilecek hale geliyorum.

Deadlock, race condition, starvation, live lock gibi paralel programlamada karşılaşılan temel problemleri tekrar ediyorum. Kod yazarken bu durumlara karşı nasıl kod yazmam gerektiğini gerek sözlü olarak gerek pratikte anlatabilecek şekilde hazırlanıyorum.

CAP theorem, SOLID, ACID, BASE, DI gibi temel prensipleri tekrar ediyorum. Mikroservis mimarilerinde kullanılan design patternlerini ve örnek uygulamalarını tekrarlıyorum.

7. Mülakat esnasında dikkat ettiklerim - Kodlama problemi verildiyse testi var mı? Varsa olası uç durumlar kontrol edilmiş mi? - Problemi çözerken sesli düşün, farklı öneriler belirt, trade-off analizine göre tercih yap. - Kodun son haline refactor önerisi verebilir miyim?

8. Şirkete yönelik sorular - Kaç takım ve proje var? - Başarı metrikleriniz neler? - CI/CD süreçleri yoksa planları var mı? - Gelecek planlarınız neler ve beni hangi pozisyonda degerlendirmek istiyorsunuz?

Bu çalışma planı çoğunlukla ihtiyacımdan fazlasını karşılıyor ve mülakatlarda sorun yaşamıyorum. İsveç'te mülakatlarda başarılı olmak için bunların hepsini yapmak zorunda değilsiniz. Sadece başarılı olduğunu gördüğüm kendi hazırlık sürecimi paylaşıyorum.

Başka bir ülkede de iş arasam yine bu süreci kullanırdım. Yazılım geliştirme evrensel olduğu için dünyanın her yerinde işe yarayabilir. Ancak şimdiye kadar sadece İsveç'te deneyimleyip başarı elde ettiğim için burası hakkında yorum yapabiliyorum.

Bir yazılım geliştirici gözünden, İsveç'teki sektör hakkında yazmaya devam edeceğim. Bu tweet serisindeki gibi daha fazla içerik görmek istiyorsanız hesabımı takip edebilirsiniz: @ugurcanlacin

Sizin de kendi tecrübelerinizden eklemek istediğiniz bir şeyler var mı?


Follow us on Twitter

to be informed of the latest developments and updates!


You can easily use to @tivitikothread bot for create more readable thread!
Donate 💲

You can keep this app free of charge by supporting 😊

for server charges...