KEVIN OUELLETTE.

Independent product developer

I build the whole path.

Most software people stop at the API. I design the circuit board, flash the firmware, run the message broker, shape the time-series database, and ship the iOS and Android apps that read it. Five products in production — hardware I laid out myself, running in real hotels and real walk-in freezers.

Fig. 1 — Signal path, end to end Every stage below is mine
Sensor ESP32 · BME280 · DS18B20 Firmware C++ · PlatformIO · OTA Broker Mosquitto · MQTT Store + API TimescaleDB · Node Mobile Kotlin Multiplatform Web React · Vite · Docker
Products shipped
5
Live in production
4 domains
On the App Store
PropertyPlex
Boards designed
2

Shipped work

05 products
Fahren mobile app showing live walk-in cooler and freezer sensor cards with temperature sparklines.

Fahren

fahrensense.com Live

Commercial environmental monitoring — temperature, humidity and barometric pressure with configurable alarms and push notifications. I built every layer of it: the sensor board, the firmware, the broker, the database, both mobile apps, the web dashboard, and the servers it runs on.

  • Custom PCB around an ESP32-C3, with OTA firmware updates and an MQTT watchdog
  • Two sensor variants selected at compile time — BME280 for ambient, waterproof DS18B20 probe down to −55 °C for freezers
  • TimescaleDB hypertables with continuous aggregates and tiered retention: raw 90 days, hourly 2 years, daily forever
  • Duration-based alarms that require a condition to persist before firing, so a door opening doesn't page anyone
ESP32-C3 BME280 DS18B20 PlatformIO MQTT / Mosquitto Node.js TimescaleDB Redis Kotlin Multiplatform React Docker Caddy
PropertyPlex mobile app showing a hotel work order dashboard with open, overdue and needs-parts counters.

PropertyPlex

prprtyplex.com Live · App Store

Hotel maintenance and housekeeping SaaS, running in real properties today. Work orders, preventive maintenance scheduling, room turnover boards and asset tracking — with bidirectional sync into the property management systems hotels already run.

  • Live at two operating hotels, syncing room status and reservations in production
  • Five PMS connectors behind one generic interface — Cloudbeds, Mews, Guesty, Opera Cloud and Infor, including a SOAP webhook integration against Infor's Liaison Databridge
  • Multi-tenant from the ground up: organizations, tenants, plan limits, and three separate admin systems with independent auth
  • Equipment photographed and read into structured asset records by the Claude API
  • Shipped in English, Spanish and French across web and both mobile apps
Kotlin Multiplatform Compose Multiplatform Swift Node.js SQLite Stripe Firebase FCM APNs Claude API React Docker
Combo board · rev 1
30.5 mm 36 × 36 mm
MCUESP32-S3
CellularSIM7600G-H
GNSSu-blox M8N
StdASTM F3411
BOM~$26

NMDrones

nmdrones.com Site live · Board in dev

A drone services business and the electronics product line underneath it. The site handles client galleries and aerial photo stitching; the hardware is a Remote ID and LTE telemetry board that makes any airframe both FAA-compliant and trackable from a browser.

  • Broadcasts FAA Remote ID over BLE to the ASTM F3411 standard, while streaming live position over LTE to a web dashboard
  • Laid out to the 30.5 mm Pixhawk mounting pattern with a JST-GH MAVLink connector, so it drops onto existing airframes
  • Power design sized for the LTE modem's 2 A transmit peaks — a buck converter for the radio, separate rail for logic
  • Client-facing site with photo galleries, uploads and a NodeODM-backed aerial stitcher
ESP32-S3 SIM7600G-H LTE u-blox NEO-M8N EasyEDA BLE Remote ID MAVLink Node.js NodeODM Leaflet Docker
Build manifest
ProductMinexus
Version0.2.0
ShellElectron
TargetsmacOS arm64
Windows arm64
CompanionKMP mobile
StatusLive

Minexus

minexus.ai Live

An AI command center for everything that lands on you in a day. It reads across email and messages, tracks what each project is actually waiting on, and hands back a daily briefing — with a hard separation between work mode and personal mode.

  • Desktop app built and signed for both macOS and Windows on ARM
  • Email and iMessage/SMS pulled into one timeline rather than a stack of inboxes
  • Kotlin Multiplatform mobile companion for capture on the move
Electron React TypeScript Vite Node.js Kotlin Multiplatform
WorkLens custom camera screen showing flash controls, aspect ratio toggle, a zoom ruler at 1.4x, and photo and video modes.

WorkLens

Android & iOS Built & signed

A job-site camera and photo organizer — shoot, sort into albums, and export a set to hand off. Built as a single Kotlin Multiplatform codebase where the shared UI stops exactly where the platforms genuinely differ.

  • Custom camera with a zoom ruler, aspect-ratio control, and photo/video modes rather than a system camera hand-off
  • Gallery and camera screens split through expect/actual — Android and iOS get separate implementations where insets, image scaling and fullscreen behaviour diverge
  • Albums with rename, export and batch delete
Kotlin Multiplatform Compose Multiplatform CameraX AVFoundation Swift

What I work in

Silicon → screen
01

Silicon & boards

ESP32-C3 ESP32-S3 BME280 DS18B20 SIM7600G-H u-blox NEO-M8N EasyEDA Schematic & PCB layout
02

Firmware

C++ / Arduino PlatformIO OTA updates BLE I2C OneWire MAVLink
03

Transport

MQTT / Mosquitto REST Webhooks SOAP OAuth2 WebSockets
04

Data

TimescaleDB PostgreSQL SQLite Redis Hypertables & continuous aggregates
05

Backend

Node.js Express JWT auth Multi-tenancy Stripe Firebase FCM APNs Claude API
06

Apps

Kotlin Multiplatform Compose Multiplatform Kotlin Swift Electron App Store & Play releases
07

Web

React Vite TypeScript Leaflet Internationalization
08

Infrastructure

Docker Docker Compose Caddy Let's Encrypt DigitalOcean Linux

Available for work

Have something you want built?

I take on projects where someone has a clear idea and needs it made real — hardware, apps, backends, or all three together. Tell me what you're trying to build and I'll tell you honestly whether I'm the right person for it.