diego rodríguez atencia

Diego Rodríguez Atencia

Mathematician · data & ML engineer · Madrid

Four years in credit-risk and regulatory data, mostly on site at a top-4 Spanish bank: I own the LGD pipeline behind its loan-loss provisions and regulatory capital. Outside the day job I build ML systems from scratch — LLM fine-tuning, reinforcement learning, agents and the infrastructure under them.

download pdf ↓
dratencia@gmail.com github linkedin

Experience

PwC Spain — Financial Risk

nov 2023 – now

Senior Associate, Data (promoted from Data Analyst, Jun 2025) · on site at a top-4 Spanish bank since April 2024

  • Own the LGD pipeline behind the bank's loan-loss provisions and regulatory capital: schema and partitioning, load validation, join strategy, and reconciliation against the bank's official figures before submission. SQL, SAS and Oracle over 60M+ row datasets.
  • Closed 45 of 50 outstanding audit findings on data quality and the default definition, some open since 2021: reconstructed intent from sparse sources across the bank, rewrote the classification rules in SQL, backfilled historical portfolios under the revised definition, and reconciled old against new to separate genuine reclassifications from migration artefacts.
  • Signed off UAT on the SAS → Oracle migration of that database: the new implementation (~20k lines of business logic) was closed to inspection, so I re-derived it from the requirements and the legacy code and reconciled outputs against it.
  • Built a FINREP/COREP reconciliation tool automating checks against stress-test report templates, directing two junior analysts. Used in the last three stress-test cycles.
  • Replicated an ECB methodology paper on climate-risk PD stress testing into a working application, settling specification questions directly with NGFS.
  • Leading a data-quality tool that derives controls from field dictionaries, writes them in plain language and compiles them to SQL.
  • Designed the validation framework for the LLM that writes those controls: a clean PD/LGD base with 21 errors seeded from EBA/GL/2017/16, an executable oracle per error so the ground truth is itself checked, and scoring that attributes each failure to schema linking, retrieval or control generation while penalising false positives.
  • Refactoring the LGD database for a twofold throughput gain on the bottleneck steps, exploiting symmetries the data guarantees by construction.
  • Built the client relationship directly; delivery quality turned into 8+ consecutive contract renewals under hard regulatory deadlines.

Our LLM system at the bank was generating the right content, but the client required it in their own approved Word templates, and no existing tool could fill them. I went down to the raw XML and built a library that clones, fills and duplicates table fragments from the approved template on the fly, with heuristic fallbacks for tables it had never seen. It's now in production across three languages, used in every audit project for the entity.

The bottleneck for AI in regulated industries often isn't the model or the content: it's getting the output into the client's final deliverable.

Álamo Consulting — Data Analyst

oct 2022 – nov 2023
  • Sole owner of SIRBE reporting to the Banco de España for an external financial entity: prepared, validated and submitted the periodic files on the regulator's fixed calendar.
  • Extended the reporting datamart and reviewed other developers' work for conformance to regulatory requirements before release.

Selected projects

barrapp

Android app that counts and scores calisthenics reps from a phone video. Server-side pose estimation; marks a rep unmeasured rather than inventing a score. Closed testing.

mus_bench

Multi-agent benchmark: LLM teams play mus through a covert gesture channel. Live table against GLM, DeepSeek and Qwen.

regllm

Regulatory validation agent: rule engine, hybrid RAG over EBA documents and a knowledge graph, QLoRA-tuned Qwen3 4B, LangGraph on AWS.

forja

A map of systems worth building from scratch (toy AWS, a compiler with a virtual GPU, an LLM, Dynamo) with stage guides and graded checks that run in the browser via Pyodide.

deep_learning_in_c · litetorch

A neural network with backprop in plain C, and PyTorch reimplemented small enough to read, with RL algorithms.

kan_implementation

Kolmogorov-Arnold networks with Taylor polynomials in place of B-splines.

unibox

Android launcher that centralizes screen, sleep and pickup metrics, and folds apps, habits and the next step into one home screen.

Open source

  • Liger-Kernel (LinkedIn) · PR #1128 — FSDP support for TiledMLP. Per-tile backward() fired FSDP's reshard hooks mid-loop, so I accumulate FP32 parameter gradients through hooks and run a single backward after all tiles; regression-tested against LlamaMLP at world sizes 2/4/8.
  • TorchRL (PyTorch) · discussion #3538 — MC-PILCO design proposal: moment-matching trajectory propagation, a hand-derived marginal-likelihood gradient, and a NumPy reference implementation.

Education

MSc Artificial Intelligence — Universidad Internacional de Valencia

2023 – 2024 · GPA 8.67/10

Thesis: deep reinforcement learning for prosthetic-hand control — 18-DoF Allegro Hand in MuJoCo, recurrent PPO with a curriculum reward, converged on CPU in under 24 hours.

BSc Mathematics — Universidad Autónoma de Madrid

2018 – 2023

Thesis (9/10): general form of the fourth-order isotropic tensor in the Navier–Stokes constitutive relation. Founded the university's AI student association, 70+ members.

Skills

languages
Python, SQL, SAS, C/C++, VBA
data
Oracle, query planning, DynamoDB, PostgreSQL/pgvector, pandas, PySpark, ETL design and reconciliation
ml
PyTorch, QLoRA fine-tuning, RL (SAC, PPO), RAG, LangGraph
cloud
AWS (Lambda, DynamoDB, ECS, SageMaker), Linux, Git
domain
Credit risk (LGD, PD), regulatory reporting, stress testing
spoken
Spanish (native), English

Ask this site