Skip to content
View tiagoslantunes's full-sized avatar

Block or report tiagoslantunes

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
tiagoslantunes/README.md

Tiago Antunes — quantitative risk and portfolio analytics

Risk analytics Portfolio construction Production data engineering

I work on risk and reporting systems for asset management: VaR and expected shortfall, performance attribution, and the pipelines that produce them on a schedule. MSc in Data Science at NOVA IMS, BSc in Applied Mathematics and Computation at Instituto Superior Técnico.


Experience

Técnico Investment Club   Python PostgreSQL Status: live

Project Manager, Risk Team & Horizon Fund · Sep 2024 – Present · live platform

A risk platform for 3 live funds, used daily by 13 fund managers. A 30-module Python engine behind a Streamlit interface, with nightly CI, atomic database swaps, fail-closed data-quality gates and 670+ automated tests.

Risk measures are EWMA filtered historical simulation, GARCH(1,1) with volatility-regime detection, Student-t, and 5-variant Monte Carlo, backtested with Kupiec and Christoffersen. Attribution is Brinson-Fachler with Carino chain-linking. A Black-Litterman rebalancer produces mandate-capped, pre-trade-compliant order lists with transaction costs. Fund commentary is written by an LLM, but every figure in it is injected from code and checked against the source before the report renders.

I also maintain the club's Next.js site, with Vitest on units and Playwright on routing and mobile layout. Both repositories are private.

AlTi Global   pandas Power BI Sole engineer

Quantitative Data Engineer, bachelor's thesis · Feb – Jul 2025 · NASDAQ-listed wealth manager, ≈$75B+ AUM/AUA · sanitized code

Sole engineer on the fund reporting infrastructure. A vectorised NumPy/pandas pipeline computing 21 KPIs across 8 time windows under no-look-ahead constraints took the reporting cycle from hours to under 30 seconds across 200+ funds.

Six Morningstar feeds were consolidated into one point-in-time source of truth with dynamic multi-benchmark mapping, behind Power BI reporting used daily by the investment team and presented to the CIO. Because the output went to regulated review, I also built a Pearson-ρ fund identity detector (ρ ≥ 0.90, p < 10⁻⁹, validated over 20,000 Monte Carlo trials) and regex classification of 175 exposure headers, with 0% unknowns.

BPI Asset Management   R Zero missed reports

Risk Management Intern · Jul – Aug 2024 · CaixaBank Group · alerts · analytics

Daily liquidity monitoring across the fund range. I classified monthly fund flows into 5 movement segments across 19 analytical sheets, producing 20+ client lifecycle KPIs delivered to the CEO of BPI Asset Management.

The manual morning check was replaced by an R and Outlook COM pipeline sending threshold-triggered liquidity alerts before market open, with zero missed reports over the internship. Two further pipelines covered cross-fund 2σ outlier detection and ARIMA(1,1,1) forecasting with 95% intervals.


From positions to orders

Positions to risk factors to a loss distribution to VaR, expected shortfall and attribution, to a mandate-checked order list, with backtesting feeding back

The two headline numbers, whatever the asset class:

$$\mathrm{VaR}_{\alpha}(L) = \inf \lbrace \ell \in \mathbb{R} : \mathbb{P}(L \gt \ell) \le 1 - \alpha \rbrace$$

$$\mathrm{ES}_{\alpha}(L) = \frac{1}{1 - \alpha} \int_{\alpha}^{1} \mathrm{VaR}_{u}(L) \mathrm{d}u$$

Both depend entirely on the estimated distribution of $L$, which is where filtered historical simulation, a GARCH recursion, a Student-t tail or a Monte Carlo engine come in. Backtesting decides whether that estimate stays in production, which is what the dashed arrow does.


Selected work

Machine learning and MLOps

Project What it demonstrates Stack
Home Credit MLOps I owned splitting, model selection, MLflow, Optuna and SHAP Python · Kedro · MLflow
Used-car prices Leakage-safe preprocessing and out-of-fold blending Python · scikit-learn

Deep learning and NLP

Project What it demonstrates Stack
Financial tweet sentiment FinBERT, ensembling, distillation, 10-fold out-of-fold Python · PyTorch
WikiArt painters Transfer learning over 23 painters, duplicate auditing TensorFlow · Keras
RL for ICU sepsis Tabular and deep RL with honest baselines Stable-Baselines3

Optimization and data systems

Project What it demonstrates Stack
Fund reporting ETL The AlTi pattern: consolidation, no look-ahead, QA gates pandas · Power BI
GA image reconstruction 100 triangles, systematic tuning, CIEDE2000 Genetic algorithms
NovaTrade database Multi-currency brokerage schema and analytical views MySQL · Python
More repositories
Project Note
Fund analytics pipelines Report consolidation and client life-cycle analytics, from the BPI work
Outlook alerts template Sanitized HTML monitoring emails, configured by environment
Yahtzee Modular terminal application with scoring-rule tests

Each repository documents its requirements, its outputs, and the limits of its conclusions. Group coursework credits the full team.


Toolkit

Python    Jupyter    pandas    NumPy    scikit-learn    PyTorch    TensorFlow    Keras    R    PostgreSQL    MySQL    Docker    Streamlit    Power BI

Domain Methods
Risk & portfolio VaR/CVaR (EWMA, GARCH, backtesting), Brinson-Fachler and Carino attribution, MCTR/CCTR, stress testing, pre-trade compliance, Ledoit-Wolf shrinkage, Vasicek modelling
Modelling Monte Carlo, efficient frontier, Black-Litterman, factor decomposition, ARIMA, ensembles, transfer learning, transformer fine-tuning and distillation, reinforcement learning
Data & delivery ETL design, point-in-time data, SQL analytics, Power BI (DAX), CI gates, Docker, validated LLM chains

Background

Portuguese (native) · English (C1) · Spanish (conversational).


LinkedIn   Email   Live platform   All repositories

Pinned Loading

  1. cifo-ga-image-reconstruction cifo-ga-image-reconstruction Public

    Forked from barbara-sousa-franco/cifo_project

    Genetic algorithm image reconstruction with perceptual colour metrics and statistically validated experiments.

    Jupyter Notebook

  2. fund-reporting-etl fund-reporting-etl Public

    Portable Python ETL pipeline for fund reporting, performance analytics and Power BI-ready outputs.

    Python

  3. home-credit-mlops home-credit-mlops Public

    Forked from marianamelo0/home-credit-mlops

    Portfolio fork of a collaborative Home Credit MLOps system with Kedro, MLflow, LightGBM, SHAP, drift monitoring, FastAPI, and Docker.

    HTML

  4. novatrade-database novatrade-database Public

    Relational brokerage database with auditable trades, portfolio valuation and automated invoice generation.

    Python 1

  5. text-mining-financial-sentiment text-mining-financial-sentiment Public

    Reproducible financial sentiment classification with NLP ensembles, transformers and knowledge distillation.

    Python

  6. car-price-prediction car-price-prediction Public

    Forked from Garrobas/MachineLearningCars

    Used-car price prediction with leakage-safe preprocessing, feature selection and ensemble regression.

    Jupyter Notebook