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 and Go. 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.
50+ shipped mechanics
100+ legacy bugs closed
20+ projects delivered
stack C · C++ · Emscripten · GLSL · Dear ImGui · CMake · JavaScript · REST
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
Industrial practice during college. Built a site plus admin panel on Laravel and designed
the MySQL schema behind it. First time I wrote queries complex enough to be worth thinking
about, and first time I touched data encryption.
stack PHP · Laravel · MySQL · JavaScript · HTML/CSS
#3
C/C++ Developer, Reverse Engineering - freelance
Self-employed
Russia · remote
-
Where I stayed: C and C++. 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 for games that never planned for modding.
This is where the reverse-engineering hobby turned into paid work - the full picture
is further down the page.
stack C · C++ · x86 Assembly · WinAPI · Reverse Engineering · IDA Pro · x64dbg · DLL
#4
Python / Web Developer - freelance
Self-employed
Russia · remote
-
Commissioned work through the college years, back before AI grew to commercial scale.
Started in Python: site parsers, Telegram and other chat bots, automation scripts,
collecting and processing large sets of data. Then web - sites and admin panels in
JavaScript and PHP, with the MySQL schemas behind them.
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
Go
uninitialized
I've written async services in C++ where half the work was the plumbing. I want to see what
the problem looks like in a language where the plumbing is the language, and what that
actually costs.
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
the page with write and execute on it - 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