Client work, teaching, products and applied AI: the things built, what was contributed to each, and what can be verified about them.
Who he is, what he studied and how to reach him are on the profile page.
Jun 2026 – Sep 2026
Built and evaluated retrieval, vision and analytics systems over large document, image and record corpora.
Technologies: Python, SQL, NLP / RAG, Deep Learning, TensorFlow, Pandas, NumPy, Model Evaluation, Feature Engineering, EDA.
Sep 2025 – Jun 2026
Ran labs and tutorials, debugged student code live, and taught testing, complexity and clean code.
Technologies: Java, Python, Testing, Algorithms, Debugging.
Jun 2025 – Sep 2025
Led a team of six engineers and designers delivering fourteen production websites, two weeks ahead of schedule.
Technologies: JavaScript, TypeScript, Vue.js, React, Laravel, PHP, MySQL, HTML, CSS, Git, Linux.
May 2024 – Jun 2026
AI-powered educational application that generates personalised short-form learning videos end to end.
Technologies: Python, TypeScript, React, NLP, Deep Learning, Video Rendering, Text-to-Speech, Mobile.
2024 · personal · AI product
An educational application that turns a topic into a finished, narrated, captioned short-form video. A generation pipeline writes the script, synthesises the voice, times the captions, selects the visual format and renders the result — then serves it inside a mobile experience built around the pipeline rather than bolted onto it.
Contribution: Co-founder and developer. Designed and built the generation pipeline and the application around it.
Technologies: Python, TypeScript, React, NLP, Deep Learning, Text-to-Speech, Video Rendering, Mobile.
2026 · personal · Rigged animation system
An exercise system built the expensive way once instead of the cheap way a thousand times: a single rigged 3D athlete, a library of pose and motion data, and a set of adapted gym equipment. Every exercise is a data record that drives the same model, rather than a separate asset — so the library scales without the download size scaling with it.
Contribution: Concept, 3D pipeline, pose-data architecture and application.
Base models loaded: 1. Exercises: configurable.
Technologies: 3D, Rigging, Animation Systems, Swift, Data Modelling, Mobile.
2025 · personal · Computer vision
A computer-vision pipeline that reads a chess position from pixels. One network regresses the board corners out of a full screenshot; a second classifies each of the 64 squares into thirteen classes. The reconstructed position is serialised to FEN and handed to Stockfish, which returns the best move. Training data is synthetic — boards composited onto generated desktops at random positions, sizes and themes, so the detector generalises past any one client.
Contribution: Full pipeline: dataset synthesis, both models, board reconstruction, engine integration and deployment.
Piece recognition accuracy: 99.6%. Synthetic boards generated: 1,200. Piece classes: 13. Board themes simulated: 5. Detector input: 384×384. Classifier input: 64×64.
Technologies: Python, TensorFlow, Keras, MobileNetV2, OpenCV, NumPy, python-chess, Stockfish, AWS EC2, AWS S3, Deep Learning.
2026 · university · Game AI & experiment design
A research project that treats game design as an optimisation problem. A fully parameterised Cinquillo engine exposes 33 named rule variants; Random, Heuristic, MCTS and reinforcement-learning agents play them at scale; and a 16-experiment pipeline measures how much of each outcome is skill and how much is seat order and deal luck. The output is not a bot — it is evidence for which rules make the game fair.
Contribution: Engine, agents, experiment harness and analysis.
Rule variants: 33. Simulation experiments: 16. Games per experiment: 5,000. RL state features: 209. Q-network actions: 42. Replay buffer: 100K. Tests passing: 260.
Technologies: Python, NumPy, SciPy, pandas, matplotlib, seaborn, Flask, pytest, Reinforcement Learning, MCTS.
2025 · personal · Concurrency
Trader threads place market and limit orders against independent per-symbol order books. A matching engine enforces price-time priority, executes crossing orders at the resting order’s limit price, re-rests unfilled remainder, and tracks position and PnL — all while a price engine walks each symbol under a Gaussian random walk and a JavaFX dashboard renders it live.
Contribution: Whole system: order books, matching engine, price engine, threading model and dashboard.
Concurrent trades handled: 40,000+. Price ticks: 5/sec. Trader threads: 4. Symbols: 3. Starting cash per trader: 100,000.
Technologies: Java, JavaFX, Maven, Concurrency, Multithreading.
2026 · personal · Full-stack platform
A full-stack catalogue of motion-graphics work: a filterable public grid with hover previews and detail pages, a public suggestion form, and a private back-office where an editor approves a suggestion into a live record. The interesting parts are defensive — an allow-listed embed builder, a four-gate upload validator, and accent-insensitive search that works identically on SQLite and Postgres.
Contribution: Sole author. Monorepo, API, database design, front-end and admin.
Prisma models: 6. Upload validation gates: 4. Video providers supported: 4. Seeded works: 66. Countries in seed data: 28. Route modules: 15.
Technologies: TypeScript, React, Vite, Node.js, Express, Prisma, PostgreSQL, SQLite, Zod, JWT.
2025 · university · NLP + web application
A job board where the matching is the product. Uploaded CVs are parsed with spaCy and PDF extraction into structured skills; a weighted matcher scores each candidate against each role out of 100, separating required from preferred skills and reporting exactly which required skills are missing. Built by a team of six, with a test suite to match.
Contribution: Team of six. Contributed across the matching engine, CV parsing and application.
Test methods: 333. Skill weighting: 70 / 30. Match score range: 0–100. Team size: 6.
Technologies: Python, Django, spaCy, pdfplumber, PyMuPDF, PostgreSQL, SQLite, Docker, Bootstrap, Selenium, NLP.
2024 · university · Scheduling system
A tutoring scheduling platform with three roles, recurring lesson generation, timetable clash detection and invoicing. The scheduling logic is the hard part: a request expands into a recurrence series, every instance is checked against both tutor and student availability, and conflicts surface before anything is booked.
Contribution: Team of five. Contributed to scheduling, models and test coverage.
Test methods: 366. Migrations: 37. Seeded users: 500. Team size: 5.
Technologies: Python, Django, SQLite, Bootstrap, Faker, Selenium, pytest.
2025 · personal · Physics simulation
A three-body gravity simulator built on a velocity-Verlet integrator with gravitational softening, six named orbital presets, and a live total-energy readout that shows the integrator conserving energy — or failing to, when you push it. Zero dependencies.
Contribution: Sole author.
Orbital presets: 6. Max trail length: 2,000. Dependencies: 0.
Technologies: JavaScript, Canvas 2D, Numerical Methods, Physics.
2025 · personal · Algorithms
Three maze generators and eight search algorithms, all animated on the same grid so you can watch how differently they think. Recursive backtracker, Prim and Kruskal build; BFS, DFS, Dijkstra, A*, greedy best-first and others solve — and the difference between a breadth-first wavefront and an A* teardrop is immediately legible.
Contribution: Sole author.
Search algorithms: 8. Maze generators: 3. Max grid: 120×120. Libraries: 0.
Technologies: JavaScript, Canvas 2D, Algorithms, Data Structures.
2025 · personal · Networking
A working, minimal VPN: a threaded TCP relay on a home machine, a local HTTP proxy on the remote device, and Fernet symmetric encryption on the wire between them. Plus a browser-side detector page that measures whether traffic is actually going through the tunnel.
Contribution: Sole author. Server, client proxy, crypto layer and detector page.
Relay port: 8080. Local proxy port: 8888. Response buffer: 64 KB.
Technologies: Python, Sockets, Threading, Cryptography, Networking, JavaScript.
2025 · personal · Procedural generation
A brute-force seed search over Minecraft’s world generation. Python drives four generated C programs built against the Cubiomes library, scanning ten thousand regions per seed to find worlds where a stronghold sits within 500 blocks of a required set of structures.
Contribution: Sole author.
Regions scanned per query: 10,201. Nether regions per fortress query: 90,601. Structure distance limit: 500 blocks. Minecraft version: 1.21.
Technologies: Python, C, Cubiomes, matplotlib, Make, Procedural Generation.
2026 · university · Learning tool
A whole revision system in one 182 KB HTML file — 188 questions across 14 topics, 83 flashcards, 39 formula cards and eight quiz modes, with progress persisted to local storage and 25 questions explicitly flagged as traps. No build step, no dependencies.
Contribution: Sole author.
Questions: 188. Flashcards: 83. Topics: 14. Quiz modes: 8.
Technologies: JavaScript, HTML, CSS, Web Storage API.
2026 · personal · WebGL
An earlier portfolio experiment: a rigged robot-arm GLB driven by inverse-kinematics-style targeting toward the cursor, lit by image-based lighting and a five-light rig, with an idle sleep pose after inactivity.
Contribution: Sole author.
Rig nodes driven: 7. Shadow map: 4096². Idle sleep threshold: 3.8 s.
Technologies: React, Three.js, WebGL, Vite, glTF.
2024 · personal · web
A hand-written static site — three files, no build step — with English/Spanish switching, dark and light themes, five responsive breakpoints and complete Schema.org, Open Graph and JSON-LD markup.
Contribution: Sole author.
Project cards: 13. Languages: 2. Breakpoints: 5.
Technologies: HTML, CSS, JavaScript, SEO.
2024 · university · web
A small, correct Django application: one model, a strict ISBN validator accepting only 10- or 13-digit values, Faker-driven seeding, and 55 unit tests running in GitHub Actions on every push.
Contribution: Sole author.
Unit tests: 55. Seeded books: 100.
Technologies: Python, Django, SQLite, Bootstrap, GitHub Actions, Faker.
2025 · personal · software
A single page that builds valid Apple configuration profiles entirely client-side — no server ever sees the credentials. Emits correct plist payloads for three VPN protocols and hands back a downloadable .mobileconfig.
Contribution: Sole author.
Protocols: 3. Dependencies: 0.
Technologies: JavaScript, HTML, Apple Configuration Profiles, Networking.
2025 · personal · experiment
The Spanish card game in one 15.7 KB HTML file, with bot opponents and the full adjacency rule set. The precursor to the fairness research project.
Contribution: Sole author.
Deck: 40 cards. Source: 1 file, 15.7 KB.
Technologies: JavaScript, HTML, CSS.
2025 · personal · experiment
The classic game with one rule change that transforms it: each turn you roll a die and must draw exactly that many edges, clamped to what remains. Suddenly the chain strategy inverts.
Contribution: Sole author.
Board sizes: 3×3 – 6×6. Source: 569 lines.
Technologies: JavaScript, Canvas 2D, HTML.
2024 · personal · experiment
Seventy-one lines of code, total. Included here because small things that do exactly one thing are worth keeping.
Contribution: Sole author.
Lines of code: 71.
Technologies: JavaScript, HTML, CSS.
2024 · personal · web
A Vue 3 Composition API app that loads a thousand records in one burst and then does all search, type filtering and paging on the client.
Contribution: Sole author.
Records loaded: 1,000. Cards per page: 100.
Technologies: Vue.js, Vite, Tailwind CSS, axios, JavaScript.
2024 · personal · web
An early single-page prototype for a client site that shipped for real the following summer — six routes, eighteen components, Composition API throughout.
Contribution: Sole author.
Routes: 6. Components: 18.
Technologies: Vue.js, Vite, Tailwind CSS, JavaScript.
2025 · personal · web
A deliberately tiny piece of engineering: 441 bytes of JavaScript that makes a looping video autoplay reliably across browsers, including the ones that refuse until you ask correctly.
Contribution: Sole author.
JavaScript: 441 bytes.
Technologies: JavaScript, HTML5 Video, CSS.
2025 · personal · ai-ml
A declared next project: multiple agent types for Settlers of Catan, a game whose non-determinism and trading make it substantially harder than the perfect-information games above. Listed honestly — the repository is empty.
Technologies: .
2025 · personal · mobile
An Expo Router scaffold, kept in the archive for completeness rather than dressed up as more than it is.
Technologies: React Native, Expo, TypeScript.
2024 · personal · web
A learning scaffold. The one non-trivial thing in it — route-level code splitting — is what the motion graphic shows.
Routes: 2.
Technologies: Vue.js, Vite, JavaScript.
2025 · client · Vocational training
Subsidised employment training centre. Course catalogue, enrolment and centre information.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Education technology
The group’s own agency brand: training management, e-learning and editorial services.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Longevity and aesthetics clinic
Longevity and aesthetic medicine clinic — programmes, services and booking.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Hospitality & tourism school
Centro de Hostelería y Turismo de Canarias — programme listings and school information.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Hospitality training hotel
A working hotel that doubles as a training school — rooms, restaurant and training programmes.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Audiovisual production
Production company and audiovisual/drone training — showreel-led, media-heavy layout.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Catering school
Vocational catering and hospitality training.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Further education academy
Escuela Superior de Enseñanza de Fuerteventura — private training academy.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Employment training & consulting
Vocational training for employment, job placement and business consulting.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Employment training
Subsidised employment training provider.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Employment training
Vocational and employment training courses.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Vocational training
Training centre operating across two islands.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Certified training & e-learning
Certificados de profesionalidad and teleformación (distance learning).
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Fitness & recovery
Personal training and recovery centre — the outlier in an education-heavy portfolio.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Vocational training
Formación profesional para el empleo.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
2025 · client · Real estate
Property sales and investment — multilingual, listing-driven site.
Contribution: Built as part of the site programme delivered by a team of six, led by Alejandro. Front-end build, back-end integration and deployment to private server infrastructure.
Technologies: JavaScript, HTML, CSS, PHP, MySQL, Responsive Design.
01FROM PROJECTS TO PRODUCTSJun 2025 – Sep 2025
Full-Stack Web Developer
Led a team of six engineers and designers delivering fourteen production websites, two weeks ahead of schedule.
02LEARNING BY TEACHINGSep 2025 – Jun 2026
Graduate Teaching Assistant · King's College London
Ran labs and tutorials, debugged student code live, and taught testing, complexity and clean code.
01while (lo <= hi) {02 int mid = (lo + hi) / 2;03 if (a[mid] == key) return mid;04 if (a[mid] < key) hi = mid - 1;05 else lo = mid + 1;06}07return -1;
03BUILDING A PRODUCTMay 2024 – Jun 2026
AI application that generates personalised short-form learning videos end to end.
Co-Founder & Developer
04ONE MODEL, MANY MOVEMENTS
An exercise system built the expensive way once instead of the cheap way a thousand times: a single rigged 3D athlete, a library of pose and motion data, and a set of adapted gym equipment. Every exercise is a data record that drives the same model, rather than a separate asset — so the library scales without the download size scaling with it.
05[ AI / DATA ]Jun 2026 – Sep 2026
AI & Data Analysis Engineer
06SEEING THE BOARD2025
CNNs locate a chessboard on screen and classify every piece, then Stockfish suggests the move.
07CONCURRENCY2025
Multithreaded Java limit-order-book simulator with a price-time matching engine.