Skip to main content
← All work

Manufacturing ERP

The production system a metals manufacturer runs its floor on. Sole engineer.

Status

In production and in daily use. Ongoing: architecture, backend, frontend, deploys, backups, and the call when something breaks at shift change.

Role
Sole engineer
Commits
2,381
Lines
251,377
Files
4,069

What it covers

Order intake through scheduling, weigh-in, pouring, finishing, shipping, and the paperwork every one of those steps is required to leave behind. It runs on kiosks on the floor as well as at desks in the office, which is two different products sharing one database.

Operators and administrators want opposite things from the same data. An administrator wants every field and a filter for each. Someone in gloves halfway through a shift wants the four things relevant to the job in front of them, in text they can read from a step back. Floor mode is therefore built separately rather than as a responsive version of the back office.

Auditability as a requirement, not a feature

The industry the client works in requires that every state change be attributable after the fact. That is a constraint on the data model rather than a screen to add later: history is recorded as events, so the question "who changed this, when, and what did it look like before" always has an answer, including for changes nobody thought to log at the time.

Operating it

Deploys go to on-premise hardware automatically, with health verification, so a bad release is caught before the floor sees it. That path has its own failure modes, which are now documented and handled — a watchdog killing a deploy midway leaves a box running new code against an old schema, and recovering from that is a procedure rather than an improvisation.

Backups run nightly, encrypted, off the box. They were rehearsed rather than assumed, which is the only reason it was discovered that the previous pipeline had been silently dead for weeks. A restore that has never been performed is a hypothesis.

Why there are no screenshots here

The system is the client's, and so is everything visible in it — part numbers, customers, schedules, people's names. None of that belongs on a portfolio page, so this entry describes engineering decisions and nothing else.