Lead Data Scientist · Mathematician · AI/ML Engineer · Researcher & Lecturer
Statistical modelling, production AI, decision systems, and reproducible research · Python-first
I build data and AI systems where the difficult part starts after model fitting: defining the estimand, validating uncertainty, detecting distribution shift, choosing the operating policy, and keeping the result reproducible in production. My work moves between statistical modelling, machine learning, research software, production AI, optimisation, and applied quantitative research.
Selected delivery outcomes: 80% reduction in reporting costs · 30% reduction in analytics processing time · €500K reduction in inventory value through forecasting and operational optimisation.
The common thread is simple: start from the problem and the evidence, use the least complicated model that answers it well, and make the resulting claim inspectable.
| Project | What it demonstrates |
|---|---|
| feedback-intelligence-agent | Production-style RAG with guarded generation, retrieval evaluation, FastAPI serving, observability, and CI. |
| ragops-lab | Evaluation-first RAG engineering with lexical, vector, and hybrid retrieval, grounded-generation checks, traceability, regression testing, and a reusable API/CLI package. |
| clinic-forecasting-platform | Forecast-to-decision systems: rolling-origin evaluation, conformal uncertainty, hierarchical forecasting, staffing optimisation, serving, monitoring, and model operations. |
| transaction-risk-lakehouse | Production-oriented PySpark risk modelling with lakehouse layers, temporal validation, graph-derived features, cost-sensitive decisions, streaming scoring, and drift monitoring. |
| pinn | Scientific machine learning with a typed PyTorch PINN framework for forward and inverse PDE problems, exact-solution benchmarks, adaptive sampling, reproducible experiments, and a DOI-backed release. |
| bmssp | Algorithm engineering through a typed and tested BMSSP-style single-source shortest-path implementation with exact distances, benchmarking, graph transforms, documentation, and DOI-backed research software. |
→ Featured gives a 12-project cross-section by reviewer interest. The broader catalogue remains on Projects.
- Failure-aware behavioural sensing — separating sensor failure, missing evidence, occupancy ambiguity, and genuine behavioural change before an alert is allowed to mean anything. The current paper programme lives in behavioral-sensing-research.
- Forecast → decision systems — probabilistic demand forecasts evaluated by the decisions they support, including constrained fleet allocation on real mobility data in ds-projects-portfolio.
- Survival-model evaluation — using known-truth simulation to study when ranking metrics, probability accuracy, censoring, and model misspecification tell different stories, built on genSurvPy.
- Reproducible economic and policy research — treating definitions, measurement boundaries, identification, and provenance as part of the model rather than preprocessing details.
→ More active research threads on Research.
- Model the question before the algorithm. Define the estimand, failure modes, constraints, and decision rule first.
- Use strong baselines. Classical statistical and mathematical models are often the right starting point; complexity has to earn its place empirically.
- Treat reliability as part of modelling. Calibration, uncertainty, leakage, missingness, drift, abstention, and operating thresholds belong in the design, not in an appendix.
- Make claims reproducible. Typed code, tests, CI, frozen configurations, provenance, and machine-readable outputs are part of the research and engineering contract.
| Featured → Twelve flagship projects with explicit maturity labels. |
Projects → The broader catalogue across production, research, modelling, optimisation, and data engineering. |
| Outputs → Citable research software, paper programmes, empirical studies, and archived releases. |
Case Studies → Thirteen end-to-end examples across eleven domains, from problem and constraints to method and outcome. |
| Methods → The modelling toolbox, technical stack, and methods I use by problem type. |
Research → Current programmes, research themes, reproducibility standards, and collaboration interests. |
| Teaching → University teaching, seminars, workshops, and supporting material. |
PyPI → Published Python packages with live version badges, install commands, and source links. |
| Statistics → Portfolio evidence, impact metrics, and topic distribution. |
I teach mathematics and data subjects at the Faculty of Media Arts and Design, Technical University of Porto and work across statistical modelling, production AI, forecasting, optimisation, research software, and reproducible applied research.
For collaboration, research, or professional enquiries, a short note describing the problem, constraints, and expected outcome is the best starting point.






