From BASIC to AI agents
Every five years or so I relearned the craft: Pascal, C++ and OpenGL, Unity, Solidity, TypeScript, and now AI-orchestrated delivery. Here is what I built along the way.
- 1994+ BASIC, Pascal & olympiads
- 1994
First programs in BASIC
Started programming in BASIC on a Soviet BK-0010 home computer.
BASICBK-0010 - 1996
Pascal
Moved to Pascal — the language of every olympiad and my first real games.
Pascal - 1997
Super Amik
Designed a platformer on paper, level by level in a school notebook: game design before there was a machine to build it on.
Paper - 1998
Tank — my first finished product
My first big program taken from idea to a finished game: a tank battle in Pascal, drawn in text mode on an 80×50 grid, with levels, weapons, a menu and a title screen. About a thousand lines, grown from March to May 1998 through version 1.60; that autumn followed Tank 2 with graphics.
Turbo PascalText mode - 1999
Space War
My first good game: two ships in a duel, rotation by sine and cosine worked out on my own, ships that deform on ramming, a vector ship editor, a dozen weapons, missions and my own BMP/WAV loaders.
PascalBGIVector graphics - 1998–2001
DiVision games
More self-made games, among them Capture or Destroy.
PascalFree PascalDelphi - 2000
Lamer-Killer: 3D with no engine
A top-down shooter with a classmate that turned into my own software 3D renderer — no engine, no GPU, every pixel computed on the CPU with a projection formula I derived myself, years before I knew how Doom did it. The level editor stored the map as a walkability grid, and an optimiser merged long walls into single polygons.
PascalSoftware rendering - 2000
Space War 2K: one engine, three games
Inspired by how Half-Life mods worked, I built one engine and one executable that ran three different games — ship dogfights, top-down tanks in the spirit of GTA, and a Worms-like artillery game — just by swapping resource folders and config rules. The main menu played a video rendered in 3ds Max, through my own delta-frame format and BMP loader, in Pascal, which had no video support at all.
PascalEngineVideo codec - 2001
Doom RF
Made in two weeks as a birthday present for a classmate, then polished for a year: 4 players on one computer plus 8 waypoint bots, a level editor, and a bank-switching trick to draw 640×480 past the 64 KB video window. In 2026 ported to 64-bit and SDL2, with sound, as a proper release.
Borland PascalFree PascalSDL2Download for Windows / Linux ↗
- 2002
IOI gold medal
From algorithm books and the Progmeistars sponsored elite group to 2nd place at the Latvian olympiad and the Baltic olympiad, then gold at the International Olympiad in Informatics in Yongin, Korea — 18th place overall, one of 23 gold medals (listed as Andrejs Ivanovs, Latvia).
AlgorithmsPascal - 2002–2006
ACM ICPC
Five seasons of the ACM International Collegiate Programming Contest for the University of Latvia. 2002: best team in the Baltic States at the Northeastern Europe regional. 2003: winner of the 12th Tournament of Computer Programs (as Andrey Ivanov).
AlgorithmsC++ - 2002
Maps, demos and F(x)
Half-Life / Counter-Strike maps, small programs that render pretty graphics, and F(x) — a function plotter with zoom and scroll, written in Delphi.
Delphi - 2002–2011
Teaching at Progmeistars
Nine years teaching programming to groups of students at Latvia’s largest children’s programming school; built a new curriculum.
- 2003
My own PHP course
Wrote my own web-programming course in PHP for Progmeistars and taught it; built an IRC proxy and a testing suite for programming contests; ran the school’s Linux servers.
PHPMySQLLinux - 2004+ C++, OpenGL & own engines
- 2004
C++ and OpenGL: Chess 3D
Moved to C++ (the STL made olympiad work far easier) and to full 3D. First commissioned project: a 3D chess game with bump mapping and reflection maps.
C++OpenGL - 2004–2006
Physics 2D
Coursework that became a bachelor’s thesis: an own physics engine and a full game on top of it, inspired by Elasto Mania and Half-Life 2.
C++ - 2005
Xray
Commissioned demo on my engine: X-rays passing through a semi-transparent bone.
C++OpenGL - 2005–2018
muo.lv
A private MuOnline server I co-founded and programmed: 300–400 players online within weeks of the 2006 launch. I built everything around the game — a PHP site with a player market, rankings, auctions, item trade and quests, SMS payments, a credit economy, a VIP server, public ban lists — plus my own anti-cheat, server tunnel, launcher and auto-updater, and a bot that ran in-game events.
PHPSQL - 2006
Steel Engine
An own C++ engine: scenes defined in config, prefabs with overridable parameters — the idea Unity later made mainstream — plus graphics and simple physics. Source is public.
C++OpenGL
- 2006–2012
whiteCryption
Software architect for white-box cryptography and code protection (RSA, ECC, SHA, AES). Designed the v5 architecture, still in production ~15 years later, now inside Zimperium.
C++Cryptography - 2008
Labyrinth
Master’s thesis: a multiplayer race through a maze on Steel Engine. Own network protocol, graphics and sound — everything built from scratch.
C++OpenGLNetworking
- 2010+ Unity & a 35-person studio
- 2011
Unity: Bastions
First Unity game: two towers, build yours and shell the opponent’s with cannons. Planned as multiplayer.
UnityC# - 2011
Nunnery
A one-day hackathon in London: a platformer about a jumping nun, built on a friend’s engine that also powered his console games for Sony.
- 2012
MyCountry at innoWate
Two months at a Game Insight studio on MyCountry, a city builder with 5M+ installs on Google Play: bug fixes and bringing back old mechanics.
C++Mobile - 2012–2018
MadSword →
Co-founded a game studio and grew it to 35 people. Started Steam Defense at a kitchen table, raised an investor, then moved to contract games for publishers: one reusable Unity engine with a level editor and shared server shipped 100+ titles and reskins and thousands of levels. 160+ games and 20M+ downloads in total, largely through a Dutch publisher. VR titles too.
UnityC#Java
- 2013
Global Game Jam: Tankraft
A networked multiplayer tank battle built in one weekend with a teammate: own server or a dedicated one, two weapons, physics-driven tanks. Shipped for Windows, macOS, Linux and the browser.
UnityC#Networking
- 2013
Steam Defense launch
MadSword’s first own release, on Kongregate, VK and Odnoklassniki: own scenario scripting, skirmish and PvP AI, and BotWars — a night-long stress test of tens of thousands of units that made the game crash-free in three weeks.
UnityC#Networking
- 2015–2020
Zebrainy
Co-owner and technical director of an educational games company for young children.
Unity - 2017+ Web3 & real-time platforms
- 2017
Decrypted Kitties
A CryptoKitties-style game built in about a week and published on Google Play — the first step into crypto games.
Unity - 2017–2021
Blockchain Cuties →
Wrote Ethereum contracts for others, then co-founded Cuties and launched it in four months (April 2018), before ERC-721 was final. Characters and breeding on-chain, items and battles on the server with one-time signatures verified by contracts. Ethereum, then EOS, TRON, NEO and Polygon — a multi-chain design later extended to 7. #1 on DappRadar; 2021: governance token contracts and IDO.
SolidityNode.jsEOSTRON
- 2020–2024
Dice Chess →
Real-time chess with a dice variant, owned from idea to launch: spec, architecture, own test system for chess positions; load-tested for 20,000 concurrent players.
JavaVueTypeScriptMicroservices
- 2021–
Roach Racing Club →
Web3 racing game from scratch: smart contracts, tokenomics, a custom WebGL engine for live races and a biological race simulation.
SolidityThree.jsTypeScript
- 2022–
Fractional CTO
Technical partner to founders: fixed-scope builds, architecture reviews and due diligence.
- 2025+ AI-orchestrated delivery
- 2026
TaleCheck →
Static analysis for fiction, built solo with Claude Code and parallel agents: ~2,300 commits in under three months, live with paid users.
TypeScriptNestJSClaude CodeAnthropic API