Game design Cyber security

Building worlds / Defending systems

michael@tot:~/portfolio$ ./whoami --verbosePersonnel file · No. 0026-MTClass · Senior systems engineer

Michael Tot

Senior systems engineer · Game design × cyber security

scope: live multiplayer servers · status: open to full-time or retainer

Available

Current quest Find a long-term team. Reward: years of hard problems.

I build the systems that have to survive real players.

I’m Michael Tot, a senior systems engineer. I design, build and own whole systems for the long term: the security, the architecture and the logic underneath. I’m at my best hunting exploits, designing systems that hold up against them, and rescuing legacy code.

I’ve been coding since I was six and doing paid work since I was thirteen, mostly in C# and Lua. For over two years I’ve been the sole developer at Diverge Networks, one of the largest Garry’s Mod roleplay communities: over 700 commits, from spec to production. I work long-term and remotely, full-time or on retainer.

Dev server · test data

Forensics · live since December 2024

A body that survives restarts and map changes, and still tells the detective how the person died: wounds, time of death, the weapons they carried.

Full case study →

How I got here

  1. Age 6

    Started coding in PAWN, editing San Andreas Multiplayer server files on my brother’s computer. Self-taught, through the games I played.

  2. Age 11

    My first contract: a full custom gamemode for a large multiplayer server.

  3. Age 13

    Paid Lua work through the Garry’s Mod marketplaces, and teaching programming one to one. My current client was once my student.

  4. Age 18

    Hired as the long-term developer for one of the largest Garry’s Mod roleplay servers, within days of putting myself back on the market.

  5. Age 20

    Bought that server and ran it as owner, sole developer and head of staff, with a community manager I hired and paid. Later sold it, and kept working as an independent developer until Diverge.

  6. Now

    Sole developer at Diverge Networks, and open to a full-time security or architecture role, or a few more long-term clients.

What I do

Own whole systems

I work out what the parts are, what each one does and how they fit, write it down, then build it and keep it healthy for years. A quick prototype comes first when a design needs proving.

Hunt exploits

I read a system the way an attacker would: trust in client data, race conditions, abused staff tools. Then I close the gaps on the live system, without taking it down.

Rescue legacy code

Inherited, half-finished or tangled code is where I’m happiest. Sometimes that means finding the one clean fix. Sometimes it means rebuilding it into something the next person can maintain.

Design how it feels

I design how a system should feel to the players who use it and the designers who tune it, and direct the interface work. I direct AI-assisted implementation the same way: the architecture and the review stay with me.

Deep
C#, Lua (GLua)
Also
Python, C++, GDScript, PHP
Engines and platforms
Garry’s Mod (Source), Unity (including ECS modding through IL2CPP, BepInEx and Harmony), Godot, XNA
Data
MySQL, PostgreSQL, MongoDB
Reverse engineering
Ghidra, IL2CPP games, reading assembly and C

Selected work

Five case studies from over two years as the sole developer at Diverge Networks, one of the largest Garry’s Mod roleplay communities. Ember edges mark game systems, cyan edges mark security and infrastructure. Screenshots and footage are being added.

Live

Hardening a live economy

Finding and closing the ways players duplicated, teleported and forged things in a player-driven economy, without taking the server down.

Lua (GLua), NutScript, MySQL

Live

Warrants and criminal justice

Arrest warrants, criminal records, felonies, bail and appeals, with Discord and pager integration and server-side checks on every action.

Lua (GLua), MySQL, Discord webhooks

Live, parts in testing

Legacy rescue on a live server

Phones and radios rebuilt from scratch, every plugin moved onto MySQL, equipment that can’t lose items, and a trunk migration that moves every player’s storage without losing a thing.

Lua (GLua), NutScript, MySQL

Built, in testing

Brewing, aging and intoxication

The design piece: a brewing barrel with designer-tuned odds, aging modelled as bell curves over time, and a blood-alcohol model the police can test for.

Lua (GLua)

More from Diverge

Live

Faction conflict events

Scheduled PvP events for rival factions, with admin menus, persistent scoring and fair scaling as player numbers change. King of the Hill is in progress.

Lua (GLua), MySQL

Retired

Plugin hot reload

A plugin-level hot reload that took the twenty-second reload freezes out of my workflow for four months, and what I learned retiring it.

Lua (GLua), NutScript internals

My own projects

In progress

Luminol, a GLua deobfuscator

A C# tool for auditing Garry’s Mod addons: it rewrites obfuscated Lua through its syntax tree, pass by pass, and will flag suspicious behaviour.

C#, .NET 11, Loretta (Lua parser)

Released openly

Dojo Arena, a V Rising server mod

A PvP arena mod that ran a public server for six months: my command framework, plus game rules patched into Unity ECS through IL2CPP.

C#, BepInEx, Harmony, Unity ECS

Finding the weak point first

When I started university, I found vulnerabilities in the school’s website and walked the administrator through them so they could be fixed. I didn’t touch anything. I just showed them.

That’s still how I work. On a live server, players hunt for exploits every day, so I read a system the way an attacker would, then close the gaps before anyone else finds them. CTFs keep that instinct sharp, and I’m building Luminol, a deobfuscator for auditing Garry’s Mod addons.

How I hardened a live economy →

Found, fixed and shipped

  • Players could duplicate items through a timing gap in crate pickups. Items are now reserved before the asynchronous work and refunded on failure.
  • Networked event data revealed enough to cheat a live PvP event. Fixed with a patch built to go onto the live server straight away.
  • A fingerprint card’s hidden data could be edited from the client. Edits now only accept known fields and are stored on the server.
  • The server accepted a faction ID sent by the client when moving characters between factions. It now checks the ID against its own data.
  • Record edits only accept IDs the server already showed that player, so changing an ID in the request does nothing.
  • An exploit through a context-menu action removed weapon recoil. Closed.

How I work

Long-term, not hourly. A full-time role on a security or architecture team, or a retainer with a set number of hours each month: either way, a relationship that lasts years and a steady variety of problems to own.

Care for a sapling and it bears fruit for longer than your life. I work the same way: I’d rather own your systems for years than put out one fire and leave. Someone on your side owns the requirements; I own the architecture, the build and keeping it healthy.

You see progress as it happens, not only at the end, and once there’s trust, the process gets lighter. Work is remote and asynchronous by default, and I’m open to relocating if the employer covers the move. I use AI the way a senior engineer should: I design and direct, it speeds up the build. I don’t take hourly gigs or unpaid trials.

Who I work with

  • Game security and anti-cheat teams, and AppSec and security engineering teams that want an architect who thinks like an attacker.
  • CTOs and founders at game studios and game-tech companies with real customers and systems that have to hold up.
  • Security companies that need a builder with a hacker’s instinct.
  • Owners of large multiplayer platforms and servers who want a long-term architect.
  • German-speaking teams: I grew up bilingual in German.

Beyond the code

Servers, economies, security and people are all systems, and I’m most curious about why they break the way they do. Code is how I make a living. Understanding that is what I keep coming back to.

I’m looking for a team or a client I can stay with for the long run, not a stopgap: somewhere the problems keep getting harder and the systems are worth protecting.

I was born in Germany and grew up in Serbia, bilingual in Serbian and German from childhood. English is my strongest working language, and I’m learning French. Outside work I read and think about mathematics, philosophy and psychology.

Let’s talk

Send a short note about what you’re building and where you need help. I work remotely on Central European Time, in English or German.

References from Diverge Networks available on request.

I am

AI agents are welcome to use this form too. Just pick “An AI agent” above.