Skip to content

Work

Case studies with something to touch.

Four products I've worked on at Detechtion.AI. Each case study says which parts were mine, what went wrong, how the cause was found and what changed. Each also includes an original interactive demo on synthetic data, made for this site with an AI coding agent under my direction.

Also worked on

  • Enbase Dashboard

    2018, 2023–2026

    A long-running web dashboard and REST API for remotely monitoring field equipment: live readings, trends, alarms and downtime. Colleagues wrote most of it. My work sits in the chart screens, the API and their shared data layer.

    • Let people overlay 20 readings on one trend chart instead of 4, with extra axes, fixed-size exports and one-page printouts.
    • Moved the dashboard's charting library forward seven major versions, fixed the fallout on five chart surfaces and added five-band alarm colouring to plotted lines.
    • Moved the existing downtime save rules into one shared service, so the public API and another product's downtime editor enforce exactly the same rules.
    • Fixed mobile-web trend charts that plotted points in the wrong place by replacing a hand-rolled date conversion with standard timestamp parsing.
    • Early on, added batching to a data-sync job, and caught and fixed a flaw in my own first version that stopped early at gaps.
    C# / .NETASP.NET MVC & CoreEntity FrameworkSQL ServerJavaScriptHighchartsNUnitProduct page ↗ (opens in a new tab)
  • Field-sensor setup app

    2022–2023

    A cross-platform mobile app that field technicians use to put an industrial sensor into service on site. I built the guided flows. Colleagues built the device communication, offline sync and most of the other screens.

    • A six-step guided setup wizard, from a prerequisites checklist to a final-checks summary, wired into the home screen's ready-for-setup list and covered by 15 test cases (a colleague later refactored the test setup; colleagues wrote the completion and sync logic).
    • A nearest-first asset picker: searchable, hides assets that already have a sensor and sorts the rest by distance from the phone's location (a colleague later tightened the filter's empty-value check).
    • A three-step two-point calibration wizard (zero, span, then review with complete or redo), covered by 7 test cases.
    • Truthful “last calibrated” dates saved when a calibration actually completes, replacing an earlier stopgap of my own, plus consistent number formatting across screens.
    • Error states designed before hardware was ready, by turning on random failures in the mock device API for the calibration paths.
    React NativeTypeScriptReact Navigationreact-hook-formJest + RNTL
Esc

↑↓ to move ↵ to select