A developer with 7+ years of experience behind me. C/C++ is my main direction - it's
where I found my place in commercial projects - and right now I'm widening my range
toward Rust. I love digging down to the essence of a task, to the answer to
"why is it done this way?". Since childhood I've loved poking around inside devices,
and that grew into my hobby - reverse engineering.
Web games built on W4, the company's own engine. W4 has no editor - no scene view,
no inspector, no drag-and-drop. Gameplay, shaders and tooling are all written as code
and compiled to the browser through Emscripten. That constraint taught me more about
C++ than any job with a GUI would have. I also led and mentored the junior engineers on
the team and reviewed their code.
50+ shipped mechanics
100+ legacy bugs closed
20+ projects delivered
stack C · C++ · Emscripten · GLSL · Dear ImGui · CMake · JavaScript · REST
#1
DevOps / Infrastructure Engineer
AEVO
Remote
-
Infrastructure end to end: provisioned and hardened VDS and bare-metal on Ubuntu, built
the networking, and shipped services to production. CI/CD pipelines from scratch,
everything containerised, observable, and automated wherever it could be.
A desktop cost-estimation application - roughly Excel, Access and Word fused into one
program. I built the document logic: estimate creation, cross-document links, automatic
formula recalculation and dependency resolution. Wrote MFC/COM UI components and ported
several of them to Linux.
stack C · C++ · MFC · COM · Visual Studio · Linux port
#3
Reverse Engineering + C/C++ / Python + Web - freelance
C/C++ & reverse engineering (2020-2022): game trainers to order - find the value
in memory, hook the code that moves it, keep the offsets alive across patches. Reversed
save and asset formats, wrote binary patches and DLL mods, analysed malware and network
protocols. This is where the reverse-engineering hobby turned into paid work.
Python & web (2019-2020): site parsers, Telegram and other chat bots, automation
scripts and large-scale data processing; then sites and admin panels in JavaScript and PHP,
with the MySQL schemas behind them.
stack C · C++ · x86/x64 Assembly · WinAPI · Reverse Engineering · IDA Pro · Ghidra · x64dbg · Frida · Python · JavaScript · PHP · MySQL
Honest version: four years I'd rather have spent working. The diploma has never once
answered a hard question for me, nor helped me land a job (yet). Everything I actually
needed I found and learned on my own anyway - because it was interesting.
.rodata
Toolset
the part of my memory nothing can unmap anymore
Languages
C
C++ 11 → 23
Java
Python
TypeScript
JavaScript
PHP
GLSL
SQL
Bash
x86/x64 Assembly
C and C++ are two languages, and I'm comfortable in both.
Async C++23 REST service · multilingual profanity detection
Crow on standalone Asio, with the request layer kept strictly separate from the detection
core - every incoming field is checked for presence and type before anything downstream
sees it. Filters are a uint64_t bitmask, and the regex generator is built from
a dictionary plus a lookalike-character table, so leetspeak and Cyrillic/Latin homoglyphs
don't slip through. Secrets come from the environment, never the source.
Plug a MIDI piano into the machine and it types. All 88 keys, velocity-aware, with MIDI
file playback on a separate path from live device polling - because a dropped note is a
latency bug you can hear. The whole GUI is Dear ImGui, including custom window chrome
replacing the OS title bar, a rendered keyboard, and its own logger.
A Minecraft mod that's really a plugin host. Addons implement one interface, mark it with
@AutoService, and get discovered by ServiceLoader with zero registration on my
side. Reaching the client's private chat internals needed Fabric mixins. Ships as a real
Maven package through GitHub Packages.
Written for the Minecraft server I host myself, because the existing options each did
one thing not the way I needed. PVP rules, player model sizes, per-player view distance.
reserved at link time, zero-initialized, filled at runtime
.bss is the segment the linker sets aside for things that will exist but are
still empty. It shows genuine interest with zero commercial experience behind it yet. I'd
rather name the gap than dress it up.
Rust
uninitialized
Learning it now. After years of owning lifetime questions by hand - and one comment in my
own code reminding me that a r_string must outlive the JSON holding it - a
compiler that asks those questions up front is a trade I want to make properly, not
tourist-style.
00 00 00 00 00 00 00 00
CUDA & GPU compute
uninitialized
The direction I want most. I've written GLSL shaders against a real engine, so the GPU isn't
abstract to me - but shading pixels and scheduling compute are different jobs. Warps,
coalescing, occupancy: that's the next thing I want to be genuinely good at.
00 00 00 00 00 00 00 00
Where I want this to land: systems and low-latency C++ close to hardware, or a GPU-adjacent
team willing to take someone who reads disassembly for fun and hasn't shipped CUDA yet.
[heap]
Homelab
maintained by me, at runtime, on my own time
One Ubuntu box that I keep alive because an old laptop was sitting idle. This page is
served from it. It runs Nextcloud, game servers, SFTP, MySQL and phpMyAdmin, with
Grafana and Prometheus watching, everything behind an Nginx reverse proxy. I configured
the VPN endpoints, the firewall rules, the certificates and the domains myself.
Scale check: this is personal-project infrastructure, not enterprise. One host, my
traffic, my mistakes. But I know what a reverse proxy does rather than just what lines
to paste into one.
edgeNginx · Let's Encrypt / CertBot · own domains
netWireGuard · Amnezia · Hysteria · iptables
svcNextcloud · game servers · SFTP · MySQL · phpMyAdmin
obsPrometheus · Grafana
ciDocker · systemd · GitHub Actions
[anon] rwx
Reversing
a hobby I simply enjoy
I take programs apart to find out how they work inside. Attach, find the structure,
watch it change, work backwards to the code that changed it. Almost all of it has been games.
It started with modifying game code directly - hunting offsets and rewriting instructions
in assembly through Cheat Engine. The first was Worms 3D; one of the most recent, Dota 2.
Now and then I reverse GUI applications too. From there I wrote my own trainers for
single-player games: they locate the addresses they need two ways - signature scanning and
computing offsets from the module's base address - so the addresses stay valid across
restarts and game updates. Over time code deobfuscation and network-traffic analysis got
added, and I came to know client-server interactions well.
From experience: a memory trainer for Dota 2 that forced critical hits by intercepting
the hit-type value on its way through and rewriting it. This one was never for sale -
it existed to answer "where exactly does the game decide this, and can I use it?"
Illustrative, not a working patch. The interesting part was never the byte.
Static analysis x64dbg, IDA Pro; reading and editing x86/x64 assembly.
Dynamic analysis Cheat Engine.
Finding data locating the right code by breaking on the instructions that read or write an address, and by string search.
Process memory addresses and structures via signature scan and module-base offsets; trainers that survive restarts and patches.
Deobfuscation Java, changing behaviour straight in the bytecode; and obfuscated JavaScript while analysing client-server exchanges with encrypted requests and responses.
Network traffic Wireshark, HTTP Debugger, NetLimiter, Chrome DevTools; reading game traffic to see what data goes over the wire and in what shape.
tools C · C++ · x86 Assembly · WinAPI · IDA Pro · x64dbg · Cheat Engine · Wireshark · HTTP Debugger · NetLimiter · Chrome DevTools
[sbrk]
Mini-Game
a small clicker - allocate memory until you run out. (the memory is not real)
This slot holds a small interactive game: an allocator clicker with a few mini-games
inside. It needs JavaScript.
/dev/audio
End of mapped region
nothing below this but contacts - here's what I build to