Leopoldo Pla Sempere

Senior Research & Machine Learning Engineer

Multilingual Training Data Web Crawling ML Systems

I build multilingual data pipelines for machine learning: crawling the web, extracting usable text and making processing reliable at scale.

My work spans ParaCrawl and MaCoCu, production NLP, data tooling for music-transcription research and open-source systems.

Selected work

ParaCrawl MaCoCu

ParaCrawl & MaCoCu

Multilingual data engineering 2017–2023

I led engineering for multilingual web-data pipelines that processed over 1 PB of Common Crawl and other web data on HPC and cloud infrastructure, producing public corpora for machine translation and language-model research.

As a core developer and maintainer of Bitextor and co-developer of Monotextor, I worked on the path from crawling and WARC ingestion to text extraction, language identification, alignment and cleaning. Bitextor produces parallel corpora; Monotextor focuses on monolingual text.

Selected engineering contributions

Publications: ParaCrawl (ACL 2020) MaCoCu (EAMT 2023)

CARAMEL

Data infrastructure at Treelogic

Data pipelines and platform integration

In CARAMEL, I contribute to the data platform supporting cardiovascular-prevention research, combining backend engineering with technical coordination across project partners. My work covers authenticated data access, ingestion workflows, interface definition and integration testing.

In CRYPTOTRACK, I develop Python search and scraping workflows that collect web information for cryptocurrency investigations, along with shared components for S3 ingestion, validation and logging. This connects source discovery and data collection with downstream NLP analysis.

MultiScore

MultiScore

Data annotation for music-transcription research

I built annotation tooling for MultiScore, a research project exploring optical and audio music transcription with deep learning. My contribution focused on preparing labelled music data for model training.

I developed mpvplaytime, a MuseScore plugin that inserts playback timestamps from MPV into a score. It lets annotators mark the correspondence between a musical performance and its written notation while listening.

CrossPoint boot screen on an X4

CrossPoint Reader

C++ systems with tight memory limits

I maintain open-source firmware for Xteink e-readers, working on EPUB rendering, parsers, image decoding and regression testing.

For EPUB tables, I implemented a bounded row buffer and simple column layout. Complex or narrow rows fall back to a readable flow, preserving their content. The contribution documents memory and firmware comparisons, regression tests and device checks.

Other merged work includes grouping image buffers by lifetime and handling allocation failure, and fixing progressive JPEGs with separate component scans.

Explore the firmware
Reverso Context

Reverso Context

Production NLP and retrieval 2015–2017

At Prompsit, I contributed to the data and retrieval pipelines behind Reverso Context, improving retrieval of multilingual examples from aligned corpora.

The product served more than seven million queries per day.

Visit Reverso Context

DataTrove contribution proposal

I proposed a change to make duplicate-document groups produced by DataTrove’s Rust implementation available to its existing Python pipeline, with tests for compatibility between the two implementations.

Read the proposal and its status Extractor initialization bug report

Teaching

I teach programming and software engineering at the University of Alicante.

Other collaborative projects

Music & hardware

Outside work, I make music and build retrocomputing hardware, including tools that connect Game Boys and MIDI.

Game Boy music hardware PCB projects

CV

Detailed experience, education and selected publications are available in my CV.

View CV