Engineering data, business questions, honest answers
Data scientist with an MSc in Applied Data Science in Engineering and a BSc in Industrial
Mathematics. I work across the whole data workflow: auditing and cleaning messy data,
building Python and SQL pipelines, modelling, and reporting through dashboards and
presentations that non-technical people can act on.
Most of my work is predictive maintenance, condition monitoring and business analytics.
I don't treat a project as finished because it has been submitted or marked: I go back,
look for what was wrong with it, and rebuild it properly. I also build and run
Ostrivo, a live business intelligence web app.
◎
Validation that holds up
Held-out groups, shortcut tests and confidence intervals, so a score means what it says.
⟲
End to end
From raw files to a tested package, a dashboard, a deployed app or a slide deck.
✦
Clear communication
Findings written for the people who make the decision, negative results included.
02 · Experience
Where I've worked
Aug 2026 - Present
Founder and Developer
Ostrivo · Glasgow
Designed, built and deployed a business intelligence web app end to end.
Upload a CSV or Excel file and get a cleaned dataset, dashboards, anomaly detection, forecasts and a plain-English summary.
Analysis engine in Python (pandas, scikit-learn, Plotly); Streamlit app with multi-user accounts, email-code sign-up on a custom domain and PDF export.
Tested the engine against five real public sales datasets, which found and fixed three analysis bugs before users hit them.
Built and run the product site and portfolio at ostrivo.app.
PythonStreamlitpandasPlotlyHTML/CSS/JS
Jan 2025 - Jun 2026
Research Data Scientist (MSc research)
Glasgow Caledonian University · Glasgow
Predictive maintenance for wind turbines from SCADA data: 36 turbines, three wind farms, 95 datasets.
Built a two-stage pipeline (fault detection, then fault localisation) with automated ingestion, validation and feature engineering.
Rebuilt it under a strict protocol where no result uses information an operator would not have had: a CARE score of 0.619 over all 95 datasets, against 0.66 for the published model tuned on the same data.
On the best-instrumented farm, the faulty subsystem is in the model's top three for 64% of faults, against 33% by chance.
Research accepted for publication at the euspen SIC 2026 conference.
PythonPyTorchPCASCADApytest
Aug 2023 - Jan 2025
Junior Data Scientist
Early Code · Abuja, Nigeria
Client analytics: pipelines, dashboards and models across several projects at once.
Automated Python ETL workflows that cut manual data preparation by 25% and made outputs consistent across client projects.
Queried and transformed relational data in SQL for reporting and business analysis.
Built Power BI dashboards and Plotly visualisations for live KPI monitoring.
Applied regression, classification and hypothesis testing to client problems; mentored junior colleagues in Python.
PythonSQLPower BIPlotlyscikit-learn
Other roles
Jun 2025 - Present
Personal Assistant / Care and Support Worker
Enable Cares (formerly The Mungo Foundation), Glasgow
Accurate, structured records in regulated care settings, in line with GDPR and SSSC standards; evidence-based reports for multidisciplinary teams.
Nov 2018 - Jun 2023
Data Entry and Records Assistant
Public sector organisation, Nigeria
Maintained and reconciled large administrative and financial datasets under audit requirements; cost analysis reports for senior management.
Led a 7-person technical team that brought a system back into service after two years out of use; trained junior staff in data handling.
03 · Going back to finished work
Submitted, marked, and then improved
Several of these projects were already handed in and marked when I went back to them.
I reviewed each one as a critic would, wrote down what was wrong and rebuilt it, keeping
the original public so the difference can be checked. Switch each card between
Before and After.
Wind turbine predictive maintenance
MSc dissertation, marked 80%
Original
0.655
Rebuilt
0.619
0.50 chance0.66 published
What I found
Thresholds and training length set by hand on the same events that were then scored.
Test labels decided which data a model was trained on.
A hand-written, unverified version of the benchmark's scoring function.
What I did
Rebuilt from scratch so no number uses information an operator would not have had.
Tested the scoring code against the benchmark authors' reference on random inputs.
Added bootstrap intervals and three seeds. The score fell to 0.619, and I report it.
Fuel system condition monitoring
Digital Twins module, 76%
96%accuracy from the clock alone: every fault was recorded at a different time of day
What I found
A reversed severity axis and a sign error in the app.
A pump model checked on its own training data, then used outside its speed range.
Healthy limits set on raw samples, 2 to 14 times too wide.
What I did
Fixed each one and rebuilt the analysis around tests the clock cannot pass.
Physics indicators fitted without the fault being scored tell all five faults apart.
A classifier trained only on simulated faults scores macro F1 0.87 on the real rig.
Subway gate motor remaining life
PHM Europe 2026 Data Challenge
What I found
A flaw in the detector for the motor's sudden degradation steps.
One reported result the statistics did not support.
What I did
Fixed the detector and re-ran every result.
Restated the unsupported result as unproven, in the published README.
Password protection system
Early notebook prototype
What I found
It worked, but it was not secure enough to trust with a real password.
What I did
Rewrote it as a tested package: hashed and salted passwords, self-expiring lockout and recovery.
Airbnb Rio de Janeiro analysis
MSc coursework analysis
What I found
Notebook cells that only ran in a particular order, and file paths that only worked in Colab.
A dataset merge described as doing more than it did.
What I did
Made it run top to bottom on any machine and corrected the claim.
Business intelligence for people who have data but no analyst: upload a file, get dashboards, anomaly detection, forecasts and a plain-English executive summary.