Selamlar geliştirici dostlarımız!
Kariyerim boyunca, genç geliştiricilerden tecrübeli ustalara kadar her seviyeden geliştiriciyle 100'ün üzerinde röportaj gerçekleştirdim. Ve biliyor musun? Bu süre zarfında her yeni adaya sorduğum 10 zorlu sorudan oluşan bir set hazırladım.
Neden? Aslında çok basit: Bu sorular birinin teknik becerilerini değerlendirmenin ötesine geçmemi sağlıyor. Düşünce süreçlerini, problem çözme yaklaşımlarını, takım çalışması yeteneklerini ve diğer önemli nitelikleri daha derinlemesine incelerler.
Bu entelektüel savaşa hazır mısın? O halde kendinizi hazırlayın çünkü bu sorular korkaklara göre değil!
Editörlerin yönetici panelinde makaleleri düzenleyebileceği bir dergi düzenleme sistemi uyguladığınızı varsayalım. İki editörün aynı anda aynı makaleyi düzenlemesini ve birbirlerinin değişikliklerinin üzerine yazmasını nasıl önlersiniz?
Bir uygulamayı hizmet kesintisi olmadan dağıtan bir yaklaşım olan sıfır kesinti süresi dağıtımının ilkeleri nelerdir? Bu nasıl başarılıyor?
Tercih ettiğiniz çerçevenin sevmediğiniz veya istediğiniz şekilde çalışmayan yönlerini adlandırın. Bu sorunların nasıl ve nerede ortaya çıktığını ve nasıl iyileştirilebileceğini açıklayın.
4. Uzun Süreli Cron İşlerini Yönetmek
Her dakika çalışan cron işinizin yürütülmesi bir dakikadan fazla sürmeye başlarsa ne olabilir? Bu nasıl önlenebilir?
5. Veritabanlarındaki Verilerin Normalleştirilmesi
Hiç bir veritabanındaki verileri normalleştirme ihtiyacıyla karşılaştınız mı? Eğer öyleyse, hangi sorunu çözmeye çalışıyordunuz, hangi zorluklarla karşılaştınız ve bu nasıl daha iyi yapılabilirdi?
6. Testlerde Dış Aramalarla Alaycı Olmak
Test yazarsanız, test ettiğiniz kod tarafından yapılan harici çağrılar sorununu nasıl aşabilirsiniz? CI'da (sürekli entegrasyon) harici aramaların yasaklandığı senaryoyu düşünün. Bu neden iyi bir uygulamadır?
7. E-posta Değişikliklerini Harici Sistemlerle Senkronize Etme
Sisteminizin e-posta değiştirme işlevini uyguladığını varsayalım. Ancak e-posta aynı zamanda kullanıcılara e-posta gönderen ödeme işlemcisi gibi harici bir sistemde de depolanır (ancak kullanıcılar bununla doğrudan etkileşime girmez). Harici sistemle e-posta senkronizasyonunu nasıl uygularsınız?
Üretimde oluşan hataları nasıl öğrenirsiniz? Kullanıcı raporlarına mı güveniyorsunuz yoksa otomatik mekanizmalar mı uyguluyorsunuz?
Basit bir sohbet uygulamasını nasıl tasarlarsınız? Backend mühendisine backend kısmını, frontend mühendisine ise frontend kısmını sorabilirsiniz. Bu konuşmanın birçok kolu olabilir.
10. Çok Kullanıcılı Ortamda Testlerin Yalıtılması
Birden fazla test aynı anda çalıştırıldığında ve veritabanına erişerek veritabanını potansiyel olarak değiştirdiğinde test izolasyonu nasıl sağlanır? Çerçeveniz yalıtım sağlamıyorsa onu nasıl uygular veya geliştirirsiniz?
Ek İpuçları:
Adayı, düşünce sürecini ve cevaplarının ardındaki mantığı ayrıntılı olarak açıklamaya teşvik edin.
Problem çözme becerilerini, eleştirel düşünme yeteneklerini ve ilgili teknolojilere ilişkin bilgilerini değerlendirin.
Mülakat boyunca iletişim ve işbirliği becerilerini ölçün.