Hi, I'm Gabin. Online as Opperiesen.

Gabin
Longoni

I keep systems running by day. After hours, I build overly specific tools for whatever I'm into.

Online as
Opperiesen
Day job
Systems administrator
After hours
Code, racing & games
Known for
Taking side projects too far

01 / Me

Mostly systems, side quests and games.

Day job

Keep it running

Windows, Linux, automation and the occasional mess that needs untangling.

Side quests

Build what I miss

Most projects start with “surely this already exists”. Sometimes it doesn't.

After hours

Learn the system

Racing lines, football tactics and game economies. I like hobbies with something to figure out.

02 / Made

These ones made it out of my head.

01 Live

vim-quest

I kept forgetting Vim commands. Cheat sheets weren't helping.

So I built the practice loop I wanted: real commands, scored keystrokes, bosses and a dojo that brings back what I get wrong.

vim-quest tested

106levels

30dojo families

129/129cases matching real Vim

file:// · no build · no dependencies

02 Live

linux-quest

I wanted Linux basics to feel like using a shell, not reading a glossary.

So I built the full practice path: a safe shell, 24 focused chapters, one boss per category and manuals for every simulated command.

linux-quest simulated

144missions

107command manuals

0host access

24 bosses · tested solutions · Tab-complete

03 Private

unifi-tools

My home network was becoming a pile of clicks I couldn't reproduce.

So I gave the gateway a Python CLI and a proper export, plan and apply loop. Much easier to trust.

unifi-tools powershell

uv run scripts/export_config.py --out config/network.yaml --force

uv run scripts/apply_config.py --plan

uv run scripts/apply_config.py --apply

export → plan → apply

04 Private

mpp-predictor

Everyone guesses football scores. I preferred to make the bookmakers do the maths.

Market odds go in. Shin probabilities, Dixon-Coles and expected MPP points come out. Then I still blame the model.

mpp-predictor model

market oddsShin probabilities

goal modelDixon-Coles

every scoremax E[MPP points]

E = P(exact) × points + P(result) × points

03 / Patterns

A few things I keep doing.

Automate it on the third time.

The first time is discovery. The second is confirmation. By the third, I'm writing a script.

Make it obvious.

Future me should be able to open it six months later and understand what's going on.

Polish the one-off.

I know it only needs to work once. I'll still fix the spacing.

Know when to kill it.

Dead project, deleted infrastructure, useful lesson kept. No guilt.