Skip to content
Experience / HepsiJET

HepsiJET

I was on a sprint team at HepsiJET, a logistics company, and wrote code for two of its projects. One was JetSuite, built with Java 11 and Spring Boot. The other was the Courier Management System, built with Express.js and React.

Role
Software Developer
Company
HepsiJET, Sancaktepe, Istanbul (hybrid)
Period
10/2024 – 09/2025
Used
Java 8 · Java 11 · Spring Boot · Express.js · React · PostgreSQL · RabbitMQ · GitLab CI
01

Team and sprints

We took our work from Jira and closed almost every sprint.

We worked in sprints in an Agile setup. We had a team lead and took our tasks from Jira. In sprint planning our product manager gave each of us as much work as we could take on, up to 13 story points. We closed almost every sprint. When my own sprint tasks were done, I moved on to items in the backlog. I really enjoyed working that way.

I was on three projects and actively worked on two of them, JetSuite and the Courier Management System. I delivered my sprint work with about 95% test coverage.

02

JetSuite

Webhooks that send shipment information to customers.

On JetSuite I worked with Java 11 and Spring Boot. This was the project where we built the webhook integrations that sent shipment information to customers and to the companies involved.

The flow started in the main system, TMS. A shipment created there was put on RabbitMQ and then landed in JetSuite, where we handled its webhooks. We tracked shipment status in PostgreSQL and read the logs in Octant.

A shipment's path from TMS to the customer
StepWhereWhat happens
CreateTMSThe shipment is created in the main system
QueueRabbitMQThe shipment is dropped onto the queue
ProcessJetSuite · Java 11, Spring BootIt lands in JetSuite and its status is tracked in PostgreSQL
NotifyWebhookShipment details go to the customer or the company involved
03

Courier Management System

Backend, frontend and database in one ticket.

The Courier Management System was written entirely in JavaScript, with Express.js on the backend and React on the frontend. Its Turkish name is Taşımacı Yönetim Sistemi (TYS). I worked full stack here.

If a ticket needed backend, frontend and database changes, I did all of it in that one ticket and shipped it in one go.

04

Environments and releases

How a task reached production.

There were four environments (dev, test, pre-production and production), and each one had its own PostgreSQL database. This is how a task got to production:

  1. 01

    I took the task from Jira, built it and moved it to QA when it was done.

  2. 02

    A tester checked it and moved it to Ready to Deploy.

  3. 03

    Tasks were released either together as a package or one at a time.

  4. 04

    CI ran automatically on GitLab. Once a build passed CI, the deployment (CD) was started by hand from GitLab.

  5. 05

    Deployments happened on Wednesday nights at midnight with about ten people. I didn't run them myself, but I was there for them.