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
Estimated manual provisioning effort eliminated through database-driven controllers
100+
Enterprise Nodes
Custom Node-RED nodes integrated into the workflow runtime
50+
IoT Subflows
Documented 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
- Owned architecture and hands-on delivery for the workflow automation platform from Node-RED runtime 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 an estimated 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 OpenTelemetry tracing across Node-RED, controllers, and gateway paths
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+ documented production-ready subflows, and a unique visual development → locked runtime pattern for rapid iteration with production stability.
- 50+ documented 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 Data & AI Platform Architect roles. My resume lists the rest of my work.
Other Projects
Caudra
The complete coding agent for your terminal
In public preview for macOS, Linux, and Windows. Free and open source, with first-party work under Apache 2.0 and inherited Maki code under MIT.
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.