Skip to main content
Back to Projects
Live 2023 - 2025

Enterprise IoT Platform

Multi-Tenant Workflow Automation Infrastructure

Kubernetes-orchestrated workflow engines with OpenTelemetry instrumentation

70%

Faster Onboarding

Customer onboarding reduction from reusable workflow platform patterns

40+ hrs/mo

DevOps Saved

Manual provisioning effort eliminated through database-driven controllers

100+

Enterprise Nodes

Custom Node-RED nodes integrated into the workflow runtime

50+

IoT Subflows

Production-ready device lifecycle workflows

Enterprise IoT Platform architecture diagram showing Kubernetes controllers, workflow engine, and observability components

The Problem

IoT organizations managing thousands of devices need workflow automation that scales. Standard tools lack enterprise features: no durable database-backed persistence for high availability, no distributed tracing for debugging, no event streaming integration, and no multi-tenant isolation. Manual Kubernetes provisioning doesn't scale beyond dozens of instances.

The Solution

Built a three-component platform: (1) Extended Node-RED with 100+ custom enterprise nodes, AWS Aurora to TimescaleDB migration, Kafka event streaming, and OpenTelemetry tracing. (2) Two Go-based Kubernetes controllers that automatically provision workflow environments from database configuration with circuit breaker resilience. (3) TypeScript/Fastify gateway providing unified authentication, WebSocket proxying, and database-backed real-time cache invalidation. Lesson learned: The first version of the Kubernetes controller used a simple polling loop that caused race conditions during rapid deployments. Adding leader election, exponential backoff, and circuit breakers made reconciliation behavior more predictable. The controller used a 1-second reconciliation cycle; convergence still depended on cluster and API conditions.

Tech Stack

Frontend

ReactTypeScriptReduxMaterial-UIRecharts

Workflow Engine

Node-RED 4.xTypeScriptSvelteTimescaleDBKafka

Backend

Go 1.24gorilla/muxTimescaleDBAWS Aurora

Kubernetes

AWSclient-goControllersHelmDistroless

Gateway

FastifyTypeScriptWebSocketnode-cache

Observability

OpenTelemetryTracesMetricsLogsDatadog

My Role: Senior Data Architect

  • Architected entire platform from workflow engine to Kubernetes orchestration
  • Reduced customer onboarding time by 70% through reusable workflow and provisioning patterns
  • Built 10+ React dashboard components with custom hooks and auto-refresh
  • Designed Generic Timeseries API (Go/TimescaleDB) replacing 5+ specific endpoints
  • Implemented 7+ TimescaleDB hypertables with compression and retention policies
  • Integrated 100+ custom enterprise Node-RED nodes with automatic OpenTelemetry tracing (BaseNode pattern)
  • Created two Go Kubernetes controllers with circuit breaker and retry logic
  • Eliminated 40+ hours/month of manual DevOps by provisioning 8 Kubernetes resources per workflow instance
  • Built TypeScript gateway with browser fingerprinting and real-time cache invalidation
  • Integrated full OpenTelemetry suite (traces, metrics, logs) across all components

Platform Components

Fleet Analytics Dashboard

Real-time IoT fleet visualization with 10+ chart components, custom React hooks, and auto-refresh capabilities for monitoring device health and workflows.

  • 10+ visualization components (Heartbeat, Workflows, Errors, Network, Reports)
  • Custom hooks: useHeartbeatStats, useMetricsData, useWorkflows with auto-refresh
  • Material-UI + Recharts for responsive data visualization
  • IntervalSelector and DateRangePicker with smart formatting
React TypeScript Redux Recharts Material-UI

Generic Timeseries API

Go/TimescaleDB backend supporting dynamic time-series queries without backend changes for each new visualization - reduced dashboard development from weeks to hours.

  • Single endpoint replaced 5+ specific endpoints
  • Advanced aggregations: percentiles (p50, p99), histograms, stddev
  • Pivot with top-N for high-cardinality fields
  • 7+ hypertables with automatic compression and retention
Go TimescaleDB AWS Aurora gorilla/mux

Workflow Engine

Extended Node-RED with 100+ custom enterprise nodes, 50+ production-ready subflows, and a unique visual development → locked runtime pattern for rapid iteration with production stability.

  • 50+ subflows covering complete IoT lifecycle (device events, gateway commands, notifications)
  • Visual development → locked runtime: edit externally, deploy as immutable nodes
  • 100+ custom enterprise nodes with BaseNode pattern for automatic OpenTelemetry tracing
  • TimescaleDB persistence + Kafka event streaming for enterprise scale
Node-RED TypeScript Svelte TimescaleDB Kafka

Kubernetes Controllers

Two Go-based controllers enabling database-as-single-source-of-truth for Kubernetes deployments. Add a database row, get a fully provisioned workflow environment automatically.

  • Database is single source of truth - no kubectl or manifests needed
  • Automatic provisioning of 8 K8s resources per tenant from DB records
  • 1-second reconciliation cycle polls desired vs actual state
  • Circuit breaker resilience for graceful failure handling
Go client-go TimescaleDB Helm

Key Differentiators

End-to-End Platform: From workflow engine to Kubernetes orchestration in one solution

Database-Driven Architecture: TimescaleDB-backed reconciliation enables external system integration

Observability Instrumentation: OpenTelemetry tracing across Node-RED, controllers, and gateway

Resilience Patterns: Circuit breakers, retry logic, and health monitoring across critical components

Multi-Tenant Isolation: Namespace-level separation with per-instance secrets and network policies

Generic Timeseries API: Single endpoint handles any time-series query vs. endpoint-per-chart

Want to discuss this experience?

I am open to full-time Senior AI/ML Platform Engineer roles where this kind of production AI, data, and platform work is useful.

Other Projects