Projects
Things I have built, from the fjord to the shop floor.
Three years of taking machine learning into a production .NET product at Sandvik Coromant, and the PhD before it on robots that decide where to measure next. Each card opens the story behind it.
- 2026 A fault detector the shop floor can trust A causal streaming detector for cutting-insert faults, taken from a Python study to shipped C#. It caught every labelled fault without a single false alarm.
- 2026 From labelled cuts to C# constants An Azure ML pipeline that trains candidate detectors in parallel, picks a champion against the challengers, and exports the winner straight into production code.
- 2025 Thousands of sensor traces, drawn on the GPU A legacy SVG chart re-architected into a WebGL2 and Canvas engine that overlays 1000+ series per plot and opens 14-hour recordings, with comparison tools built on top.
- 2025–26 Comparing a cut with a good one, while it happens A live view that streams machining data against a known-good reference curve, so an operator sees a deviation during the cut instead of in the report afterwards.
- 2025–26 Sharing recordings without sharing the keys Central, audited storage for sensor recordings on Azure: Blob Storage and a document database behind least-privilege roles, managed identity and automated delivery.
- 2024–26 One parser for two languages A C# gRPC service with a Python client wheel that opens production's binary recording format to notebooks and Azure ML, so analysis and product read data the same way.
- 2024 Deep models inside a .NET product LSTM, autoencoder and VAE models trained in PyTorch, exported to ONNX and run on live sensor streams inside the product, with latency monitored against the budget.
- 2020–23 Teaching an underwater robot where to look Bayesian models and a planner that ran onboard an autonomous underwater vehicle in Trondheimsfjord, steering it along a river-plume front instead of surveying evenly.
- 2022–25 Planning a long way ahead, around obstacles An RRT*-based planner that looks beyond the next waypoint: it trades information against distance over a cost valley while respecting obstacles and a time budget.
- 2021–23 Classifying water masses in three dimensions Adaptive sampling in 3-D: a vehicle porpoises through depth layers to classify river and ocean water, choosing each move by how much it reduces classification error.
- 2026 Machine learning, from first principles to production A curriculum of about fifty lessons written for colleagues, from autograd built by hand to GPT, LoRA, RAG and MLOps, alongside a Python course I wrote and taught.