Kelvin Mei · Senior Software Developer
I build the screens people trust to keep heavy machinery running.
Across two stints since 2018, I've worked on web and mobile software for industrial IoT: a fleet-monitoring web app whose front end I now lead, a compression analytics platform, a field-operations mobile app and the sign-in portal in front of the web apps.
- first year in industrial IoT, across two stints
- 2018
- products: web, mobile & sign-in
- 4
- React, React Native and .NET APIs
- Full stack
- the target for this site and its demos
- WCAG 2.2 AA
Selected work
Four products, one throughline: making dense data feel calm.
Case studies from my work at Detechtion.AI. Each includes an interactive demo on synthetic data, so you can poke at the engineering instead of just reading about it. The demos were made for this site with an AI coding agent under my direction.
How I work
Evidence over opinions.
Four habits that run through the case studies, each with a number that backs it.
- 01
Prove it before it ships
If I say a refactor changes nothing, there's a diff that shows it. I ask for computed-style snapshots, before-and-after compiler output and tests that fail when the fix is removed. I build the harness myself or direct an AI agent to build it.
Read the Enalysis case study0
visual differences across 6,115 elements after deleting 1,600 lines of global CSS
- 02
Chase the root cause, not the symptom
A box in a chart tooltip turned out to be a Unicode character the font had no glyph for, drawn by a renderer with no font fallback. Failed requests turned out to be a browser connection limit. I keep going until the explanation covers every case, including the ones that looked fine.
Read the Enbase Mobile case studyU+202F
the invisible character behind a missing-glyph box
- 03
Design systems are code
Colours carry meaning: red means danger, and it shouldn't also mean “continue”. I migrate products onto semantic tokens, check contrast with tools rather than by eye and write down the decisions so the next person can re-sync.
Read the Enalysis case study1,886 → ~50
hard-coded colours collapsed into palette tokens, with zero contrast failures
- 04
Performance is a feature
Operators judge software by whether it keeps up. I profile first, then fix the algorithm: bucket instead of compare-all, cap concurrency at what the browser can actually do, render only what's on screen.
Read the OneView Compression case studyO(n²) → ~O(n)
fleet-map clustering, roughly linear for typical fleets
Experience
From co-op student to front-end lead.
Most of it at Detechtion.AI, on software that monitors and optimizes natural-gas compression equipment, plus almost a year building web apps and video streaming at Noralta Technologies Inc.. Full résumé.
Education
Bachelor of Science in Computer Science
University of Calgary · Apr 2020
Concentration in Software Engineering · Internship (co-op) program
Mar 2026–Present
Senior Software Developer · Detechtion.AI
- Lead front-end development for the fleet-monitoring web app. I own its React front-end architecture and technical direction, and work with product, UX and back-end engineers from feature design through production.
- Set front-end standards: reusable component patterns, design-system adoption, code review, mentoring, automated testing, performance work and AI-assisted development.
Feb 2022–Mar 2026
Software Developer · Detechtion.AI
- Founding front-end developer on the fleet-monitoring web app, taking it from an AI-assisted prototype to the production codebase and writing its team conventions.
- Compression analytics platform: co-developed the kanban-style action-item tracker (front end and API), built most of the embedded analytics UI, upgraded the front end across three frameworks in stages and moved the API to .NET 8.
- Field-operations mobile app (React Native): alarm acknowledgement, keyboard behaviour across sign-in forms, iOS fixes and the design-system rebrand released publicly in v1.3.0.
- Customer sign-in portal: three self-service account-recovery flows, each with render, validation and submit tests.
- Remote-monitoring dashboard: trend-chart and API work, including moving its charting library forward seven major versions.
May 2018–Sep 2019
Software Intern (co-op) · Detechtion.AI
- Full-stack work on web and mobile apps: ASP.NET REST APIs with React, React Native, Vue.js, Angular and Next.js front ends.
- Remote-monitoring dashboard first: early fixes and batching for a data-sync job.
- Then the compression analytics platform: co-developed an external REST API for asset configuration data, building endpoints, request validation and a structured error-code scheme.
- Started the analytics platform's automated browser UI test suite and got it running in CI. Built emissions-compliance pages with bulk CSV/XML import and export.
- Served as Scrum Master, running standups, sprint planning, reviews and retrospectives.
May 2021–Feb 2022
Junior Web Developer · Noralta Technologies Inc.
- Designed, built and tested Angular CRUD applications on ASP.NET Core Web API, with Entity Framework code-first migrations.
- Architected and built the nSight video-streaming infrastructure for on-site cameras, delivering live feeds to desktop and mobile web players over RTSP and HTTP Live Streaming (HLS).
Toolbox
What I reach for.
- Languages
- JavaScriptTypeScriptC#T-SQLHTMLCSSPython
- Web front end
- ReactNext.jsAngularVue.jsViteTailwind CSSSassDesign tokensRadix UI / shadcnReact-BootstrapAtlassian Design SystemHighchartsLeafletSVG & canvas
- Mobile
- React NativeReanimatedSkiaReact NavigationReact Native PaperPush notificationsiOS & Android asset pipelines
- Back end
- .NET / ASP.NET CoreEntity FrameworkNode.jsSQL ServerREST API designVideo streaming (RTSP, HLS, FFmpeg)
- Quality
- JestReact Testing LibraryVitestNUnitSeleniumWCAG 2.2 accessibilityComputed-style diffing
- Cloud & tools
- Microsoft AzureAWSAzure DevOpsGitBitbucketJira & ConfluenceFigmaCursor
- How I work
- AI-assisted developmentDesign-system auditsRoot-cause debuggingArchitecture docsCode review & mentoringScrum