Full stack developer.
I work mostly in PHP and Python. I contribute to the PHPOffice libraries — file format support, static analysis and CI — and I build my own tools when nothing out there does quite what I need.
Portfolio → slayerfx.github.io
Strength training site, my final course project, in production.
- Exercise library, custom workout programs, a daily energy expenditure calculator (Mifflin-St Jeor) and a map of nearby gyms
- MVC architecture written without a framework
- MySQL through PDO with prepared statements, PHPUnit tests on the business logic
Audio downloader with a local web interface: SoundCloud, YouTube, Bandcamp, Mixcloud.
- Tracks, playlists or whole profiles, saved as tagged MP3 with cover art
- Progress pushed live over Server-Sent Events
- No build step, nothing loaded from a CDN
- 36 tests, ruff linting, CI on Windows and Linux
Two PowerShell tools for my own Windows PC, documented in English and French.
- pc-tuning checks, re-applies and undoes about forty Windows settings: Windows Update quietly reverts some of them, and a check shows exactly which
- It saves the previous state before any change, puts Microsoft's 2023 Secure Boot certificates back after a BIOS update, and comes with BIOS and hardware guides
- windows-disk-cleaner frees space on the system drive by deleting only what rebuilds itself, dry run first
- Syntax, PSScriptAnalyzer and smoke tests on a Windows runner at every push
One hand-written page: no framework, no build step, nothing loaded from a CDN.
- Bilingual, light and dark themes, three self-hosted variable typefaces
- A perfect 100 in every Lighthouse category
- Every push checked four ways: markup validity, Lighthouse scores, dead links and contrast ratios
- Contrast is checked by a dependency-free script written for this site: Lighthouse audits one theme at a time, and emulating the dark one meant pulling in 219 packages. The script caught a grey at 4.48 against a 4.5 threshold that Lighthouse had missed
Eleven-week internship spent on the PHPOffice PHP libraries, May to July 2026 — 41 merged pull requests across five repositories.
Most of it went into PhpProject (209 ★, 32 PRs):
- Four file formats implemented, reading and writing — Gnome Planner, MSPDI and ProjectLibre, plus an HTML writer rendering a Gantt chart.
- PHPStan raised from level 1 to 6, one level per pull request, alongside
declare(strict_types=1)and typed signatures across the source. - CI migrated from Travis to GitHub Actions — extended PHP matrix, PHPStan job, samples execution check, code coverage, Dependabot.
- Documentation migrated from Sphinx to MkDocs, then to ProperDocs.
The remaining nine went to the other four libraries:
| Project | PRs | Contributions |
|---|---|---|
| PHPPresentation · 1.4k ★ | 3 | Coverage under PHPUnit 10+, minimum PHP version raised, version guard on imagedestroy() |
| Common | 3 | PHPStan up to level 7, PHPStan 2.x support, PHP 8.5 in the CI matrix |
| PHPWord | 2 | PHP 8.5 support, PHPUnit constraint fixing the test suite |
| Math | 1 | PHP 8.5 in the CI matrix |



