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 / macOS
A 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.
Daily driver / ThinkPad T14
This is the desktop I actually use: Arch, Hyprland, and Quickshell with twelve panels, a live settings app, safe dotfile updates, and no monitoring daemon between the UI and /proc.
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.