İçeriğe atla
Deneyim / HepsiJET

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
01

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.

02

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.

Bir kargonun TMS'den müşteriye kadar yolu
AdımNeredeNe oluyor
OluşturmaTMSKargo ana sistemde oluşturulur
KuyrukRabbitMQKargo kuyruğa bırakılır
İşlemeJetSuite · Java 11, Spring BootKargo JetSuite'e düşer, durumu PostgreSQL'de izlenir
BildirimWebhookKargo bilgisi müşteriye ya da ilgili firmaya iletilir
03

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.

04

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:

  1. 01

    İşi Jira'dan alıp geliştiriyor, bitince QA'ya atıyordum.

  2. 02

    Test uzmanı işi kontrol edip Ready to Deploy'a taşıyordu.

  3. 03

    İşler ya birkaçı bir arada paket hâlinde ya da tek başına release ediliyordu.

  4. 04

    GitLab'da CI otomatik çalışıyordu. CI'dan geçen sürümün deployment'ı (CD) GitLab üzerinden elle başlatılıyordu.

  5. 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.