Career & Craft7 min read2026-06-15

The Civil-Software Bridge: What Marine Piling Taught Me About Writing Backends

Three years on marine piling and concrete QC at a working port taught me a discipline I now apply to backend architecture: there is no undo once the concrete is poured, and there should not be one in production either.

Concrete does not have an undo button. Three years working marine piling and concrete QC on berths 1–7 of Shuwaikh Port taught me that before I ever taught it to a codebase — every pour is a decision that outlives the meeting where it was made, and the tolerance for being wrong is measured in millimetres, not in a follow-up sprint.

Load paths, not just endpoints

A structural engineer traces load paths: where does the force actually go, through which members, to which foundation. Reviewing an API is the same exercise with different units — which service actually owns this write, what happens to every caller if this table gets a new required column, what fails first under load. I still sketch it the same way I sketched a pile cap: the diagram before the pour.

Tolerances are a design decision, not an afterthought

On site, tolerance is specified up front because reworking cured concrete is not a code review comment, it is demolition. That habit is why I default to schema validation at the boundary and typed contracts between services rather than “we’ll catch it in testing” — the cost of a bad tolerance decision compounds the same way whether it is rebar cover or an unvalidated payload.

Why the pivot, not a rejection

I am not leaving engineering — I am changing which material I build in. Civil engineering gave me the instinct to ask what a system has to survive before I decide how elegant it gets to be. Software just lets me ship the next revision without pouring new concrete.

Let's build something that stands the test of time.

Replies within 24 hours