Start with the mess
Work out the data, failure cases, and who has to maintain it before choosing the clever part.
alex@fiw:~ $ cat about.txt
I build a Wayland desktop, a programmable configuration language, macOS tools, and Minecraft server mods. Most of my projects start as something I wanted for my own machine or server, then grow until they are useful to somebody else too.
01 / About
I care more about the whole machine than winning an argument about one language.
Some weeks I am building a Minecraft framework. Other weeks I replace half my desktop shell or add something unnecessary to the mini PC under my desk.
My projects jump between low-level desktop work and data-driven server tools, but the part I enjoy is the same: turning rough pieces into something I can run and maintain myself.
Linux, systemd, Docker, Traefik, backups, and CI pipelines are familiar territory. I like hot reload, readable config files, updates that can fail safely, and logs that say what went wrong.
I write Bash, Go, Lua, and Python directly, and modify Java. For heavier Rust, Swift, Kotlin, TypeScript, and QML builds, I direct AI agents, then own the design, review, testing, and integration.
Work out the data, failure cases, and who has to maintain it before choosing the clever part.
If I have to do it twice, it probably needs a script, an installer, or a CI job.
Reboots, bad input, old versions, and my own mistakes are normal operating conditions.
02 / Work
Public repositories, installable mods, and rougher ideas that started on my own machines.
Wayland compositor / Rust
A Wayland desktop that feels like water, built in Rust on Smithay. Under the ripples, wave transitions, glass, shadows, and window sway is a real tiling compositor with multi-monitor, XWayland, IPC, screencasting, and two spatial engines you can switch live.
Core systems
A readable, embeddable configuration framework: declarative for simple files, programmable when repetition or conditions appear. It combines typed values, precise diagnostics, built-in schema validation, a canonical formatter, and sandboxed Lua—with no filesystem, network, or process access by default.
Current interface / macOSA native macOS media workbench: convert, download, edit, and compose media in one focused app. FFmpeg, yt-dlp, and Apple Vision underneath, pre-flight checks that explain failures before a job ever starts, and everything processed locally.
Arch · Hyprland · QuickshellMy daily Arch desktop, built around Hyprland and Quickshell. Twelve native panels, one live settings surface, recoverable dotfile updates, and direct system telemetry without another monitoring daemon in the middle.
Framework / Java
A JSON-driven, multi-loader boss framework with HP phases, custom minions, dialogue, loot, hot reload, and more than 50 configurable abilities.
Framework / Kotlin
Server-side custom weapons, armor, crafting, curses, set bonuses, charges, and abilities built entirely through JSON. Vanilla clients can connect.
Security tooling
Nonce challenges, mod signatures, resource-pack auditing, and honest limits across six loader/version targets.
Java / SHA-256 ↗Reliability
Packet-only grave markers, world-native persistence, rollback history, and a second loot safety net.
Java / Packets ↗Server operations
Maintenance mode, lag watchdog, entity sweeping, vanish, freeze, and item bans in one lightweight admin mod.
Fabric / NeoForge ↗Published on Modrinth
Every mod above (plus Warp, Graves, and Tickwatch from the archive) ships through one Modrinth profile — same JSON-config philosophy, same hot reload, across Fabric, Forge, and NeoForge.
03 / Repositories
04 / Tools
Kitty on a MacBook Air M4 is the main console, SSH'd out to the Arch desktop, ThinkPad T14, and Ubuntu server for everything else.
Home turf
Ship + operate
Build surface
Learning next
I am learning these when a real problem gives me a reason, not just to collect more logos.
05 / Contact
Linux, infrastructure, self-hosting, Minecraft tooling, or a strange project you cannot stop thinking about are all good reasons to message me.