Federico Pardo

I'm an AI engineer with a PhD in Computer Science and AI from the University of Murcia. During the PhD I built and ran MoviSound, a speech and LLM platform where teachers upload a recording of their class and get back the transcript, who spoke when, the questions their students asked and a summary from a self-hosted LLM.

I built it so teachers could use the research on their own, without going through me. My speech pipeline processed 287 classroom recordings from nine teachers in four faculties. They got feedback from this work over three years, first as reports I made by hand and in the last year through the platform, and seven of the eight who answered a survey changed how they teach.

Before the PhD I worked at CENTIC, a technology centre in Murcia, on computer vision and natural language processing, and then in Google Cloud support at Webhelp. Since finishing the PhD I have built Sextante, a finance web app with an MCP server that AI agents can connect to. I directed the build and reviewed the code; Claude Code wrote much of it. I'm also working through Stanford's CS336 to understand how language models work inside, and I built a small tool-using agent in Go as a learning project.

I'm looking for an applied AI role, ideally working with language models. I'm available now and ready to relocate.

Experience

Graduate Researcher (ML engineering, MoviSound platform)

University of Murcia - May 2023 - May 2026

  • Built and ran MoviSound: a speech and LLM platform for teachers. They upload a class recording and get the transcript, who spoke when, their students' questions and a summary from a self-hosted LLM. Its speech pipeline processed 287 classroom recordings from nine teachers in four faculties.
  • Served the analysis through a FastAPI REST API: Whisper and pyannote inference on one GPU behind a Celery queue and a GPU lock, with Kafka streaming the progress to the web app. Failures alert the admins. I built the first version with a colleague who did the frontend.
  • Evaluated prompted LLMs against a fine-tuned model: a multilingual DeBERTa classifier that labels teacher interventions in class transcripts (IEEE Access, 2025). I built the labelled set (1,674 interventions, annotator agreement 0.70 to 0.97). Fused with speech features and explained with SHAP, the classifier reached macro-F1 0.71 on unseen teachers with raw transcripts.
  • Shaped the product with its users: for two years I made the reports by hand, then built the web app around the parts the nine teachers actually used. Seven of the eight who answered a survey changed how they teach.
More about MoviSound

Cloud Technical Support Specialist (GCP)

Webhelp (Google Cloud project) - Aug 2022 - Apr 2023

  • Gave L2 support to enterprise clients on Google Cloud: BigQuery and Vertex AI, plus Compute Engine, VPC, IAM and GKE (Kubernetes), all in English.
  • Worked with SRE teams on production issues: the cases that affected clients' live workloads.

Data Scientist and Machine Learning Engineer

CENTIC (technology centre) - Jun 2021 - Aug 2022

  • Built a real-time computer vision service: a TensorFlow CNN trained on labelled images that identifies each screw's type and checks it is correctly in place, served through a web app.
  • Shipped a text-complexity tool: built with a partner university and taken to production. Classic NLP (bag of words and complexity metrics) that rates how complex a text is.

Projects

Sextante

Jun 2026 - present - Next.js, NestJS, TypeScript, PostgreSQL

  • Built and maintain a finance web app: Spanish tax calculators and a portfolio tracker, self-hosted in Docker, open source, with tests and CI-gated deploys. I directed the build and reviewed the code; Claude Code wrote much of it.
  • Added an MCP server for AI agents: OAuth 2.1 login, with read and write permissions checked on every tool. It works as a Claude connector.
More about Sextante

Self-study: language models and agents

Jun 2026 - present - Python, PyTorch, Go

  • Implemented a transformer language model from scratch (Stanford CS336): tokenizer, model, optimiser and training loop in Python and PyTorch. I trained a small one on TinyStories, on my laptop, to a validation loss of 1.36 (course target: 1.45).
  • Built a tool-using agent and an evaluation harness for it (Go, a learning project): a ReAct agent over a local model, scored with deterministic checks and an LLM judge on its reasoning, running the cases concurrently.
Agent code on GitHub

Skills

Machine learning & LLMs

NLPComputer VisionPyTorchHugging Facescikit-learnpandasMCP

Programming & tools

PythonSQLTypeScriptGoJavaCC++GitLinux

Engineering & cloud

FastAPIDjangoCeleryKafkaPostgreSQLMongoDBRedisDockerGCP

Languages

Spanish (native)English (C1)

Education

  • 2023 - 2026

    PhD in Computer Science and Artificial Intelligence (Summa Cum Laude)

    University of Murcia

    Thesis: Enriched Feedback of Classroom Dynamics Using AI. Five peer-reviewed publications, three as first author, including two in IEEE Access.

  • 2020 - 2021

    M.Sc. in Big Data and Artificial Intelligence

    University of Murcia - GPA 8.7/10

  • 2016 - 2020

    B.Sc. in Computer Science, specialising in AI

    University of Murcia