Edge Device Management Platform
Centralized platform for managing distributed industrial edge devices
Client
Industrial Automation Company
Timeline
1+ year
Role
Senior Software Engineer
The Challenge
Field technicians at NOV needed to manually visit each industrial site to configure and update edge devices running data collection software. This was expensive, time-consuming, and caused downtime during updates.
The company needed a centralized platform to:
- Remotely configure device settings
- Deploy software updates
- Monitor device health and connectivity
- Troubleshoot issues without site visits
- Manage hundreds of devices across facilities
The Solution
FastAPI Backend
Built RESTful API with FastAPI handling device registration, configuration management, and real-time status updates.
- JWT-based authentication for device and user access
- WebSocket connections for real-time device communication
- PostgreSQL database for configuration and telemetry storage
- Background tasks for firmware update orchestration
- API versioning for backward compatibility with older devices
Angular Frontend
Created responsive dashboard for device fleet management with real-time status monitoring.
- Device inventory with filtering and search
- Configuration management interface
- Real-time status updates via WebSockets
- Firmware update scheduling and rollback
- Alert system for device issues
Device-Side Integration
- Python client for edge devices
- Secure device registration flow
- Configuration hot-reload without restart
- Update download with retry logic
- Heartbeat monitoring
Impact
- Eliminated most on-site visits for configuration changes
- Reduced update deployment time from weeks to hours
- Enabled proactive maintenance through monitoring
- Improved device uptime through faster troubleshooting
Key Learnings
Building Production FastAPI
Implementing FastAPI at scale with proper error handling, validation, authentication, and background task management. Understanding when to use async vs sync operations.
Real-Time Communication
Choosing between WebSockets and polling based on use case. Handling connection drops gracefully and implementing proper reconnection logic.
Distributed Systems
Managing hundreds of devices across unreliable networks. Designing for intermittent connectivity, handling partial failures, and ensuring eventual consistency.
Angular Reactive Patterns
Using RxJS for reactive state management, handling real-time data streams, and optimizing change detection for performance.
IoT Security
Securing device communication, implementing proper authentication for both humans and machines, and handling credential rotation at scale.
Technology Stack
Backend: FastAPI (Python 3.x), PostgreSQL, Redis, WebSockets
Frontend: Angular 12+, TypeScript, RxJS, Angular Material UI
Infrastructure: Docker containerization, Linux servers, Secure VPN for device connectivity