Skip to content

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.

Telemetry · 4 channels
Decorative telemetry traces, one channel for each of the four case studies on this site.CH1 · FLEET WEB APPCH2 · ANALYTICS PLATFORMCH3 · FIELD MOBILE APPCH4 · SIGN-IN PORTAL
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

How I work

Evidence over opinions.

Four habits that run through the case studies, each with a number that backs it.

  1. 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.

    0

    visual differences across 6,115 elements after deleting 1,600 lines of global CSS

    Read the Enalysis case study
  2. 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.

    U+202F

    the invisible character behind a missing-glyph box

    Read the Enbase Mobile case study
  3. 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.

    1,886 → ~50

    hard-coded colours collapsed into palette tokens, with zero contrast failures

    Read the Enalysis case study
  4. 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.

    O(n²) → ~O(n)

    fleet-map clustering, roughly linear for typical fleets

    Read the OneView Compression case study

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

  1. 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.
  2. 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.
  3. 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.
  4. 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

Contact

Have a dense problem? Let's make it calm.

I'm always happy to talk about front-end architecture, design systems, data-heavy UIs and the mobile bugs that only show up on one platform.

Esc

↑↓ to move ↵ to select