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
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
Workflow Engine
Backend
Kubernetes
Gateway
Observability
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
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
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
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
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
Zeitgaist
Cross-Lingual Social Intelligence
Synthesizes current insights from 6 platforms in seconds vs hours of manual monitoring, with cross-lingual search and filterable source context.
Foretale
No-Code Crypto Trading & Real-Time NLP Platform
Platform processed 100K+ daily data points across 7+ sources with ML-powered sentiment analysis, OCR extraction, and visual workflow automation.