Oleksii Ilienko · PHP / Laravel developer · Kyiv

Customs, cargo
and the software
that moves it.

Three years of commercial PHP. For the last year I was the only developer on two production B2B products in customs clearance and logistics, working directly with the CTO — building them from the data model up to the interface. Below is what those products actually look like.

ProCargo closed source

Role — sole developer
Stack — Laravel 10, Inertia, Vue 3
Period — 2025–2026
Team — myself + CTO

A platform for customs declarations and shipment tracking: registers, parcels, depot cash desks, document generation, and integrations with the Ukrainian customs API, the Cashalot fiscal service and internal ERP and OMS/WMS systems.

Shipment registers table with filters, statuses and document actions
Shipment registers — 2 064 records, filtered by AWB, track code, manifest, client and depot.
Depot cash desk with balance totals and a cash operation form
Depot cash desk — received, issued, current balance.
Cashier receipts list with filters by operation type, status and date
Cashier receipts, filtered by type, status and period.
Permission matrix with granular permission keys per module
Role editor — granular permissions per module (own / managed / all scopes).

ICS — customs gateway closed source

Role — sole developer
Stack — Laravel 12, Filament, Vue 3
Period — 2026
Scope — multi-tenant SaaS

A gateway between brokers and the Ukrainian customs system. Each tenant gets an isolated workspace with its own branding, users and shipment flow.

Dashboard with quick actions, counters and a shipments chart
Dashboard — unread customs decisions, counters, 7-day shipment chart.
Tenant branding settings with colour pickers and logo preview
Tenant branding — colours, logo type, live preview.
Free shipments import table with filters and bulk actions
Free shipments — bulk selection, combining into a project, OMS and customs status columns.

Redesign — drag to compare

Customs request screen after the redesign, grouped into cards
Customs request screen before the redesign, with competing button colours
BeforeAfter

Customs request screen. Same data, regrouped into cards: request history out of the middle of the form, four competing button colours down to one accent, taxes and HS-code warnings in their own block.

Role editor after the redesign, with roles on the left and grouped permissions on the right
Permissions list before the redesign, a flat table of raw keys
BeforeAfter

Permissions. A flat table of raw keys with a per-row Edit button became a role editor: roles on the left, permissions grouped by module with readable labels and their keys underneath, and a count per group.

Both pairs are the light theme — the screenshots above are the same product in dark.

ProCargo public site closed source

Role — sole developer
Stack — WordPress + Laravel
Period — 2025
Scope — marketing + app entry

The public site runs on WordPress so the team can edit content without a developer, while logged-in users move into the Laravel application without noticing the seam — shared session, shared data, one visual language.

Landing page with hero image and quick cargo actions
Landing page.
Shipping tariffs page with a price calculator
Tariffs and calculator.
Simplified shipment creation form
Shipment creation.

Telegram support bot source on GitHub

Role — sole developer
Stack — Laravel 12, Nutgram
Period — 2026
Scope — internal support desk

Support used to live in a shared chat where requests were lost. The bot turns every request into a tracked ticket in an operator group, with a working schedule, broadcasts and a satisfaction score.

Ticket card in the operator group and the closing confirmation
Ticket card in the operator group, and closing.
Three-step broadcast wizard in Telegram
Broadcast wizard — recipients, message, schedule.
Working schedule management and support rating buttons
Schedule editor, and the 1–5 satisfaction score.