Business and data analyst with nearly four years onsite at Google LLC (Associate Analyst, via Vaco Binary Semantics) and an MSc in Business Analytics (Distinction) from Swansea University. I like starting from a business question and working back through the data to something people can act on.
Every project below has a live interactive demo, no installation needed. To be upfront about the data: the churn model uses a real public dataset and the job-market analysis uses a 25-listing sample, while the other dashboards run on simulated data generated in the browser to show the techniques. Each one says which it is.
| Project | What It Does | Stack | Links |
|---|---|---|---|
| ML Explainability & Monitoring | SHAP-style feature explanations · Data drift detection (PSI) · Fairness analysis · Partial dependence plots · What-if simulator · simulated data | Plotly.js · JS ML | Demo · Code |
| Customer Intelligence Platform | K-Means clustering (written in JavaScript) · RFM segmentation · Cohort retention · Sankey customer journey · simulated data | Plotly.js · JS ML | Demo · Code |
| NLP Sentiment & Text Analytics | Lexicon-based sentiment · TF-IDF keyword extraction · Aspect-based analysis · 5,000 simulated reviews | Plotly.js · NLP | Demo · Code |
| RAG Pipeline Analytics | Embedding-space view (simulated t-SNE-style layout) · Retrieval quality heatmaps · Cosine similarity · simulated data | Plotly.js · Vectors | Demo · Code |
| Customer Churn Prediction | SQL exploration → Feature engineering → Logistic Regression + Random Forest (scikit-learn) · 80% accuracy · AUC 0.85 cross-validated on 7,043 real customers (IBM Telco sample) | Python · scikit-learn · SQL | Demo · Code |
| Project | What It Does | Stack | Links |
|---|---|---|---|
| A/B Testing Analytics | z-test / t-test · Bayesian analysis · Sequential testing · Sample size calculator · Power analysis · simulated experiments | Plotly.js · Statistics | Demo · Code |
| Time-Series Forecasting | Trend-seasonal decomposition · Moving average, exponential smoothing, Holt-Winters, linear trend · Anomaly detection · simulated series | Plotly.js · Forecasting | Demo · Code |
| Real-Time Operations Analytics | KPI ticker on a simulated live feed (2.5s refresh) · Geographic heatmap · System health monitor · Threshold alerts | Plotly.js · Real-time | Demo · Code |
| Financial KPI Dashboard | Revenue vs Budget vs Forecast · EBITDA · P&L waterfall · Budget Variance RAG · illustrative 32-row sample | Python · Excel · Plotly.js | Demo · Code |
| UK Job Market Analysis | 25-listing sample (Jan to Feb 2025) · Salary by region · Top skills · Remote vs hybrid | Python · pandas · Plotly.js | Demo · Code |
| Skill | Evidence |
|---|---|
| End-to-End Delivery | Data → analysis → deployed interactive dashboard, all on GitHub Pages |
| Machine Learning | Logistic regression and random forest with scikit-learn, cross-validated (churn); K-Means written from scratch in JavaScript (customer intelligence) |
| Statistical Rigour | Z-tests, Bayesian inference, power analysis, confidence intervals (A/B Testing) |
| NLP | Sentiment lexicons, TF-IDF, aspect-based analysis, topic extraction |
| AI Analytics | Dashboards for RAG retrieval metrics: precision@K, MRR, NDCG (simulated data) |
| Model Governance | SHAP explanations, data drift (PSI), fairness auditing |
| Live Dashboards | Simulated streaming KPIs with threshold alerting |
| Financial Literacy | P&L analysis, EBITDA, budget variance, gross margin modelling |