wh1ter0se

Freelance systems developer

Freelance systems developer. I work close to the metal: networking, engine internals, backends, and the security work that goes with all three. Nine years of it, starting at fourteen.

The through-line is verification. Signed releases, build identities that refuse a mismatch instead of hoping, and update paths that fail closed rather than guess.

Work
Freelance, contract
Side role
Head of cyber security, Betarabia
Focus
Systems, networking, backends, offensive security
Stack
C++, Node, Next.js
Platforms
windows  macos  linux  ipados
Based
Lebanon

Work

Neither of these products is mine. The work in them is. That is what contract work looks like, and it is most of what I do.

The Z Connect

thezconnect.com

A student network built around a single card: campus discounts, mentorship and opportunities in one membership, with the partner and branch tooling behind it.

I develop and maintain it for the people who own it. Next.js and Node on the front, Prisma over Postgres underneath.

GeneralsX

A cross-platform port of Command & Conquer: Generals Zero Hour. The game and the engine are not mine. EA released the source under GPL v3, and a chain of community forks did the foundational work long before I touched it.

We took fbraz3/GeneralsX as the base and built on top of it: getting it building on the Mac, then getting all four platforms into the same match without desyncing. Twelve players is next.

Built on
fbraz3/GeneralsX, which descends from EA's GPL v3 source release through TheSuperHackers and Fighter19, plus DXVK, MoltenVK, SDL and OpenAL Soft
We added
The Mac build, all four platforms in one match without desyncs, and twelve players next
License
GPL v3. Game assets are not included and not licensed here.
Status
Shipping on Windows, in active development

Timeline

now

Freelance

I take contract work: systems, networking, backends, and the security side of all three. The Z Connect is a product I develop for its owners, and GeneralsX is a port I contribute to. Neither one is mine.

now, side

Head of cyber security

I run security at Betarabia, the largest online sportsbook and casino operator in the MENA region. It is a side role, held alongside the freelance work.

now

Employed through

Onlive Support Services

The sister company that runs everything behind Betarabia, under the same ownership.

now

Penetration testing

The part of the work I am best at is the part I cannot show you. Findings belong to the companies that commissioned them, and a writeup with a recognisable target costs them more than it credits me, so none of it is published. Ask me directly instead.

at 14

Growtopia

Where it started, on Growtopia: save.dat builders, mods, proxies and internals, and I ran Nusumu.wtf. Taking apart a binary someone else shipped, and working out what the client could be made to say to the server, is where everything above came from.

Hire

Two kinds of work. Say which one, and what the system or the target is. I will tell you if it is a fit before anything else.

Penetration testing Web applications and infrastructure. Scoped, and the findings stay yours; nothing gets published.
Email about a test
Software Systems work: engines, netcode, backends, and the build and release tooling around them.
Email about a build

Download

GeneralsX needs your own copy of Zero Hour installed. It ships no EA game data and does not modify your existing installation; it installs beside it. The engine is GPL v3, built on EA's source release and the community forks credited above; source at github.com/wh1ter0se69.

Windows build

GeneralsX-Setup-aaaafce7.exe 2 MB installer, x86-64 uploaded 12 August 2026, 16:30 UTC always installs the current build
Download

macOS build

GeneralsXZH-macos-arm64-77232edd3.zip 27 MB, Apple silicon uploaded 14 August 2026, 20:47 UTC unzip and run, no installer
Download

Apple silicon only. The zip carries the engine and everything it links against, including MoltenVK and DXVK, so nothing else needs installing. It carries no game data.

SHA-256
b90f9263fc47b645640e0cbc3e2d26c76a9fd239b533d9bfd1b7a742d6167309
Check it
shasum -a 256 GeneralsXZH-macos-arm64-77232edd3.zip
Unquarantine
xattr -dr com.apple.quarantine GeneralsXZH.app

This app is not signed or notarised, so macOS will refuse it on first launch and say it is damaged. It is not damaged; that is what Gatekeeper says about everything without a paid developer certificate. Check the hash above first, then remove the quarantine attribute and open it. If you would rather not, that is a reasonable position and you should not run it.

Set up on macOS

You need your own copy of Zero Hour. I cannot ship it: the game data is EA’s, and handing you 2 GB of it would be piracy no matter how the rest of this is licensed. GeneralsX is an engine — it replaces the executable, not the game.

Four steps, about fifteen minutes, most of it waiting for a download. Each one ends with something you can check, so you find out immediately rather than at the end.

01Get the files

Obtain your Zero Hour installation

You need the game’s data files. Which route you take depends on whether you have a Windows machine to copy from.

If you have a Windows PC
Copy the folder across

Zero Hour is a Windows title, so the Mac Steam client will never offer it. On the PC, the folder is:

steamapps\common\Command & Conquer Generals - Zero Hour

Copy the whole thing to the Mac over the network or on a USB drive. Retail and Origin installs work too — any complete Zero Hour folder.

If you have no Windows PC
Download it with SteamCMD

SteamCMD will fetch a Windows depot onto macOS if you tell it to. Install it, then run the command below and enter your Steam password when asked.

brew install --cask steamcmd

You must already own the game. This signs in as you and downloads nothing you do not hold a licence to.

SteamCMD
steamcmd +@sSteamCmdForcePlatformType windows +login YOUR_ACCOUNT +app_update 2732960 validate +quit
Check

You have a folder containing Command and Conquer Generals Zero Hour.exe and a pile of .big files. If there are no .big files you have the wrong folder — you want Zero Hour, not the original Generals.

02Place them

Put the data where the engine looks

The engine reads its data from exactly one folder. Copy the contents of your Zero Hour folder into it — the .big files and the Data directory, not the folder itself.

Data folder
~/GeneralsX/GeneralsZH

If you used SteamCMD, the download landed inside SteamCMD’s own steamapps/common directory. Move that folder’s contents here.

Check

ls ~/GeneralsX/GeneralsZH/*.big lists around two dozen files. If it prints No such file or directory, the contents went one level too deep — look for a nested folder and move what is inside it up.

03Unblock

Tell macOS the app is not damaged

Unzip the build anywhere you like. On first launch macOS will refuse it and claim it is damaged. It is not: that is what Gatekeeper says about everything without a paid Apple developer certificate, and I do not have one.

Verify the checksum published above first, then clear the quarantine flag:

Unquarantine
xattr -dr com.apple.quarantine GeneralsXZH.app

If you would rather not run an unsigned binary, that is a reasonable position and you should not run it.

Check

The command prints nothing. Silence is success — xattr only speaks up when it fails.

04Play

Run it

From the folder you unzipped:

Run
./run.sh

To play with other people, choose Online from the main menu. You do not type a server address — the game finds the relay itself.

Check

You reach the main menu with music playing. Everyone in a match needs the same build, so if a friend cannot join you, compare the version in the corner first.

When it goes wrong

Black screen, then quits
The data folder is incomplete. Zero Hour’s music list includes tracks from the original Generals, and a missing one ends the process before the first frame with nothing on screen. Re-copy the folder and let it finish.
“You serious?”
The engine found no game data at all. Check the path in step 02 — this is what an empty ~/GeneralsX/GeneralsZH looks like.
Cannot join a friend
You are on different builds. Both of you update to the same version; mismatched engines refuse each other rather than desync mid-match.
No games listed
Nobody is hosting right now, or you are both hosting into the same pinned room. Unless you were asked to set one, there should be no RelayRoom line in your Options.ini.

Maps

Maps built for this engine. Drop the folder into your maps directory — ~/GeneralsX/GeneralsZH/Maps on macOS and Linux, Documents\Command and Conquer Generals Zero Hour Data\Maps on Windows. Every player in a match needs the same file.

GXCircle12ZHv1 12 spawns, 5120 x 5120, 16 KB every spawn a rotated copy of one template contested middle: 6 derricks, 6 docks, 6 hospitals
Download

Twelve spawns on a circle, each an exact rotation of the last, so no start position has a better expansion, a shorter path to the middle, or a closer neighbour than any other. The middle is raised ground holding the shared resources. A generator writes it and a validator checks all of it — equal radius, equal neighbour distance, identical per-spawn supply, and a middle that looks the same from all twelve.

See the layout — high ground is lighter; gold is supply, blue oil, red hospitals, white the twelve starts.

GXCauldron12ZHv1 12 spawns, 23 KB twelve seats round a square pit, four-fold symmetry deals evenly to 4 teams of 3, or 2 of 6
Download

Not a ring — a square pit with two kinds of seat. Eight sit on the edges and four in the corners, and they are deliberately not equal: a corner seat reaches $48,400 against an edge seat's $64,300, and pays for it by holding half as much approach front. The measure that matters is that no seat is better overall, not that every seat is the same. See the layout.

GXQuarry8ZHv1 8 spawns, 9 KB four walled compounds, four-fold symmetry $50,625 per player, identical to the digit
Download

Eight seats in four walled compounds, every one a single orbit of the same template, so each measurement comes out identical rather than merely close. See the layout.

Platforms

Release status
PlatformArchStatus
Windowsx86-64available
macOSarm64available
Linuxx86-64unreleased
iPadOSarm64unreleased

Verify it

This executable is not code-signed. Windows will warn you, and you have no reason to take my word for any of this. Check the file yourself before you run it.

SHA-256
aaaafce7f973223c550ded6867ce67700ca8e364bedb9733ae0b5c52644d7a3b
cmd
certutil -hashfile GeneralsX-Setup-aaaafce7.exe SHA256
PowerShell
Get-FileHash .\GeneralsX-Setup-aaaafce7.exe -Algorithm SHA256

Those 64 characters are the hash the installer itself enforces. If what you compute does not match what is printed here, do not run it.

What it does

Size
2 MB, not 65 MB
First run
Downloads the build from this site, with progress and transfer rate
Installs to
Your own user folder, with no administrator prompt
Detects
An existing Zero Hour installation, automatically
Updates
Through the signed manifest, verified before anything is written
On failure
Refuses, and leaves your existing installation untouched