I am a software developer with some background in computer science, mathematics and physics, and a lot of curiosity.
Since I am currently applying for jobs and haven't spent much time in the conventional job market, I am putting together a selection of personal projects that I have worked on over the years. I am revisiting and polishing them for presentation, then publishing each project here as hopefully a single release commit per project. See the table below for orientation:
| Project | Description | Technologies | Origin/Context | Status |
|---|---|---|---|---|
| Fourier Garden | Interactive Fourier/signal explorer | Haskell, Brick/Vty, Cabal, QuickCheck, GitHub Actions | Physics background, a love of Haskell, and studying for the German amateur radio Class A licence. | Published |
| git-tape | Structured Git history generator (pixel-art) | Git, Python, pytest/Ruff, GitHub Actions | An experiment in the limitations of GitHub activity as a developer metric. Contribution graphs are highly gameable and say little about the quality or significance of the work behind them. git-tape makes that arbitrariness visible by treating commit history as a programmable canvas. | Published |
| Inverse Lab | Computational imaging experiments | Python | Coming soon | |
| Rayleigh | Neural variational Schrödinger solver | C++17, CMake/CTest, clang-format, GitHub Actions, Python/NumPy/Matplotlib | Revisiting a long-standing interest in neural networks and machine learning, together with earlier university coursework and Schrödinger-related numerical work, as a way to refresh some of that knowledge. | Published |
| Three Color | Planar graph-colouring puzzle | Java 21, Spring Boot 4, Gradle, JUnit/jqwik, JMH, Svelte 5/TypeScript, Playwright, Docker, GitHub Actions | Enthusiasm for graph-theory turned into a full-stack experiment in procedural generation, exact search, explainable reasoning and difficulty modelling. | Coming soon |
I am always happy to talk through the ideas, implementation details, and tradeoffs behind these projects.