We built the tool we could not buy, in the room where the plan goes wrong.
Quayside B.V. is 46 people in Rotterdam, Felixstowe and Mombasa. We make one thing: the software a container terminal plans its quay with.
Origin
A Tuesday in February 2018, ECT Delta, Rotterdam.
Mees van der Berg had planned berths for eleven years. The plan for that week was a spreadsheet with four tabs, one per berth, and a formula that had been written by a colleague who left in 2014. At 03:40 a 366-metre call arrived four hours early because the North Sea was flat, and the vessel that should have left at 04:00 had a crane fault.
Two calls, one berth, and no way to see it except by reading two tabs side by side. The overlap was found by the foreman at 06:15, on the quay, in the rain. Fixing it took nine phone calls, cost the terminal most of a shift and, in the end, was resolved by a pilot who happened to know the tide would let the second vessel wait in the Maasgeul until eleven.
Mees drew the board he wanted on a whiteboard in the operations room: berths down the side, seventy-two hours across the top, the tide underneath. Priya Raman, then building line-side scheduling at Maersk, said the hard part was not the drawing but the rules — that a plan is only useful if it refuses to be wrong. They spent 2019 writing the rule engine before they wrote a single pixel of the board, which is still the right order.
The first terminal to run it was Antwerp Deurganck, in August 2021, on two berths, in parallel with the spreadsheet, for a whole quarter. The spreadsheet won three arguments in that quarter. All three were bugs and all three are in the changelog.
Who runs it
We do not publish photographs of the team; several of them work on customers’ quays.
Eleven years a berth planner at ECT Rotterdam, four of them on the Delta night shift. Writes the rule specifications himself and still takes a customer call every Thursday morning.
Built line-side vessel scheduling at Maersk, before that distributed systems at Ericsson. Owns the rule engine, the exchange and the on-call rota she is still on.
Came from Portbase, where she ran port-call notification for the Rotterdam community. Decides what we do not build, which is most of what is asked for.
Ran terminal operations at Mombasa CT2 through its 2023 expansion. Onboards every new terminal and holds the veto on whether one is ready to go live.
Twelve years on EDI at a freight forwarder, which is the sort of experience nobody sets out to get. Keeps 1.9 million messages a day in order.
Eighteen engineers, seven in customer operations, five in the maritime domain team — all ex-planners — four in data, three in design, two in finance, two in security.
The company in numbers
August 2026.
| Function | People | Where |
|---|---|---|
| Engineering | 18 | Rotterdam (12), remote EU (6) |
| Customer operations | 7 | Rotterdam, Felixstowe, Mombasa |
| Maritime domain | 5 | All former berth planners or pilots |
| Data and integrations | 4 | Rotterdam |
| Product and design | 4 | Rotterdam |
| Security and infrastructure | 2 | Rotterdam |
| Finance and legal | 2 | Rotterdam |
| Founders | 2 | Rotterdam |
| Nights someone is on call | 365 | Two engineers, one operations lead |
| Terminals visited in 2026 | 24 | We plan on your quay before we plan on ours |
Open roles
Write to werk@quayside.nl. No agencies; we will not reply.
- Senior backend engineer, rule engine
Go, Postgres, a lot of interval arithmeticRotterdamPermanentApply - Integration engineer, EDIFACT
IFTSAI, BAPLIE, COARRI; patience requiredRotterdam / remote EUPermanentApply - Customer operations lead, APAC
Onboarding and 24/7 escalation, Singapore hoursSingaporePermanentApply - Berth planner in residence
Six months, then decide. We have hired four this wayRotterdamSecondmentApply - Interface engineer
Dense data, keyboard-first, no framework religionRotterdamPermanentApply
We pay on a published scale, in the currency you live in. Everyone does one week of customer operations a quarter, founders included, because the pager is the fastest way to learn what the product is actually for.