Developer TurkeyBlog

Junior Yazılımcı Portfolyosu: Hangi Projeler Girmeli?

Kendi portfolyomu (bu siteyi) kurarken ve daha önce üzerinde çalıştığım gerçek projeleri seçerken verdiğim kararları burada topluyorum. Yazılım mühendisliği son sınıf öğrencisiyim, bir e-ticaret işletmesinin backend'ini geliştiriyorum ve bir ajansta üç dilli, 200'den fazla sayfalık bir kurumsal site üzerinde çalıştım. Bu deneyimlerden bir portfolyo çıkarırken neye dikkat ettiğimi anlatıyorum.

Hangi projeler girmeli

İşe alım tarafında çalışan biri portfolyona genelde birkaç dakika ayırıyor. Bu yüzden portfolyoda her yaptığım şey değil, en çok şey anlatan birkaç proje var:

  • Gerçek bir müşterisi ya da kullanıcısı olan bir proje. Kod kalitesi kadar "bu adam gerçek bir sorunu çözmüş" izlenimi de önemli. Benim listemde bir e-ticaret platformu ve bir okul sitesi var; ikisi de okul ödevi değil, gerçek iş.
  • Mimari kararı olan bir proje. "Neden bu veritabanını seçtin", "neden bu kimlik doğrulama yöntemini kurdun" gibi bir soruya cevabım varsa o proje portfolyoya girer. Cevabım yoksa, yani rastgele bir tutorial'ı takip ettiysem, o proje CV'yi kalabalıklaştırmaktan başka işe yaramaz.
  • Bitmiş bir proje. Yarım kalmış, çalışmayan bir demo linkinden daha kötü bir izlenim yok. Bir proje canlıda çalışmıyorsa, ekran görüntüsü ve mimari açıklamasıyla göstermeyi tercih ediyorum; çalışmayan bir "canlıya bak" linki koymuyorum.

Müşteri projelerinde nelere dikkat ediyorum

Bir müşteri için yaptığın işi göstermek istersen, gizlilik sözleşmesi olmasa bile birkaç kural koyuyorum:

  • Kurum adını sadece izin varsa yazıyorum. İzin yoksa "çok şubeli bir eğitim kurumu için" gibi genel bir tanım kullanıyorum, ekran görüntüsünü göstermek (logo dahil) genelde sorun olmuyor ama metinde adı geçirmiyorum.
  • Gerçek veriyi asla göstermiyorum. Ekran görüntüsü alırken test hesabı ve örnek veriyle çalışıyorum, gerçek müşteri bilgisi ya da sipariş verisi ekrana hiç gelmiyor.
  • Mimariyi anlatıyorum, kodun tamamını değil. "Next.js frontend, Express/Prisma/PostgreSQL backend, JWT ile kimlik doğrulama" gibi bir özet, kodun satır satır kopyasından daha değerli. İşe alan kişi zaten senin GitHub'ına bakabiliyor.

GitHub profili

Portfolyo linkinden sonra en çok tıklanan yer GitHub. Benim dikkat ettiklerim:

  • README her repoda var ve ne işe yaradığını ilk cümlede söylüyor. "Bu proje X yapar" cümlesi olmayan bir repo, ne olduğunu anlamak için kodu okumayı gerektiriyor; kimse bunu yapmıyor.
  • Commit geçmişi gerçek bir gelişim süreci gösteriyor. Tek seferde eklenen 3000 satırlık bir "initial commit" yerine, özelliklerin sırayla eklendiği bir geçmiş daha güvenilir duruyor.
  • Sabit (pinned) repolar seçilmiş, rastgele değil. GitHub profilinde en üstte gösterdiğim repolar, en çok yıldız alanlar değil, en çok şey anlatanlar.

Teknik detay ne kadar olmalı

Her proje için üç seviyede bilgi veriyorum: bir cümlelik özet (ne yapıyor), kullanılan teknolojiler (kısa liste) ve varsa mimari kararlar (neden bu şekilde). Kod parçacığı koymuyorum; portfolyo bir kod inceleme aracı değil, ilgi uyandırıp GitHub'a veya canlı siteye yönlendiren bir vitrin. Detay isteyen zaten linke tıklayıp koda bakıyor.

CV ile portfolyo arasındaki iş bölümü

CV'de her projeye tek satır ayırıyorum, detayı portfolyoya bırakıyorum. CV'nin işi bir mülakata çağrılmak, portfolyonun işi ise o mülakatta konuşacak somut bir şey vermek. İkisine de aynı uzunlukta metin yazmak, ikisini de sıkıcı hale getiriyor.

Sonuç

Portfolyoma koyduğum her proje şu sorulardan en az birine cevap veriyor: gerçek bir sorunu mu çözdüm, bir mimari kararı savunabiliyor muyum, bitmiş ve çalışan bir şey mi gösteriyorum. Bu üç soruya "hayır" cevabı veren bir proje, ne kadar iyi kodlanmış olursa olsun portfolyoda yer almıyor.

Bu konuda takıldın mı, ya da ekibine geliştirici mi arıyorsun?

Yazıyla ilgili sorunu ya da iş teklifini bana yaz.

İletişime geç
Tüm yazılar