Carlos Pérez-Guerra

Curriculum Vitae

Backend software engineer with a non-traditional path — teacher and researcher turned engineer — currently building large-scale search and scraping infrastructure at raffle.ai. I like owning systems end-to-end: Go services, databases, queues, CI/CD and the servers they run on.

Portrait of Carlos Pérez-Guerra
Home baseSofia, Bulgaria
Birthday01/07/1989, Madrid (Spain)

Work Experience

01/2025 – Current
Remote
raffle.ai
Senior Software Engineer
  • Led the migration from a custom BERT fine-tuning pipeline to generic models, migrating core components to Go.
  • Moved vector search infrastructure from FAISS to Milvus, unlocking greater scalability, distributed reliability and maintainability.
03/2022 – 01/2025
Copenhagen, Denmark
raffle.ai
Software Engineer (Backend)
  • Scaled web scraper infrastructure from MVP to thousands of sandboxed, concurrent scrapes by overhauling the architecture and introducing queue-based async processing, dramatically improving reliability and system throughput.
  • Shipped many backend features: page rank, differential scraping, content denoising, stealth mode (for scraping sites behind Cloudflare), autocomplete, constraint-based CSS blacklisting suggestions.
  • Built CLI tools for self-serve pipeline troubleshooting by support teams, drastically reducing the support load on engineers.
03/2021 – 03/2022
Copenhagen, Denmark
ChurchDesk
Software Engineer (Backend & Ops)
  • Development of new messaging features which had a massive impact on sales in 2021Q4.
  • Integration with external APIs like Sendgrid, Unlayer, mjml, Google Geolocation and others.
  • Working with legacy code: refactoring, de-duplicating, extending test case coverage, etc.
  • Setting up and migrating new production MariaDb cluster to our own dedicated servers (using Ansible).
  • All sorts of infrastructure / sysadmin work: setting up encryption, backups, access management, etc.
  • Performance optimization using metrics from Elastic, splitting off slow endpoints and profiling tools to find procedures blocking the main thread.
06/2019 – 02/2021
Shanghai, China
Laboratory for Collaborative Intelligent Technologies
Software Engineer (Apprenticeship)
  • Designed and implemented new publish-subscribe broker algorithms in C++.
  • Full-stack work using Python for backends and predictive analytics and React for frontend work.
  • Developed and published a predictive model for estimating vocabulary memory traces from user interaction data.
04/2018 – 08/2018
Shanghai, China
Ruijin Hospital
Student Software Developer
  • Developed a chemotherapy tracking solution helping nurses set and track doses, manage drug inventory & expiry dates, print labels and store heart report results.
  • Built with Django and Elm, with a reactive frontend designed to prevent human error.
05/2015 – 12/2017
Shanghai, China
KnowledgeLink Group Inc.
Mathematics Teacher
  • Taught high-school Mathematics at the St. Mary's and Barstow campuses in Shanghai and Ningbo.
  • Created lessons within a blended learning environment and assisted the school in the use of technology and media in the classroom.
04/2012 – 05/2015
Madrid, Spain
Mango Producciones
Media Producer
  • Corporate video production for clients like Airbus, Iberia or Spanish Air Force.

Education

09/2018 – 03/2021
Shanghai, China
MSc. Computer Science
Shanghai Jiaotong University
  • GPA: 3.8/4.0, top 5 percentile
  • Awarded CSC A scholarship for the duration of my studies.
  • Key subjects: Algorithm Design and Analysis, Computer Networks, Programming Languages, Machine Learning, Statistical Learning, Linear System Theory, Game Theory, Optimization, Real Analysis, Statistics, Bioinformatics
  • (Remark: I decided NOT to graduate because apart from the classes, the program requires two additional years of essentially being a postdoc for free. However I completed all classes with good grades and even published a paper)
12/2017 – 09/2018
Shanghai, China
Self-study
  • Studied Math and CS topics by myself full-time.
  • Areas of study: Programming (SICP), Algorithms, Linear Algebra, Multivariable Calculus, Probability, Statistics, Statistical Inference, Machine Learning.
09/2007 – 07/2010
Aberystwyth, UK
BA Film and Television Studies
University of Wales, Aberystwyth

Skills

Design & architecture
Functional architectures, domain-driven design, clean code, TDD/ATDD, UML
Backend languages
Go, Typescript, Python, C++
Databases / Queues
PostgresDb, MariaDb, Redis, Nats, Kafka, Milvus
Ops
Linux, Ansible, AWS, Serverless, Docker, CircleCI, Vagrant, Bash...
Data analytics (a bit rusty now)
Tensorflow, keras, sklearn, numpy, pandas, R
Frontend
React, Typescript, Gatsby, antd, material
Human languages
Spanish (native), English (native), a little Danish

Publications

Perez-Guerra, Carlos & Jian Cao (2021). Estimating Memory Retention Traces of Foreign Language Vocabulary from Reading Interaction Data. Proceedings of the 2021 IEEE 24th International Conference on Computer Supported Cooperative Work in Design (CSCWD).