Tech Island
A small 3D map: one zone for my professional work, one for each of three of my projects and a contact point. The rest are on the projects page.
An experimental 3D view of my projects. It will be replaced by an editorial lab of experiments.
Interactive view
The same zones, as a list
On small screens or devices without WebGL, the 3D view is replaced by this list.
The 3D view is not loaded on small screens, so the zones are listed instead.
Back to homeTeam work at AELIS Consulting
Enterprise software
Products of AELIS Consulting, built by its development team, where I work: warehouse management software and solutions integrated with the Sage 200 ERP. They belong to the company.
- I work on them as part of the development team.
- Only this general description is published: no names, code, screenshots, clients or internal details.
Padelium
A mobile-first fantasy padel app with a Spring Boot domain backend and a Flutter client. In beta, paused since May 2026.
Java 21 · Spring Boot 4 · PostgreSQL · Flutter · Supabase · OpenAPI
- Authentication and database on Supabase; scoring and leaderboards in Spring Boot.
- Schema changes through Flyway migrations; integration tests run against H2.
- Beta milestones: authentication, the scoring loop and a seeded leaderboard.
Nido Finance
A personal budgeting and spending-analysis app that replaces a monthly spreadsheet: a React PWA over Supabase. In alpha.
React 19 · TypeScript · Supabase · PostgreSQL · Vite · Playwright
- The schema evolves through versioned SQL migrations, tested with pgTAP.
- Unit tests with Vitest and end-to-end tests with Playwright, in a three-job CI workflow.
- Built with AI agents under a written contract; I review every change before it is merged.
SportStats
A web platform that brings sports data together with a micro-feed and recommends content with TF-IDF and k-NN. Graded 10/10 with honours.
Python · Flask · scikit-learn · MySQL · SQLAlchemy · pandas · BeautifulSoup
- Sports data from API-SPORTS and from World Athletics, behind a disk cache with expiry.
- Recommendations with TF-IDF and cosine k-NN in scikit-learn; the fitted model is persisted with joblib.
- A Flask application over MySQL, with SQLAlchemy.
Contact
Email, GitHub and LinkedIn. Email is the quickest way to reach me.
Email · GitHub · LinkedIn · CV
- The Contact page has the email address with a copy button.
- The CV page covers experience, education and selected projects.