HepsiJET
Bir lojistik şirketinde, sprintlerle çalışan bir ekipte iki projede geliştirme yaptım. Biri Java 11 ve Spring Boot ile yazılan JetSuite, diğeri Express.js ve React ile yazılan Taşımacı Yönetim Sistemi.
- Rol
- Yazılım Geliştirici
- Şirket
- HepsiJET, Sancaktepe, İstanbul (hibrit)
- Dönem
- 10/2024 – 09/2025
- Kullanılanlar
- Java 8 · Java 11 · Spring Boot · Express.js · React · PostgreSQL · RabbitMQ · GitLab CI
Ekip ve sprintler
Jira'dan iş alan, sprintlerinin neredeyse hepsini kapatan bir ekip.
Agile bir ortamda sprintlerle çalışıyorduk. Bir takım liderimiz vardı ve işleri Jira'dan alıyorduk. Sprint planlamasında ürün yöneticimiz her birimize alabileceği kadar iş veriyordu, en fazla 13 puan. Sprintlerin neredeyse hepsini kapattık. Kendi sprint işlerim bitince backlog'daki işlere geçiyordum. Bu düzende çalışmak çok keyifliydi.
Üç farklı projede görev aldım ve ikisinde aktif olarak geliştirme yaptım. Bunlar JetSuite ve Taşımacı Yönetim Sistemi (TYS). Sprint işlerini yaklaşık %95 test kapsamıyla teslim ediyordum.
JetSuite
Kargo bilgisini müşteriye ileten webhook'lar.
JetSuite'te Java 11 ve Spring Boot ile çalıştım. Entegrasyonlar bu projedeydi. Kargo bilgisini müşteriye ve ilgili firmalara ileten webhook entegrasyonlarını JetSuite'te yazdık.
Akış ana sistem olan TMS'de başlıyordu. Orada oluşturulan kargo RabbitMQ'ya bırakılıyor, oradan da JetSuite'e düşüyordu. JetSuite'e gelen kargonun webhook işlemlerini biz yapıyorduk. Gönderilerin durumunu PostgreSQL'den takip ediyor, makinelerin loglarını Octant'tan izliyorduk.
Taşımacı Yönetim Sistemi
Backend, frontend ve veritabanı tek bir işte.
Taşımacı Yönetim Sistemi (TYS) tamamen JavaScript ile yazılmıştı. Backend'de Express.js, frontend'de React kullanıyorduk. Burada full stack geliştirme yaptım.
Bir iş backend'de, frontend'de ve veritabanında değişiklik gerektiriyorsa benim için fark etmiyordu. Hepsini aynı işte yapıp tek seferde teslim ediyordum.
Ortamlar ve yayın
Bir işin canlıya çıkışı.
Dev, test, pre-production ve production olmak üzere dört ortam vardı. Her birinin veritabanı ayrıydı ve hepsinde PostgreSQL kullanıyorduk. Bir iş canlıya şu adımlarla çıkıyordu:
- 01
İşi Jira'dan alıp geliştiriyor, bitince QA'ya atıyordum.
- 02
Test uzmanı işi kontrol edip Ready to Deploy'a taşıyordu.
- 03
İşler ya birkaçı bir arada paket hâlinde ya da tek başına release ediliyordu.
- 04
GitLab'da CI otomatik çalışıyordu. CI'dan geçen sürümün deployment'ı (CD) GitLab üzerinden elle başlatılıyordu.
- 05
Deployment'lar çarşamba geceleri 00:00'da, yaklaşık 10 kişiyle yapılıyordu. Deployment'ı kendim yapmasam da bu gecelere katılıyordum.