Skip to content
Ehsan Mazaheri Tehrani

Lead Data ScientistToronto, CanadaOpen to new roles

I turn noisy data into systems that hold up in production.

Lead Data Scientist. Six years owning ML systems from data pipeline to canary rollout. PhD in Electrical Engineering, 2026.

30%
peak demand cut across utility feeders

CH1Selected work

Case files, with the numbers and how they were checked.

Each project is written up the same way: the problem, the constraint that made it hard, the approach, and the result with its verification. Compare them side by side.

CH1file 01Energentis2025 to present

Decade-scale grid capacity planning

Physics-informed transformer that forecasts power system capacity needs 10 to 20 years out.

0%
MAPE on decade-scale forecastsverified: against the incumbent capacity-planning baseline
0+
sources in the lakehouseverified: automated ETL, schema validated
  • PyTorch
  • Transformers
  • Azure Data Lake
  • Data Factory
  • Python
Problem
Utilities plan infrastructure on horizons where demand, weather, policy and technology all move at once. Incumbent tools extrapolate.
Constraint
Fifty-plus data sources with different cadences and geographies, and time-correlated data where an ordinary random split leaks the future into training.
Approach
Extended a transformer to multimodal inputs (time series, spatial, and spatio-temporal features) with physical constraints in the loss. Built an Azure lakehouse with automated ETL, chronological splits, and train-only scaling statistics.
CH2file 02IEMS Solutions for Honeywell Forge2024

ML platform for distributed energy resources

Cloud-native microservices that run ML models against 20,000 devices across 200 utilities.

0%
peak demand reductionverified: per feeder and utility segment, not aggregate only
0
DERs under load testverified: across 200+ utilities
  • FastAPI
  • Kubernetes
  • Docker
  • MLflow
  • DVC
  • LangChain
  • PyTest
Problem
Utilities needed to forecast and shape virtual power plant capacity in near real time, and the models had to be updated without risking live grid operations.
Constraint
Every prediction had to be traceable to its training data and commit. Updates could not be trusted until proven against live traffic.
Approach
FastAPI services on Kubernetes with shadow and canary rollout. Models disaggregate EV charging from feeder load and regroup DERs. MLflow and DVC version models and data; schema and range validation guard the feature pipelines.
CH1file 03DigiNext, DigiKala Ventures2022 to 2024

CheeGol: plant identification at scale

Co-founded an AI SaaS that identifies plants from user photos and recommends care.

0%
accuracy on user-submitted photosverified: 8,000+ species, real uploads
$0k
pre-seed raisedverified: DigiKala Ventures
  • PyTorch
  • YOLO
  • FastAPI
  • Docker
  • React Native
  • MongoDB
  • Node.js
Problem
Photos from real users are blurry, cropped, and badly lit. A model that scores well on a clean split fails in the field.
Constraint
Inference had to run cheaply enough for a pre-seed startup, on small instances, for 8,000 species.
Approach
Trained and fine-tuned CV models in PyTorch, added YOLO-based disease symptom detection, quantized and containerized for low-latency serving. Led a React Native app and MERN web platform around it.

CH2How it ships

Tools, placed where they sit in a real pipeline.

No proficiency bars. Each stage is a place a model can fail in production, and each tool is listed where I have used it to stop that.

stage 01

Ingest

Move raw data in from many sources without losing order or provenance.

  • Apache Spark
  • Kafka
  • Airflow
  • Azure Data Lake
  • Data Factory
  • PostgreSQL
  • TimescaleDB
  • MongoDB
  • Neo4j
  • Redis

CH3Timeline

Seventeen years on one axis.

Roles above the line, degrees below, awards marked on it. Scroll to sweep the cursor and read what was true at each point.

  1. 2025

    Lead Data Scientist

    Energentis · Sep 2025 to Present

    • Architected a physics-informed transformer for 10 to 20 year capacity expansion planning over multimodal grid, weather, demand and regulatory data.
    • Reached 17% MAPE on decade-scale horizons against the incumbent baseline.
    • Designed an Azure lakehouse with automated ETL for 50+ sources, chronological splits and train-only scaling to prevent leakage.
  2. 2024

    Lead Data Scientist

    IEMS Solutions · Jan 2024 to Dec 2024

    • Led ML integration into Honeywell Forge's DERMS platform.
    • Built a FastAPI, Docker and Kubernetes microservices platform load-tested to 20,000 DERs across 200+ utilities, with shadow and canary rollout.
    • Disaggregated EV charging and optimized DER grouping, cutting peak demand 30% per feeder.
  3. 2022

    Software Engineer, AI

    DigiNext, DigiKala Ventures · Feb 2022 to Mar 2024

    • Co-founded CheeGol, an AI plant identification SaaS, and raised $100k pre-seed.
    • Trained and deployed CV models holding 95% accuracy across 8,000+ species on real user photos.
    • Quantized and containerized inference to run on smaller instances.
  4. 2017

    Machine Learning Researcher

    University of Tehran · Aug 2017 to Aug 2019

    • Systematic review of applied ML for fault diagnosis in electrical machines.
    • Built fault diagnosis models in Python and PyTorch.
  5. 2019

    PhD, Electrical Engineering

    University of Tehran · Sep 2019 to Sep 2026

  6. 2014

    MSc, Electrical Engineering

    University of Tehran · Sep 2014 to Jul 2017

  7. 2009

    BSc, Electrical Engineering

    Isfahan University of Technology · Sep 2009 to Sep 2013

CH4Lab

A motor-fault classifier, running in this tab.

Synthetic stator current for a permanent magnet motor, with the fault signatures from my dissertation baked into the physics. A small 1D CNN trained in PyTorch runs here through ONNX Runtime. Change the condition and watch the spectrum and the prediction move.

Condition

Fundamental plus the usual 5th and 7th harmonics.

Severity0.70
Supply frequency50 Hz
Load90%
Noise25 dB SNR
Stator current, phase Afirst 512 of 2048 samples at 5 kHz
Spectrum, 0 to 400 Hzf0 50 Hz · fr 12.5 Hz
f03f05f07f0fr
Model outputloading ONNX runtime
  1. Healthytrue
    0%
  2. Demagnetization
    0%
  3. Eccentricity
    0%
  4. Inter-turn short
    0%

Generator, training script and export in lab/motor-fault. Nothing leaves your browser.

Research and credentials

Physics-informed learning when data is scarce.

The dissertation asks how much a fault-diagnosis model can borrow from the physics of the machine when it cannot borrow from data. The Lab above is a small working answer.

Dissertation

Methodology of applying physics-informed machine learning for fault diagnosis in permanent magnet synchronous machines under scarcity of data.

PhD, Electrical Engineering. University of Tehran, expected 2026.

Google Scholar

Awards

  • 2009Top 0.3% of 300,000+ · Nationwide university entrance exam, mathematics and physics branch.
  • 2019PhD admission through the talent program · University of Tehran.
  • 2019Scientia PhD Scholarship · UNSW, Australia. $52,000 AUD per year.

Certifications

Contact

If this matches a problem you have, write to me.

Based in Toronto, open to lead and senior roles in ML engineering and data science, on site or remote.