Alejandro
Aparicio
Building data pipelines and making sense of large-scale data. Currently a Junior Data Engineer at Quantori, working in the medical sector. Also studying a Master's in AI & Big Data and specializing through 42 Network's Data & AI track.
- Data Engineering
- AI / ML
- Full-Stack Development
Work Experience
- 2026
Data Engineer
CurrentQuantoriFeb 2026 – Present
Full-time position delivering data engineering solutions in the medical sector, where data integrity and compliance are critical.
- Databricks
- Apache Spark
- SQL
- Python
- 2024
FullStack Developer
InternshipTelefónica — Chief Digital OfficeJul 2024 – Jun 2025
Development of web pages for company services with a custom CMS. Led migration from legacy systems to a React & REST API architecture.
- React
- REST APIs
- JavaScript
- TypeScript
- 2024
BIM Web Developer
InternshipINECOFeb 2024 – Jun 2024
Development of internal tools and web pages using Python, JavaScript and Java. Worked on a web-based BIM model viewer and a project management dashboard.
- Python
- JavaScript
- Java
Technical Skills
- Databricks
- Apache Spark
- Apache Kafka
- Apache NiFi
- SQL
- Python
- C / C++
- Java / Kotlin
- JavaScript
- TypeScript
- AWS
- Docker
- Kubernetes
- GitHub Actions / CI·CD
- React
- Next.js
- Node.js
- Django
- FastAPI
- Data Engineering
- AI / ML
- Full-Stack Development
Featured Projects
Minishell
A UNIX shell built from scratch in C that replicates core Bash behaviour: command parsing, pipes, redirections, environment variables, built-in commands (cd, echo, export, unset, exit…), signal handling, and heredocs. The main challenge was understanding how the kernel actually runs processes — forks, exec, file descriptors — rather than just calling a library to do it for you.
Push Swap
Sort a stack of integers using only two stacks and eleven operations (push, rotate, reverse-rotate, swap) in as few moves as possible. Small inputs (≤5) use a hardcoded optimal sort; larger inputs use a greedy algorithm that calculates the cost to insert every element and always picks the cheapest move, with a synergy optimisation that merges simultaneous same-direction rotations on both stacks into a single combined instruction. Typically achieves ~750 moves for 100 numbers and ~6 500 for 500.
WebServ
A fully compliant HTTP/1.1 web server written from scratch in C++. Handles GET, POST and DELETE requests, serves static files with auto-indexing, executes CGI scripts (Python), and supports multiple virtual servers from a single nginx-style config file. I/O multiplexing is done with poll() so a single process manages all connections without threads. Stress-tested with siege.
Gomoku AI
A complete Gomoku (Five in a Row) game engine with a strong AI opponent built on minimax with alpha-beta pruning. The first move is searched to depth 10; subsequent moves to depth 3, reducing the search space from ~590 billion nodes to ~24 million. A pattern-based heuristic scores positions (five-in-a-row = 1M pts, open four = 100k, etc.) and a threat-detection pre-pass handles immediate captures and blocks before the full tree search. Supports standard rules, 42-school rules (double-three prohibition + captures) and a Reversi variant.
Rubber Ducky — DNS Poisoning Demo
A class presentation project demonstrating how a USB Rubber Ducky can be weaponised for credential theft. The payload silently reconfigures a machine's DNS settings so all traffic is routed through a fake login page we controlled. Built to show the attack surface of physical-access threats, not for malicious use.
Get in touch
Let's build something.
Whether it's a project, a collaboration, or just to say hi — my inbox is open.
Contact me