The experiences we have across our life span define us. They make us what we are and provide an insight into where we stand and what we may become later on. Below you will find a list of events I believe somehow influenced my path.
Somewhere along the ride I stumbled upon Clojure and became a fan of Rich Hickey. The language and its ecosystem quickly became the harbour at which I spent most of my spare time. I absorbed knowledge of ClojureScript, Datomic, Reagent, and Re-frame. And then there was Emacs.
Had opportunities to come up with solutions to several greenfield projects and became thoroughly familiar with many technologies of the modern web and iOS development—Angular, React and React Native, Terraform, Docker, Kubernetes, Rancher, EC2, ECR, TypeScript, Swift, and everything in between. Name any and I probably know a thing or two about it and how to use it effectively and, what's arguably more important, when not to use it.
My flight landed in Sydney. Australia became my new home.
Living on the coast had always been a dream for me. Moscow on the other hand had no coast whatsoever and working remotely was not an option at Yandex. I somehow stumbled on a recruiting pitch by someone from Songsterr, got sold on it, and joined the team.
An acquaintance on Twitter led me to signing a full-time contract with Yandex. For the next couple of years I became a keen software engineer on the Yandex.Maps and the Yandex.Metrica iOS teams. Think Google Maps for iOS and Google Analytics for iOS but in Russia.
Presented the Karizma video messenger app at the Startup Battlefield at the TechCrunch Disrupt conference in New York, USA. We had a great technology stack under the
Joined a startup as the main developer on an international crew and spent countless hours coding in every imaginable cafe, airport, hotel, and coworking space in between Moscow, Miami, San Francisco, and New York.
Ditched the enterprise software world and jumped on the iOS software development bandwagon full-time.
Signed up and got accepted to the iOS Developer Program.
Bought my first Mac.
Obtained a copy of Cocoa Programming for Mac OS X by Aaron Hillegass and managed to run OS X in a virtual machine on a PC to play with Xcode.
Landed a job at Acronis, moved to Moscow, and dived into building a .Net/COM bridge to the company's proprietary distributed object framework used in their enterprise products. The framework had RMI interfaces defined in XML and spoke some elaborated binary protocol over the wire. To tie it all in together I eventually provided some .Net runtime written in C# and a set of involved XSLT transformations to generate the bridge.
Figured out I'd be better off doing freelance consulting and tackled a wide range of projects for my clients: wrote a sleek GTK UI in Python for a self order payment kiosk provider, implemented a monstrous intranet portal in PHP, developed a non-trivial VFS driver for Windows, and built a full-blown DNS server in C++ from scratch. If it could be hacked, I'd be onto it. Those were fun times.
Got hired by a team working on a binary Usenet groups aggregator service. I implemented lots of the backend and frontend mostly in Perl with occasional sprinkles of C: fetching of news articles and their attachments, combining multipart attachments, recovering missing parts, generating thumbnail previews for media files, building a sophisticated declarative forms module, etc.
The company I was working for was a kind of ISP and they were desperetely in need of a billing solution for their clients, which I ended up developing full-time on top of Linux, iptables, NeTraMet, and PostgreSQL. The result even gained me the 1st Place Award at the Soft-Parade student software contest.
Landed a web master job at a local advertising agency. ASP, PHP, Parser, MSSQL, PostgreSQL, and a ton of other technologies were together in daily use and I had to figure out all of them.
Became a proper FidoNet node, 2:5090/114. The station answered calls 24×7 and my mother had to put our home phone into the silent mode.
My obsession with Java continued. I developed an app to build educational presentations. The UI was close to the Visual Basic suite with all the drag'n'drop mechanics and widgets, and the resulting presentations were serialized into standalone player JARs that could run on both Windows and Linux. The project was awarded the 3rd Place Award at the Soft-Parade student software contest.
Got my first job as a web master. Occupied myself with all things Perl.
A friend happened to rent an apartment without a phone line and lent me his modem. After spending some time on the local BBSes I managed to become a point in FidoNet. 2:5090/47.41 was the address.
Installed Slackware Linux from a CD obtained from a friend.
Bought the 1st edition of the Java in a Nutshell book and fell in love with the language and the Write-Once-Run-Everywhere idea.
Just two days before the Russian Rouble collapsed my mother bought me a 15-inch LG Flatron monitor. Had it been two days later, we wouldn't be able to afford one.
My uncle gave me my first PC—a 60Mhz Pentium with 4MB RAM and a 512MB HDD—and a HP LaserJet printer. He hadn't given me a monitor though and I was too poor to buy one. So for a while the Prt Scrn key became my good friend.
Learnt enough HTML to launch my own homepage on GeoCities. It had all of the hype bits included: a frameset, blinking text, and animated GIFs.
Spent three weeks in a computer summer camp for kids mesmerized by an SGI Indigo2 and IRIX. Learnt what
ps ax meant, how to
kill -9 stuck processes, and how to free disk space by removing core dumps from crashed software.
Ventured into implementing my own Norton Commander clone. I eventually abandoned the idea some months later, but still… had learnt heaps from the endeavour.
Learnt enough assembler to interface with mouse drivers and run resident programs under DOS.
Got introduced to Turbo C and never looked back.
Immersed myself into Turbo Pascal.
Played with an Apple computer—Macintosh Centris 610—and Adobe Photoshop for the first time in a local computer expo.
Persuaded my mother to buy me an Electronika MS 1502. Unfortunately there was no way to connect it to our old Soviet black-and-white Rassvet 307-1 TV set. Still I managed to write some simple music-generating programs on it, all without being able to see a single character of the Basic code.
Started learning Basic on a Soviet-era UKNC-0511.
Discovered computer games in a local arcade. There were several Ataris and I and my friends spent many hours there playing Fort Apocalypse.
Respawned into the amazing world at 56.01722131572176, 92.79474952035382.