Skip to main content
Johannes
All projects

Turbofan Predictive Maintenance

DataOctober 2026

A prototype that estimates how much life a jet engine has left, so maintenance can happen before a failure.

  • Kafka
  • PostgreSQL
  • dbt
  • XGBoost
  • FastAPI
  • Streamlit
  • Docker

The problem

Airlines can fix engines only after they fail, or inspect them on a fixed schedule. The first is risky and expensive, and the second wastes inspections on healthy engines.

What I built

The system replays engine sensor data from NASA's public C-MAPSS dataset as a live stream, stores and transforms it, and uses a machine learning model to predict remaining useful life (RUL) for each engine.

Predictions are served through an API and a live feed, and a fleet dashboard shows which engines need attention. It includes a simulator that compares maintenance strategies.

NASA Turbofan RUL live telemetry stream and WebSocket prediction dashboard
NASA Turbofan Fleet Intelligence Platform showing fleet risk and health distribution

The result

  • On the official NASA test set of 100 engines the tuned model scored RMSE 13.88, MAE 10.18, and NASA score 342.71.
  • In the project's own cost simulation, inspecting when predicted life drops to 25 cycles or less cost far less than waiting for failures. This is illustrative: it assumes every alert gets a timely inspection.

My role

Built the prototype end to end: streaming ingestion, data modeling, model training, API, dashboard, containerization, and CI.

Technical details

Tech stack

Streaming & storage
  • Apache Kafka (KRaft)
  • PostgreSQL
Transformation
  • dbt
  • Parquet feature store (38 features)
Machine learning
  • XGBoost
  • ONNX Runtime
  • Python
Serving & UI
  • FastAPI (REST + WebSocket)
  • Streamlit
Quality & ops
  • Docker Compose
  • pytest
  • CI

Architecture

  1. Telemetry replayReplays engine sensor data as a stream of events.
  2. KafkaDelivers events reliably to the next stage.
  3. PostgreSQLStores the time series in a warehouse.
  4. dbt featuresBuilds rolling statistics and wear indicators.
  5. XGBoost modelPredicts remaining useful life per engine.
  6. FastAPI + StreamlitServes predictions and shows fleet health.
Sensor data flows left to right, from a replayed stream to a decision dashboard.

Key decisions

  • Model tournament

    Four model types were compared on held-out engines before choosing the tuned XGBoost model as champion.

  • Honest benchmarking

    Results are compared with published papers. Some published models score better, so this is presented as a working prototype, not a state-of-the-art claim.

Limitations

  • Uses one operating condition and one fault type from the FD001 dataset.
  • Sensor data is simulated, with no dropouts or calibration drift.
  • The cost comparison uses illustrative cost figures.