pawful.dev

Emily "Luna" Gurnee

I build the software that runs services and the infrastructure that keeps it running: backend systems in Kotlin and TypeScript, an orchestrator for game server fleets, email delivery infrastructure at Reloop, and the Linux hosts under all of it, down to DNS and firewalls.

Read the work Resume (PDF) Email

Work

Systems I have designed, built, or run. Two are shown in depth below.

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.

Universe architecture: One JAR, two roles. The master owns the API and cluster state; wrappers pull tasks from the Hazelcast cluster and run instances on whichever runtime the template names.

One JAR, two roles. The master owns the API and cluster state; wrappers pull tasks from the Hazelcast cluster and run instances on whichever runtime the template names.

Read the Universe case study

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.

  1. #139 delivery stop the smtp relay corrupting MIME boundaries that end in =
  2. #138 self-hosting support running the self-host install behind an existing reverse proxy
  3. #135 delivery deliver system email in production instead of falling back to Mailpit
  4. #134 auth allow a separate internal origin for session validation
  5. #133 delivery make the system email name configurable with APP_NAME
  6. #132 operators show the configured SMTP hostname in the dashboard

Read the Reloop case study All PRs on GitHub

Experience

When Where What I did
to Reloop Software Engineer, Backend

Email delivery infrastructure and self-hosting

Built the self-host VPS installer and reverse-proxy support, made verification DNS resolvers configurable, moved system email onto production delivery, fixed the SMTP relay corrupting MIME boundaries, and kept OTPs and DKIM private keys out of logs. TypeScript on Bun, PostgreSQL.

GitHub

to Sona Interactive LLC COO

Studio operations for Clover Client

Operations and engineering direction for the studio behind Clover, a cross-platform Minecraft launcher.

GitHub

to Clover Client Software Engineer, Backend and REST API

Accounts, API, and asset delivery for a Minecraft launcher

Backend and REST API for a launcher on Windows, macOS, and Linux: PostgreSQL, S3 behind CloudFront for asset delivery, Discord OAuth for sign-in. Shipped through private beta.

to Darkless LTD Director and Lead DevOps

Bare-metal, VPS, and game server hosting

Runs hosting on owned hardware in North Carolina and Dallas. Provisioning with Terraform and Ansible, monitoring, and security operations across the fleet.

to Scala Studios VP and Co-Director

Infrastructure for large Minecraft networks

Kotlin and Java services on Paper and Velocity, MongoDB and Redis persistence, Kubernetes deployments, cross-proxy player state coordination, and JVM performance work for high-traffic networks.

GitHubliftgate

to LunarLabs LLC Founder and COO

Software studio and home of Universe

Builds and maintains client websites and internal tooling, and develops Universe, the single-JAR cluster orchestrator.

to Refine Development Developer

Premium Minecraft server software

Plugin development on the Paper ecosystem, including Phoenix, Bolt, Carbon, and Radium, a performance-focused Paper fork.

GitHub

to JasmeowSystems Systems Administrator

Managed Linux administration for clients

Client Linux fleets: uptime and resource monitoring with webhook alerts, hardening with UFW, IPTables, and Fail2Ban, SSH logging, and rclone backups.

Expertise

Domain In practice Tools
Backend engineering Services on the JVM in Kotlin and Java, TypeScript on Bun and Node, plus Go and Rust where they fit. REST and WebSocket APIs, auth flows, and the data layers behind them. Kotlin, Java, TypeScript, Go, Rust, REST, WebSockets, OAuth
Infrastructure and platform Containerized workloads on Kubernetes and Docker, LXC where a full cluster is overkill, and the automation that provisions and ships them. Kubernetes, Docker, LXC, Helm, Terraform, Ansible, CI/CD, GitOps
Linux and systems Day-to-day operation of Ubuntu, Debian, Enterprise Linux, and Arch hosts: systemd services, SSH hardening, bare metal and VPS fleets, and the tooling that keeps them consistent. Ubuntu, Debian, EL8/EL9, Arch, systemd, SSH, Bash
Networking DNS from records to resolver behavior, firewalls, reverse proxies and load balancing, and mesh networking with Tailscale for private infrastructure. DNS, Firewalls, Nginx, Caddy, Load balancing, Tailscale, Cloudflare
Data and messaging PostgreSQL as the default, MongoDB and Redis for game state and caching, NATS for messaging, and S3-compatible object storage for assets and templates. PostgreSQL, MongoDB, Redis, NATS, S3-compatible storage
Observability Metrics and dashboards for services and hosts, with alerting wired to the people who need to act on it. Prometheus, Grafana, InfluxDB, Uptime monitoring, Alerting
Developer tooling Installers, CLIs, shell environments, and bots that remove repetitive work. If something pages twice, the fix is a tool. CLIs, Installers, Shell tooling, Discord bots, Automation

About

I have run Linux servers for a living long enough that I trust a well-written systemd unit more than most dashboards. I have also been in Minecraft since it launched, which is how a hobby turned into a career in game infrastructure, and then into backend work generally.

I like the whole stack, not as a slogan but because the bugs live in the seams: the resolver the app did not expect, the proxy that strips a header, the kernel setting nobody changed. I would rather understand the layer underneath than route around it.

I build tools out of productive laziness. If something pages me twice, the fix is a script, a CLI, or a bot, and it usually ends up open source. Off the clock: space, and the kind of documentation that explains why.

Contact

Hiring for backend, infrastructure, platform, or systems work, or want to talk about orchestration and email delivery? Email is the fastest way to reach me.