~560 commits · 30 merged PRs
Software engineering
Two and a half years on a production .NET and TypeScript product: code review, tests, CI/CD and refactoring that keeps a large codebase moving.
- C# / .NET 8–10 · Blazor · DI Production · 2.5 years The main product and its backend
- TypeScript · Python Production Front-end engine, studies, tools, SDKs
- C++ Research and benchmarks PhD simulation code, SIMD and OpenMP experiments
- Testing · xUnit, bUnit, pytest, Vitest, Playwright Applied Detector, buffers, UI modules, benchmarks
- Git · code review · Azure DevOps Production Long-running branches, worktrees, reviews
About 560 commits and 30 merged pull requests to the main product over two and a half years, with code review on every one. The habits I'd point to: measure before choosing an architecture, break up classes that do too much, test the parts that are easy to get subtly wrong (buffers, time alignment, thresholds), and ship new features behind a beta flag so real users can try them before everyone gets them.
Where it shows up
- 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.
- 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.
- 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.