Kadir Çetinkaya | Röportaj

Software Engineer at Google

Kadir Bey merhabalar, sizi tanıyabilir miyiz? Akademik alt yapınız, sektör geçmişiniz, iş dışı aktiviteleriniz ve ilgi alanlarınız nelerdir?

Akademik alt yapı olarak, ODTÜ Bilgisayar Mühendisliği’ni okurken bir yandan da çift anadal programına dahil olup Matematik Bölümü’nü okudum. Ama mesleki bilgi birikimine başlamam biraz daha geçmişe dayanıyor aslında, ortaokul sürecimde başladığım yazılım uğraşlarım, lisede TÜBİTAK’ın düzenlediği Bilgisayar Olimpiyatları sayesinde daha akademik bir hal aldı. Bu süreçte edindiğim bilgiler sayesinde, üniversite hayatımda gerek akademik gerek sektörel anlamda çok daha fazla alanla ilgilenebilir oldum.

Sektördeki profesyonel geçmişim çok da derin değil açıkçası, profesyonel manada yaptığım şeyler olarak sadece stajlarımı sayabilirim sanırım. İlk deneyimim ODTÜ Mühendislik fakültesinde öğretim görevlisi bir çok hocamızın düzenlediği Summer of Robotics programında oldu. Program başlığının “robot” içerdiğine bakmayın, benim yaptığım iş bilgisayar mühendisliğinin temel alanlarından biri olan optimizasyon üzerineydi. Robotun elektronik veya mekanik aksamı ile hiç uğraşmadan sadece belli simülasyonlar yapıp daha sonra bu simülasyonları gerçek hayatta tekrar deneyip robotun mümkün olan en az enerji ile en hızlı şekilde hareket etmesine uğraşıyordum. Günün sonunda çok başarılı sonuçlara ulaşmamış olsam da -hatta simülasyon ortamından dışarıya fazla çıkamasam da- bu stajımda büyük ölçekte projelerde çalışmanın neler gerektirdiğini öğrenmiş oldum.

Özellikle hazırlık/1.sınıf sürecimde siber güvenliğe de büyük ilgi duyar olmuştum, lisedeki olimpiyat takımımızdan 2 kişiyle daha oluşturduğumuz 3 kişilik ekiple Türkiye’deki siber güvenlik yarışmalarının bir çoğunun tozunu attırdık. Bu süreçte bir kaç siber güvenlik firmasının da dikkatini çekmiştik, 2. sınıfın yazında Prodaft adında bir firmada staja başladım bu sayede daha sonra da part-time çalıştım, burada da yazılım geliştirme dışındaki bir dalı deneyimlemiş oldum.

Ardındansa 3. sınıf stajım geldi, bu sefer Googlle Paris ofisinde Compiler Optimization takımına gidiyordum. Gerçekten şimdiye kadar tattıklarımın yanında çok farklı bir deneyimdi. Milyarlarca insan ölçekli boyutlarda nasıl çalışıldığını, binlerce insanın birbirlerini geliştiren bir çalışma düzenine nasıl sahip olduğunu, bu düzeni korumak için nasıl mühendislik prensipleri uygulandığını gözlemledim. Ertesi sene de zaten Google Münich ofisinde çalışmaya başladım.

İş dışı aktıvetelerim ve ilgi alanlarım yukarıda da biraz değindiğim üzere maalesef çok da herkese hitap eden, insanların bir çoğu için eğlenceli olan şeyler değil :D. Siber güvenlik yarışmalarına girdiğimiz süreçte mesela neredeyse her hafta bir yarışmaya giriyorduk ve bu yarışmalar 48-72 saat arası sürüyordu, bunların dışında Hackathon, game jam gibi aktivitelere de elimden geldiğince katılmaya çalışırdım.  Üniversiteye başlarken bir de IEEE topluluğuna katılmıştım burada insanlarla bir şeyler yapmaktan oldukça hoşlanıyordum, üyelik sürecimde ve idari kurulda görev aldığım süreçte bir çok eğitimler verip bir de HackMETU adında bir etkinlik çıkarttım. Yönetim kurulu üyeliğim sırasında da çok sevilen HackMETU etkinliğinin ikincisini organize ettik.

Üniversite yıllarında kariyer planlarınız ne yöndeydi? Bu planlara ulaşmak için ne yaptınız?

Açıkçası üniversite yıllarıma başladığımda aklımda yine Google’a gitmek ve çift anadal yapmak vardı ama bunlara ek olarak akademik hayatıma biraz daha uzun devam etmeyi, doktora yapmasam bile masterimi yapmayı planlıyordum. Ancak okumaktan biraz sıkıldığımı farkettim son sınıf sürecimde özellikle, öyle olunca direk sektöre atılma kararı aldım. Bu noktaya ulaşabilmek içinse aslında sevdiğim şeyleri yapmaya devam ettim diyebiliriz. Bilgisayar mühendisliğine karşı küçük yaşlardan gelen büyük bir ilgim vardı ve uğraşmayı seviyordum. Durum böyle olunca ödevlerime özen gösterdim, ekstra bir sürü yarışmlara katıldım, elimden geldiğince farklı projeler yapmaya çalıştım. Bunlar sayesinde hem bilgi birikimimi hem de CV’mi geliştirmiş oldum. Bu alanda tavsiye arayan arkadaşlar varsa da fikrim kesinlikle yaptığınız işleri göstermeyi bilin. Bir proje yaptığınızda veya bir projede çalıştığınızda, bunu eğer mümkünse github vb. sitelere kesinlikle güzel açıklamalarla birlikte koyun. CV’nizde de sizin ise kattıklarınız ve işin size kattıklarına mutlaka değinmeyi unutmayın. Tabii ki bu benim naçizane görüşümdür bu konuda çok da tecrübeli sayılmam, son kararın riski her zaman sizde :D.

ODTÜ’lü olmak, ODTÜ topluluklarında aktif görev almak size neler kazandırdı?

IEEE Öğrenci Topluluğu’nda geçirdiğim neredeyse 4 yıllık sürecin bana en büyük katkısı takım çalışmasını deneyimlemek, insanlarla fikir alışverişi nasıl yapılır doğrusu yanlışı nasıl belirleniliri öğretmesi oldu. Bence toplulukların en büyük faydası da bu zaten, evet bölümlerde de çoğu zaman grup projeleri ile uğraşıyorsunuz ama bunların hem sayısı az, hem süresi kısa hem de gruplar küçük. İş hayatındaki gerçek bir takımı pek yansıtmıyorlar. Teknik beceriler açısından faydası tartışılır olsa da sosyal becerilerimi başka bir alternatifle kolay kolay karşılayamayacağım miktarda geliştirdiğini düşünüyorum. Bu yüzden bence topluluklar, herkesin üniversite yaşamının önemli bir parçası olmalı.

Bu kadar büyük bir şirkette çalışmanın size sağladığı olanaklar ve yüklediği sorumluluklar nelerdir?

Sağladığı olanaklar gerçekten saymakla bitmeyecek, çoğu zaman da hayatınızdan çıkana kadar farkedilemeyecek düzeyde diyebilirim. Bir kere herkes birbirinden sürekli bir şeyler öğrenebiliyor, herkesin gerçekten kendini çok derinlemesine geliştirdiği bir sürü alan var ve siz kişi sayısını ne kadar arttırırsanız bir şeyler öğrenme olasılığınız da o kadar artıyor, farkında olmadan muhabbet ederken, bir problemi tartışırken, bir çözümü analiz ederken farkında olmadan bu gelişmeyi yaşıyorsunuz. Bunlara ek olarak resmen geleceğe yön verme yetiniz var, milyarlarca insanın kullanbileceği bir ürünü direk piyasaya sürebilecek büyüklükte çalışıyorsunuz. Normal bir şirketin kaynakları ile haftalar sürecek hesaplamaları, sadece bir kaç saatte belki de dakikada yapıp, sonuçlarını görüp çözümünüzü ona göre yönlendirebiliyorsunuz. Yaptığınız en ufak değişiklikler bile çok fazla insanı etkiliyor. Bunlar bence gerçekten harika olanaklar, ama tabii sorumluluğu ile birlikte geliyorlar. Bir şeyler yaparken her zaman en iyisini mi yaptım diye düşünüyorsunuz, işle ilgili insanlar aynı şekilde inceleyip bir şeyleri onaylamadan önce nasıl daha iyisi yapılabilri diye düşünüyor. Bunlar da biraz daha yoğun çalışmayı gerektiriyor bence. Normalde bir kaç saatte yapıp bitirebileceğiniz bir işi, bir kaç güne yayıyorsunuz, çünkü bu kadar büyük bir ölçekte, hiç kimseye sorun yaşatmadan çalışacak çözümler üretmeniz gerekiyor.

Google gibi öğrenciler ve mezunlar tarafından oldukça ilgi duyulan bir firmada çalışıyorsunuz. Bu konuma gelmek için neler yaptınız?

Kariyer planlarımda da bahsettiğim üzere, üniversitedeki eğitimin dışında bir çok şeyle uğraşmaya çalıştım. Sürekli yarışmalara katılarak, kendi başıma projeler yaparak kendimi geliştirmenin peşindeydim. Günümüzde büyük ölçekli bir çok yazılım firması da bunlara önem veriyor aslında, ancak temel problem çözme becerilerinizden daha önemli değil bunlar. Onun için her bilgisayar mühendisinin öncelikle temel algoritmalar ve veri yapılarını çok iyi bilmesi gerekiyor. Ben bu yöndeki açığımı “Competetive Programming” adı verilen yarışmalara katılarak kapatmaya çalışıyordum, bu yarışmalar temel problem çözme yetilerinden biraz daha fazlasını gerektiriyor bana kalırsa, ama fazla uğraş göz çıkartmaz, bu yarışmalarda çok iyi olmanız şart değil ancak problemlere zaman kıstası olmadığında çözümler bulabilmek veya kompleks çözümleri gördüğünüzde anlayabilmek sürecin önemli bir parçası. Bu konuda iyi olduktan sonra projeleriniz size sadece spesifik alanlarda uğraşan takımların dikkatini daha kolay çekmenizi sağlıyor.

Mezun olduktan hemen sonra Google’da ise başlamanızı sağlayan özellikleriniz neler? Burada yazılım mühendisi olarak neler yapıyorsunuz, çalışmalarınız nasıl ilerliyor?

Açıkçası bu firmalara başvurmuş olmam dışında çok da farklı kılan bir özelliğim olduğunu düşünmüyorum. Arkadaşlarımın çoğunu başvurması için zorladığımda aldığım tepki, “ya bizi almazlar” civarlarında oluyordu. Evet mülakat süreci özellikle Türkiye’de bir çok firmanın izlediği mülakat süreçlerinden farklı. Ancak biraz çalıştıktan sonra bilgisayar mühendisliği eğitimini gerçekten hakkını vererek tamamlamış bir insan için imkansız bir süreç değil. Şimdiki takımımda Google içindeki mühendisler için araçlar geliştiriyoruz, yazılımların genel olarak kalitesini artıracak, mühendislerin daha efektif bir şekilde çalışmasını sağlayacak aracalar geliştiriyoruz.

Google’ın ise alım süreci nasıl işliyor? Çok konuşulan o süreçten, mülakattan vs. bahsedebilir misiniz?

Süreç bir kaç farklı şekilde ilerliyor aslında, ben mesela stajerlikten tam zamanlı mühendisliğe geçiş yaptım. Bildiğim bir kaç farklı olanağı anlatayım, öncelikle stajyer de olsa tam zamanlı çalışan da olsa süreç ortak bir şekilde, Google’ın kariyer sayfasından yapacağınız iş ilanı ile başlıyor. Eğer referansınız varsa bu aşamada kapsını çalmanız gerekiyor. Çünkü bu başvuruyu referanssız bir şekilde yaptığınızda arada kaynayabiliyorsunuz, referansın da tek faydası CV’nize birilerinin kesinlikle göz atmasını sağlamak oluyor başka hiç bir artısı yok. Ama bu bile çok önemli bir ayrıntı, çünkü dediğim üzere yüzbinlerce başvurunun hepsine bakabilecek bir insan gücü maalesef yok. Ardından en az iki adet telefon mülakatına giriyorsunuz, adının telefon olduğuna bakmayın, baya hangoutstan biri sizi arıyor bi tane google doç linki veriyor daha sonra hangoutstan konuşurken docs üzerinden sorduğu sorulara çözümler bulup bu çözümleri koda çevirmeye çalışıyorsunuz. Bu mülakatların her biri 45 dk sürüyor, mülakatınızı yapan insana göre soru sayısı değişiyor. Genelde 2 soru soruyorlar ancak, küçük küçük 4-5 soru soranlar da oluyormuş. Bu mülakatlar sizin tamamen genel problem çözme becerilerinizi ölçüyor, sorunu bir bilgisayar mühendisi perspektifi ile analiz edip daha son çözümler oluşturabiliyor musunuz diye bakıyor. Eğer durumunuz hakkında muallakta kalınırsa 3. bir mülakata daha çağırabiliyorlar sizi, yine aynı düzen hangouts ve google docs. Eğer staj başvurusu yaptıysanız mülakatlar burada bitiyor. Ancak full time başvurusuysa bir de sizi yüz yüze kontrol etmek için ofislerden birine davet ediyorlar ve 1 gün sabahtan akşama 5 mülakata giriyorsunuz. Bu mülakatlardan 4 tanesi teknik bir tanesi ise sosyal bir mülakat diyebiliriz. 4 teknik mülakat telefon mülakatlarına oldukça benziyor, sadece sorular biraz daha zorlu oluyor ve bu sefer klavye yerine tahtada bir şeyler yazmanız gerekiyor. Ek olarak sistem tasarlama soruları da olabiliyor bu sefer. Sosyal mülakatta ise kültüre ayak uydurma becerilerinize bakılıyor diyebilirim. Bu mülakat sürecini de başarıyla tamamladıktan sonra artık aday havuzuna giriyorsunuz. Bundan sonra sizde aradığı özelliği gören takım liderleri size ulaşıp takımlarını anlatıp sizi biraz daha yakından tanıyıp karar vermeye çalışıyor. Takımınızı da bu şekilde seçiyorsunuz, staj için de full time için de durum böyle. Staj yapmanın büyük bir artışı ise, staj sonunda size tam zamanlı çalışmaya başlamak isteyip istemeyeceğiniz soruluyor eğer isterseniz, 5 mülakatlı süreç yerine biraz daha hafif 2 mülakatlı bir sürece giriyorsunuz. Zaten staj süresince yaptığınız işler profilinizde olduğu için ekstradan 3 mülakata daha girmenize gerek kalmamış oluyor.

Genel olarak ise alım süreci bu şekilde, en azından bu şekildeydi :D. Yakın bir geçmişte bir arkadaşım başvurdu ve kendisine telefon mülakatlarından önce hafif bir atıştırmalık mülakat yapıldığını öğrendim, bir kişi teknik bilgilerinizi çok basit bir şekilde tamamen sözel olarak yokluyormuş. Yani yukarıda bahsettiğim şeylerle birebir karşılaşmayabilirsiniz.

Şirketinizde ne gibi iş olanakları var? Yeni mezunlar kendilerine şirketinizde hangi departmanlarda yer bulabilir? Bu alanlarda çalışmak için hangi yetkinliklere sahip olmalılar?

Google’da her alandan insana yer var diye tahmin ediyorum. Sadece yazılım geliştirilmiyor sonuçta firmada, bunun satışı/pazarlaması ile uğraşan, müşteri memnuniyetini takip eden, gelen istekleri mühendislerle birlikte gerçekçi bir hale getiren insanlar var. Ayrıca yazılıma ek olarak donanım alanında bir çok yeni gelişme var çok yakından takip etmesem de, burada da farklı mühendislik disiplinlerinden bir çok insana imkan sağlanmış oluyor. Hepsi için istenilen yetkinlikler genellikle iş ilanında berlitiliyor, ancak genel bir yorum yapmak gerekirse araştırma pozisyonları dışında ilgili bir bölümün lisans öğretimindeki bilgi birikimine sahip olmak denilebilir. Araştırma pozisyonları ise genellikle PhD sahibi olmanızı istiyor.

Kariyerine yazılım sektöründe devam eden / edecek arkadaşlara ne gibi öneriler verebilirsiniz?

Türkiye’de maalesef algoritmalar ve veri yapılarına lisans eğitimleri süresince gerekli önemin verilmediğini düşünüyorum, piyasadaki bir çok şirketin talepleriyle de alakalı bir durum aslında bu. Bir çok yazılım şirketi çok büyük ölçekte projelerle uğraşmadığı için, bir şeylerin çalışır seviyede olması ile yetiniyorlar. Ancak büyük firmalarda durum böyle değil, o yüzden mülakatlarında zorlanıyorlar. Bu yüzden bu konuda kendilerini geliştirmek için ekstra çabalar göstersinler.

Bilgisayar mühendisliğini spesifik olarak gidip A dilini B dilini öğrenmek, bir X aracını veya frameworkunu(Türkçe karşılığını bulamadım bunun maalesef.) kullanarak bir şeyler üretmek olarak görmesinler. Bilgisayar mühendisliğinin genel bir problem çözme disiplini olduğunu farketsinler. Nasıl bir makine mühendisi bir problemi çözmek için öncelikle tasarımı yapıp daha sonra bunu gerçek hayata çevirirken kullanması gereken metallere ve üretim tekniklerine kara veriyorsa aynı durumun bilgisayar mühendisliğinde de olduğunu farketmeliler. Öncelikle kullanacağınız dil ve araçlardan bağımsız, probleminizi çözen sağlam bir tasarım yapma becerisine sahip olmalısınız. Daha sonrası zaten tecrübeyle elde edinebileceğiniz ve temelinizi ayarladıktan sonra zaman bile harcamayacağınız işler olmaya başlayacaktır.

Bunların hepsinin ardından genel yetilere sahip olmak işin çok önemli bir kısmını oluştursa da, lisans öğreniminiz bittiğinde kendinize en azından severek çalışacağınız alanları belirlemek önemli. Bunun en kolay yolu da bence mümkün olduğunca farklı projeler yapmak, okullardaki ödevler bile gerçekten titiz bi şekilde üzerine uğraşılarak yapıldığında bu amaca uygun olacaktır bence.