Andrei Trubin

Android Developer · Toronto, Ontario

I have been writing software professionally since university – first C++ and C#, then Java, and for the last nine years, Android in Kotlin and Java. Today I build Enterprise Mobility Management (EMM) software at SOTI, close to the Android platform layer.

Andrei Trubin at his desk beside an Android mascot figure
9 yearsAndroid development
10+ yearssoftware engineering
2,478LeetCode problems solved
Master'sComputer Science

How I Got Here

I studied Information Technology at Ural Federal University, graduating in 2014, and stayed on for a Master's degree in Mathematical Support and Administration of Information Systems, finishing in 2016. I started working before I finished: my first paid programming job was a summer as a trainee in 2013, writing C# for a web application while still an undergraduate.

The years that followed were varied. A C++ library for fingerprint classification. Signal processing with Fourier transforms. A cross-platform print service that spoke IPP and appeared to the operating system as an ordinary printer. A plugin-based client-server system over TCP. Different problems in different languages, and useful groundwork for everything since.

I moved to Android in 2017 and have stayed there. Programming has been my profession for my entire working life – there was never a period where it was something I did on the side.

Andrei Trubin working at his desk

Android, Beyond Phone Apps

An app on a phone is one thing. An application signed with the platform key, running as the system user on a centrally managed enterprise device, is a different discipline. I have spent most of the last nine years in the second category, across several kinds of hardware.

Phones & Tablets

Retail point-of-sale, mapping, video streaming and consumer applications.

Android TV & Set-Top Boxes

A TV application built from scratch, with channel navigation and 4K playback.

Enterprise-Managed Devices

Device Owner, OOMP and Profile Owner modes for fleets of managed hardware.

System-Level Components

Platform-signed applications and components running as the system user.

OEM Devices

Vendor SDKs from Samsung, Zebra and Lenovo, across many Android versions.

Wear OS

Smartwatch development, currently through personal projects and experiments.

Beyond Android

Android is where I specialize, but some tasks reach further. A feature can start as a user interface change in a TypeScript console and end in the Kotlin agent – passing through C#, a SQL schema and C++ along the way.

The same applies outside work. This site is Python and Flask on the server, MySQL behind it, and the games written in TypeScript. Bricko, my brick-breaker on Google Play, I took from first idea to published app on my own – Kotlin and Jetpack Compose, with the rendering and physics written by hand rather than handed to a game engine.

Working close to the platform means the fundamentals still matter, so algorithms have run alongside all of it – Timus during university and LeetCode since.

Andrei Trubin working at his home desk overlooking the city skyline