Software developer training at 42 Porto, qualified programming technician through IEFP. I work close to the machine — C, Python, SQL and Linux — and I like the problems where the difficulty is in the system, not in the CRUD: concurrency, schedulers, graphs, constrained generation.
Three projects shipped to production, as full-stack developer and coordinating development. Based in Porto, Portugal.
◈ Codexion — concurrency in C
Worker threads competing for shared resources, coordinated with pthread mutexes and condition
variables. FIFO and EDF schedulers, deadlock prevention through all-or-nothing resource
acquisition, and a monitor thread that detects stalls past a time limit. Built and checked under
ThreadSanitizer.
c concurrency multithreading pthreads scheduler deadlock-prevention
◈ call_me_maybe — structured output from LLMs
A Python SDK for talking to language models and getting back schema-valid output, with function calling on top. Constrained decoding applied to a small 0.6B-parameter model, where there is no room to rely on the model behaving.
python llm function-calling structured-output constrained-decoding
◈ azul — full-stack app, in production
A mobile-first reading journal: sagas, books, and annotations for characters, places, objects and
vocabulary, all cross-referenced through @mentions. React + Vite frontend against a
Django REST API, deployed on my own VPS behind Nginx.
react vite django django-rest-framework rest-api pwa
◈ fly-in — routing over a graph
Drone routing simulator: given a map of connected zones with capacity limits and entry costs, it
moves every drone from the origin hub to the destination in as few turns as possible, with all
drones advancing simultaneously. Pure Python, fully object-oriented, no external graph libraries,
flake8 and mypy --strict clean.
python algorithms graph pathfinding simulation oop
◈ a-maz-ing — maze generation and visualization
Procedural maze generator with DFS and Wilson's algorithm, rendered in an interactive window.
The generation core is a standalone, reusable Python package. Every maze hides a 42 pattern in
its walls.
python algorithms maze-generator dfs wilson-algorithm
◈ Python-Modules — the 42 Python Piscine
All 11 modules: OOP, exceptions, data structures, file I/O, packaging, design patterns, Pydantic validation and functional programming.
python oop design-patterns pydantic functional-programming
◤ 42 foundations — the low-level groundwork (click to expand)
| Repo | What it is |
|---|---|
| libft | My own C standard library: strings, memory, linked lists |
| ft_printf | printf reimplemented, variadic arguments and format conversions |
| get_next_line | Reading a file line by line with static variables and a buffer |
| push_swap | Sorting a stack with a limited instruction set, in as few moves as possible |
| Born2beroot | Hardened Debian server: password policy, sudo rules, UFW, secured SSH |
| Piscine_C | The full C Piscine: pointers, strings, recursion, dynamic memory |
| Piscine_Reloaded | 28 exercises revisiting every core concept, shell through file I/O |
Languages — C · Python · SQL Backend — API design, Spec-Driven Development, relational databases Systems — Linux, server administration, production deployment Frontend — HTML, CSS, React Tools — Git, AI-assisted development
Spanish (native) · Portuguese C1 · English B2
C · PYTHON · SQL · LINUX · 42 PORTO