Peter Wang
Work

Preventive maintenance platform

Known internally as PM Log.

Sole frontend developer. Schema and API design lead.

Scheduling and execution tracking for machine maintenance, used across 30%+ of manufacturing.

30%+
of manufacturing using it
10k+
records cached client-side
4
level hierarchy

machine, checklist, section, task

A React platform for planning and recording preventive maintenance. It replaced an existing PM tool rather than paper: the old one worked, it just was not comprehensive enough or used widely enough, and machines were still going down for want of maintenance that should have been scheduled. The brief was a new platform good enough to actually be used.

It has two distinct faces. Administrators author and maintain the maintenance definitions; operators work through what is actually due.

The data model is a four-level hierarchy (machine, checklist, section, task), and the administrative side allows editing at any level of it. You can open a checklist, edit down through its sections to individual tasks, and revert the entire tree of changes in one action. Making that feel immediate meant caching 10k+ ID-linked records in Jotai and treating the client cache as the working copy, with the server reconciled on commit rather than on every keystroke.

The operator view answers a different question: what needs doing first, what is coming up, and which line and machine it belongs to. Same data, ordered by urgency instead of by structure. The lists themselves are generated: the frequency defined on the administrative side is what decides when a checklist comes due and appears in front of somebody.

Completed work is kept rather than cleared. Every execution stays as a record, and notes written against a checklist, section, or individual task are tied to the work order they were written under, so they come back the next time anyone opens that same item. Reading why a task took three attempts last quarter is the traceability the previous tool did not have.

The client is styled with plain CSS and Material UI rather than a utility framework, and it calls REST endpoints directly, both the ones designed for this platform and other internal APIs it needs along the way.

React, TypeScript, Jotai, Material UI, REST APIs