Projects
Systems I have designed, built, or run. Each case study covers the problem, the architecture, the decisions, and what I personally worked on.
| Project | What it is | Built with | Role |
|---|---|---|---|
| Universe | One JAR. The whole cluster. | Kotlin, Ktor, Hazelcast, Gradle, Docker | Architecture and core implementation |
| Reloop | Open-source email infrastructure you can self-host. | TypeScript, Bun, Next.js, PostgreSQL, Docker | Software Engineer, Backend |
| LunarShell | A hardened shell environment for Linux servers, installed in one command. | Bash, zsh, Starship, OpenSSH, systemd | Author |
| Clover Client | Backend for a cross-platform Minecraft launcher. | PostgreSQL, S3, CloudFront, Discord OAuth, REST | Software Engineer, Backend and REST API |
Universe
One JAR. The whole cluster.
A single-JAR orchestrator that deploys and manages application instances across a cluster of nodes. The same artifact runs as the master or a wrapper, cluster state lives in embedded Hazelcast, and one template deploys to screen, tmux, Docker, or Kubernetes.
Control
- Operator CLI · HTTP · WebSocket console
- Templates versioned file trees · local, S3, Git
Master
- Ktor REST + WS :7000 bearer auth · rate limiting
- Cluster state Hazelcast IMap
Cluster
- Hazelcast :6000 peer to peer · IExecutor task dispatch
Wrappers
- Wrapper × N same JAR, role set by config
- Runtime screen · tmux · Docker · Kubernetes
Reloop
Open-source email infrastructure you can self-host.
My work sits where the application meets the machine it runs on: the installer and proxy in front, the SMTP relay and DNS verification underneath, and the log lines that must never contain a secret. This is the merged record, newest first.
- #139 delivery stop the smtp relay corrupting MIME boundaries that end in =
- #138 self-hosting support running the self-host install behind an existing reverse proxy
- #135 delivery deliver system email in production instead of falling back to Mailpit
- #134 auth allow a separate internal origin for session validation
- #133 delivery make the system email name configurable with APP_NAME
- #132 operators show the configured SMTP hostname in the dashboard
- #131 auth close registration across every sign-up path
- #130 dns make the verification DNS resolvers configurable
- #129 security keep OTPs and DKIM private keys out of logs
- #128 self-hosting serve the self-host installer at /install.sh
- #110 self-hosting self-host installer for a fresh VPS
LunarShell
A hardened shell environment for Linux servers, installed in one command.
curl --remote-name -fsSL https://shell.lunarshell.dev/install.sh && bash install.sh - Shell
- zsh with a Starship prompt and hardened shell configuration
- Login
- a system-status MOTD rendered from
/etc/profile.d/sshmotd.sh - Security
- hardened SSH configuration and strict firewall rules
- Tools
- sysstat, htop, fastfetch, jq, figlet
Clover Client
Backend for a cross-platform Minecraft launcher.
Clover is a Minecraft launcher and client for Windows, macOS, and Linux. I built its backend and REST API: accounts with Discord OAuth, PostgreSQL, and asset delivery through S3 behind CloudFront. Shipped through private beta.
Older and smaller work lives on GitHub, including Voyager, a deployment platform split across a Rust backend, a TypeScript frontend, and a Discord API service.