← All work
Professional · SpringkrafCase study · 3 min read

Voyage ticketing & operations

Ticketing backend for a passenger shipping operator: ~3,000 tickets a day, seat inventory, schedules and payments through 6+ Indonesian banks.

Role
Backend Engineer
Team
100+ people
Timeline
2022 — 2024
~3,000
tickets per day
6+
Indonesian bank integrations
10+
routes

Context

A passenger shipping operator selling tickets across 10+ routes, at counters and online.

Problem

Counters and the online channel sell the same seats, so one seat must never be sold twice, and national holidays multiply the load.

Approach

  1. Model the domain

    Voyages, vessels, seats, fares and passengers as one consistent model.

  2. Booking API

    Seat inventory with locking to prevent double-booking under load.

  3. Payments

    Payment integrations across 6+ Indonesian banks.

  4. Operations tools

    Manifests, check-in and daily reports for port staff.

  5. Ready for national holidays

    National holidays are the peak travel periods, so the system has to hold up exactly when demand is highest.

Outcome

The system handles around 3,000 tickets a day, with payments through 6+ Indonesian banks.

What I learned

  • Model the business before the database.

Hiring for work like this?

Open to mid–senior SWE roles: relocation anywhere, or remote in any time zone. 1-month notice.