Experience

Roles, most recent first
NAMEROLESTATUSSINCEAGE
Balanced Media & TechnologySoftware Engineer (DevOps Lead)CompletedNov 20205y10m
SharePlay InteractiveBackend / DevOps Engineer (part-time contract)CompletedSep 20236m
IndependentSoftware EngineerCompletedJan 202010m
SelfscaleLead Software EngineerCompletedJan 20182y
FreelanceIndependent Software EngineerCompleted201610y

j/k select · Enter describe · / search

Software Engineer (DevOps Lead) @ Balanced Media & Technology

Nov 2020 – Aug 2026 · full-time

Ran DevOps and platform engineering for the Hewmen AI data platform: EKS, CI, IAM and developer environments.

Services:
11
EKS clusters:
prod + 2 staging
Engineers:
12
CI build:
40m → 8m
  • Cut CI builds for the main platform monorepo from 40 to 8 minutes using Docker layer caching and sccache for Rust, without carrying stale artifacts between runs; production deploys stopped taking all day.
  • Software engineer and DevOps lead (senior of two, training the junior engineer into the role) on the Hewmen AI data platform: 11 services on PostgreSQL, MySQL and DynamoDB, with CI and clusters used by 12 engineers across departments.
  • Operated the production and two staging Amazon EKS clusters, plus per-developer environment clusters, all defined in CDK for Terraform in TypeScript (Helm and Kubernetes providers) and deployed through CircleCI with manual approval gates.

full details (17 highlights)

Backend / DevOps Engineer (part-time contract) @ SharePlay Interactive

Sep 2023 – Feb 2024 · contract

Part-time: redesigned a live-streaming product as Rust microservices on Kubernetes and owned its platform and CI/CD.

Streaming:
multi-region
Team:
< 5
Onboarding:
≤ 1 day
  • Replaced a single Node.js application that handled one stream with Rust microservices on Kubernetes (users, content, streams, chat, payments), backed by PostgreSQL and Redis: designed the system and wrote the initial services, including several APIs and the chat server.
  • Replaced a single Node.js application that handled one stream with a multi-user, multi-region platform of Rust microservices on Kubernetes (users, content, streams, chat, payments) on PostgreSQL and Redis, on a team of fewer than five: designed the system and wrote the initial services, including several APIs and the chat server.
  • Took the product from a single stream to a multi-user, multi-region streaming platform on Kubernetes, on a team of fewer than five.

full details (8 highlights)

Software Engineer @ Independent

Jan 2020 – Oct 2020 · full-time

Full-time independent engineering between Selfscale and Balanced Media.

  • Full-time: designed and built server software, APIs and tooling in TypeScript, JavaScript and Lua for online communities running 200+ concurrent users; published fivem-webbed, an Express-style HTTP router, as open source.

full details (1 highlights)

Lead Software Engineer @ Selfscale

Jan 2018 – Dec 2019 · full-time

Built a truck weigh-in product end to end as its only software engineer, from RS232 scales to the cloud.

Pipeline:
RS232 → cloud
  • Sole software engineer, working directly with the founder: designed and built a truck weigh-in product end to end and deployed it at a live customer site, giving operators real-time access to weigh-in data from the cloud.
  • Wrote the C++ and Python firmware that reads RS232 truck-scale output on a microcontroller, the Go backend on MySQL, a Vue and TypeScript web front end and a Vue mobile app.
  • Deployed the system at a live customer site, giving operators real-time access to weigh-in data from the cloud.

full details (3 highlights)

Independent Software Engineer @ Freelance

2016 – 2025 · freelance

Independent server software, APIs and tooling for online communities.

Concurrent users:
200+
  • Took on server software, API and tooling projects alongside full-time roles.
  • Published open-source tooling, including fivem-webbed, an Express-style HTTP router.

full details (2 highlights)

try about, experience, projects, stack, contact, neofetch · gui or ` to switch back · Esc for vim keys

NORMAL

*aethyriion-help.txt* keys work everywhere

Mouse and Tab work as usual. Vim keys are an extra, and :set nokeys (or the vim toggle in the title bar) turns them off. Vimium users: add an exclusion for aethyriion.dev.

move

jk
down / up (counts work: 5j)
hl
previous / next pane
ggG
top / bottom (3G = 3rd item)
C-dC-u
half page down / up
]][[
next / previous section
HML
top / middle / bottom of screen
zz
center the cursor

tabs & pages

1…5
jump to tab
gtgT
next / previous tab
-
up one directory
rcp
résumé / contact / projects

act

Entero
open the selected item
O
open in a new browser tab
fF
link hints (F = new tab)
yy
copy link of the selected item
yeyu
copy email / page URL

search & commands

/
search this page (smartcase)
nN
next / previous match
:
command line (Tab completes)
i
terminal mode (type commands)
`
toggle GUI / terminal mode
?
this help
Esc
cancel / close / back to NORMAL

ex commands (also typed in the shell without the colon)

:e projects
open a page (Tab completes)
:colo amber
switch theme
:set nocrt
turn scanlines off (nomotion, nokeys, sfx)
:help
this screen · :checkhealth · :version
:hire
you know what to do
all 26 commands
help [topic]
List commands (`?` shows the key bindings) (h, man)
cd <page>
Open a page in the GUI: about, experience, projects/<name>, stack, contact, resume (e, open, cd)
cat <file>
Print a section here: about.md, experience, projects, stack.nix, contact.toml (less, bat)
gui
Back to the GUI view (or press `) (exit, logout, startx)
ls
List pages (ll, la, tree)
home
Go to ~/README.md (readme)
about
Who I am (bio, whois)
experience
Work history (exp, work)
projects
Things I've built (proj, repos)
stack
Skills and tools (skills)
contact
How to reach me (links, socials)
resume
Résumé (HTML + PDF) (cv)
tabn / tabp
Next / previous tab (tabn, tabnext, tabp, tabprevious)
colo <name>
Switch theme: aethyr, green, amber, dracula, mono (colo, theme)
set [no]crt|motion|keys|sfx
Toggle effects, motion, vim keys, sound; theme=<name> (se)
whoami
Print the short version
neofetch
System info (fastfetch, fetch)
gh[!]
GitHub profile (gh! opens it) (gh)
email
Copy my email address (mail)
hire
kubectl apply -f offer.yaml
matrix
Wake up, Neo (cmatrix)
terminal
Switch to terminal mode (or press i) (cli, shell, term)
clear
Clear the shell (cls)
history
Command history
version
Build info and credits (ver)
checkhealth
Site health report