Back to Experience
Apr 2025 - Present

Industrial Steam Plant Optimization

Built a sensor pipeline across 400+ industrial sensors and trained PyTorch time-series models to forecast heating demand, improving accuracy from 81% to 94%.

The problem

The university heating plant operates three natural gas boilers totaling roughly 3,400 boiler horsepower to heat 17 campus buildings. Because steam boilers and large buildings have long thermal ramp times, operators cannot react quickly when outdoor temperatures shift. Underestimating demand leaves buildings cold, while overestimating burns excess natural gas and vents steam.

This grant-funded project with DTE Energy focused on building an automated forecasting system to give operators next-day hourly steam demand predictions.


Sensor ingestion and pipeline architecture

  • Built an ingestion pipeline in Python with Apache Kafka and Redis fallback caching. When a sensor drops offline, the system serves the latest valid reading and queues a background retry, maintaining 98% uptime across 400+ sensors.
  • Mounted cameras on analog gas meters and built an OpenCV and Tesseract OCR pipeline to extract and digitize mechanical dial readings automatically.
  • Extracted aggregate campus occupancy trends using OpenCV to feed thermal load features directly into the time-series pipeline.
  • Reduced ingestion data latency by 90 seconds compared to manual logging.

Model development and demand forecasting

  • Engineered domain features reflecting physical thermal retention in brick and concrete, wind chill, building occupancy schedules, and historical boiler firing behavior.
  • Implemented sequential neural network architectures in PyTorch, writing custom data loaders, loss functions, and training loops across LSTM, Bidirectional LSTM, GRU, and ConvLSTM models.
  • Lifted next-day forecast accuracy from an 81% historical baseline to 94%, giving plant operators dependable numbers to plan firing schedules.

Operational dashboards and alerts

  • Developed web dashboards displaying live steam demand curves, weather forecasts, and sensor health warnings.
  • Automated daily operational summaries and alert dispatches using LangGraph and Model Context Protocol (MCP). The system suggests boiler adjustments, but requires human operator approval before changes take effect.
  • Configured GitHub Actions to validate data transformations and trigger model retraining as seasonal weather shifts between fall and winter.

Technologies used

  • Time-series and machine learning: PyTorch, scikit-learn, LSTM, BiLSTM, GRU, ConvLSTM, NumPy, pandas, SciPy
  • Computer vision and OCR: OpenCV, Tesseract OCR, DeepFace, Image Preprocessing, Thresholding
  • Data ingestion and streaming: Apache Kafka, Apache Spark (PySpark), Custom Data Loaders, ETL Pipelines, Batch Processing
  • Databases and caching: PostgreSQL, Redis, Time-Series Data Management, Query Optimization
  • Agentic workflows: Model Context Protocol (MCP), LangGraph, Claude Code, REST APIs
  • Infrastructure and deployment: Docker, GitHub Actions CI/CD, Linux, Virtual Machines, Git, Bash