10 Million ECG Signals.
Triaged in Real Time.
A working demonstration of the AI pipeline architecture I would build for HeartBug, handling signal ingestion, quality filtering, clinical priority classification, and EP work queue generation at production scale.
Live Signal Ingestion Feed
Real-time view of raw ECG signals arriving from HeartBug patches across Australia. This is unprocessed device data before any pipeline analysis, classification, or triage.
24-Hour Signal Arrival Pattern
Signal volume by hour, AEST timezone • Current hour highlighted
Device Distribution
by Australian state
ECG Lead Distribution
active lead configurations
Raw Signal Ingestion Stream
Raw signals streamed from HeartBug ECG patches via AWS Kinesis Data Streams • Secure TLS 1.3 encrypted transmission • No classification or triage applied at this stage
Pipeline Execution
Step through each stage of the 10-stage ECG processing pipeline. Click each button sequentially or use "Run All Stages" to process signals end-to-end.
Pipeline Configuration
Reject signals below this SNR
Route to CRITICAL above this
Route to EP REVIEW above this
Trained model for inference
Previous Pipeline Runs
View, compare, and export results from all previous pipeline executions. Click any run to expand its stage details.
Ingestion & Processing Metrics
Real-time performance metrics for the ECG signal processing pipeline. Monitoring throughput, latency, and system health around the clock.
Data Flow Pipeline
Live Throughput
signals/second over last 60 seconds
Pipeline Summary
cumulative metrics
Stage 1 — Signal Quality Filter
Not all signals are worth analysing. The first layer eliminates noise and corruption before any ML inference runs — saving compute and EP time.
Clean Signals
Passed quality threshold -- advancing to clinical classification
Noisy Signals
Elevated noise floor detected -- routed to signal processing layer
Corrupted / Unusable
Auto-rejected -- electrode disconnect or corrupt transmission. Never reaches EP queue.
Signal Quality Trend
clean % vs noise floor % over last 72 seconds
signals eliminated before reaching your EPs
Real Clinical Signal Classification
Live TensorFlow.js inference on real ECG waveform data from the MIT-BIH Arrhythmia Database — classified directly in your browser.
Stage 2 — Clinical Priority Classification
Clean signals are classified by urgency. Only what matters reaches your Electrophysiologists.
CRITICAL
Immediate EP Attention
VT, VF, Complete Heart Block, ST Elevation
Alert Sent ImmediatelyREVIEW REQUIRED
Scheduled EP Review
AF, SVT, PACs, PVCs, Bundle Branch Block
Added to EP QueueNORMAL
Auto-Archived
Normal Sinus Rhythm — within expected parameters
Auto-ArchivedClassification Distribution
Response Metrics
Classification Confidence
of signals require zero EP involvement
Your team focuses only on what matters
EP Work Queue Output
Signals flagged as critical or requiring review are routed here in real time. This is what lands on your Electrophysiologists' screens.
| Priority | Patient ID | Signal Time | Classification | Confidence | Duration | Action |
|---|---|---|---|---|---|---|
| Waiting for incoming signals... | ||||||
Production Architecture
How this pipeline would be deployed at HeartBug's scale in production on AWS. Each layer is shown with its technical configuration and data flow.
HeartBug Devices
Continuous ECG patch monitoring, worn on-body for up to 28 days
AWS Kinesis Data Streams
High-volume signal ingestion, buffering millions of events/sec
Why Kinesis? At 10M+ signals/week arriving in bursts, a direct database write would cause connection pool exhaustion and dropped records. Kinesis acts as a durable buffer, absorbing any traffic spike and releasing records at a controlled rate to downstream consumers. Nothing is lost even during peak load.
AWS Lambda — Preprocessing Pipeline
Serverless compute, auto-scales to match Kinesis throughput
1. Signal Parsing
- *Decode raw byte stream to float32 array
- *Normalise voltage to standard mV scale
- *Verify 360Hz sampling rate, resample if needed
- *Attach metadata (patient_id, device_id, lead, timestamp, region)
2. Format Validation
- *Confirm 3,600 samples per 10s segment
- *Validate timestamp within expected range
- *Verify device_id exists in device registry
- *Check patient consent status is active
3. Noise Detection
- *Baseline wander detection (high-pass filter)
- *50/60Hz powerline interference check
- *Muscle artifact / motion detection
- *Electrode disconnect (flat-line detection)
4. Quality Score
- *Compute SNR (signal-to-noise ratio)
- *Assign quality score 0-100
- *Route: Clean (>70), Noisy (30-70), Corrupted (<30)
- *Corrupted signals rejected, never reach ML
Amazon SageMaker — ML Inference
Real-time classification of clean ECG signals using trained neural networks
Critical (Immediate Alert)
Review (EP Queue)
Normal (Auto-Archived)
Routing Thresholds: confidence ≥ 95% + critical class = Immediate SNS alert + RDS store | confidence ≥ 90% + review class = EP queue + RDS | Normal class at any confidence = DynamoDB archive only. Signals below 85% confidence on any class are flagged for manual review regardless of classification.
Results Router
Routes classified signals to the appropriate destination based on priority and confidence
Amazon RDS (PostgreSQL)
Primary store for critical + review cases
DynamoDB
Archive for all signals (including normal)
SNS Alert System
Immediate notification for critical findings
React Clinical Dashboard
What the Electrophysiologist sees on their screen
Security & Compliance Considerations
Data Protection
AES-256 encryption at rest and in transit
VPC-isolated compute (no public endpoints)
IAM role-based access per service
Healthcare Compliance
TGA (Therapeutic Goods Administration) aligned
Australian Privacy Act 1988 compliant
Full audit trail on all signal access
Operational
CloudWatch monitoring + alarms
99.95% uptime SLA target
Blue/green deployment for model updates
Pipeline Performance Summary
The numbers that matter for HeartBug's operations.
HeartBug processes millions of signals.
Your EPs should only see the ones that matter.
How This Was Built
And why.
During my interview with Srikanth, Yijie and the HeartBug team on Thursday 12 March 2026, Srikanth described the volume problem HeartBug faces: more than 10 million ECG signals per week, needing intelligent triage to identify what requires clinical attention and what doesn't.
He asked me how I'd architect a solution.
I went home and built it.
This pipeline was built using real clinical ECG data from the MIT-BIH Arrhythmia Database. It runs a TensorFlow.js neural network directly in your browser to classify arrhythmias, connects to a Supabase PostgreSQL database for persistent storage, and uses Supabase Realtime for live EP queue updates. This demonstrates the exact architecture I would propose for HeartBug's production environment.
If something doesn't work the way you need it to, come back to me. Tell me exactly what needs to change. I will modify it. That is not a problem. That is how I work.
Data Sources
- •MIT-BIH Arrhythmia Database, PhysioNet
- •PhysioNet Computing in Cardiology Challenge
- •PTB-XL 12-Lead ECG Database
Built With
Built by Bernard Adjei-Yeboah
AI Engineer | Machine Learning & Healthcare Technology
Master of IT (Artificial Intelligence), APIC, Dec 2025
Prototype Disclaimer
This is a portfolio prototype built by Bernard Adjei-Yeboah as part of a job application to demonstrate technical capability in handling large-scale ECG signal processing pipelines.
This application is NOT the official HeartBug platform and is NOT affiliated with, endorsed by, or produced in partnership with HeartBug Pty Ltd.
All statistics, patient data, device identifiers, and signal metrics displayed are entirely fictional and simulated for demonstration purposes only. No real patient data is used or stored.
ECG waveform data is sourced from the open-access PhysioNet MIT-BIH Arrhythmia Database for educational and demonstration purposes under the Open Data Commons Attribution License.
This prototype must NOT be used for clinical, diagnostic, or medical decision-making purposes. It does not represent, replicate, or reflect actual HeartBug systems, data, or capabilities.
The AI classification model shown is a lightweight demonstration model and does NOT provide medically accurate arrhythmia detection.
For official HeartBug information, visit:
heartbug.com.au© 2026 Bernard Adjei-Yeboah. All rights reserved. This prototype is for demonstration purposes only.