Most of what I write is systems software: small tools that live in the terminal and sit close to the operating system, almost always on Linux. I like knowing what happens underneath, and I notice when a program burns more than it should.
I finished my degree in July 2026 with a thesis on optimising Vision-Language-Model Action pipelines, after an internship at the university's Computer Science department working on how well VLM agents reason about indoor navigation. Looking for my first software engineering role, in Verona or remote.
| Project | What it does | Stack |
|---|---|---|
| dns-switcher | Switch system DNS from a TUI, with a latency test before you commit. Event-driven, so it idles near 0% CPU. Packaged on the AUR. | Rust |
| LC-3 processor | The CPU above: datapath, control FSM, ALU, register file, verified at RTL. | SystemVerilog |
| LiteFTP | FTP client and server in one package, both dual-pane in the terminal, speaking the protocol over sockets. Published on PyPI. | Python |
| gotodo | Task manager in the terminal, built on the Elm architecture with Bubble Tea. | Go |
| javafx-icon-utils | Loads, resizes and recolours icons on JavaFX controls through one call, with a cache behind it. Unit tested. | Java |
| TetrisTUI | Tetris inside a terminal: game loop, character rendering, ALSA music and a local leaderboard. | C99 |
Counted straight from the GitHub API by
tools/gen_stats.py and redrawn by a nightly workflow.
