Portfolio

These are some of my personal projects that I developed in my spare time. Projects related to my employment history are not included (instead, visit my LinkedIn profile for them), although some of these projects may be considered professional.

Each of these projects was eventually launched as a product and attracted users, sometimes thousands of them.


Inkball for Android

Years active:
2012 – 2013

References:

Inkball for Android


Originally, Inkball is an action-puzzle video game that is included with Windows Vista. I decided to create an Android version of Inkball because its game mechanics make it especially suitable for touchscreens than for a computer mouse.

The game was written in pure Java, and almost from scratch. I didn't use a game engine, but borrowed some code snippets from a book that explained how to efficiently use OpenGL ES for graphics rendering. At that time smartphones were much slower than they are nowadays, and I spend a lot of time profiling and optimizing the code to ensure good performance even on low-end devices.

The game was first published on Google Play in 2012. Then it was downloaded more than 12,000 times and received very positive feedback from the users.


Perceptual Inkball

Years active:
2013

References:

Perceptual Inkball


Perceptual Inkball was based on the previous project - Inkball for Android, and targeted Windows machines.

The gameplay remained almost the same, however the new version used Intel® Perceptual Computing SDK in combination with a special web-camera-like device, which dramatically changed the ways a player interacted with the game.

Perceptual Inkball supported multiple user profiles, facial recognition was used for authentication. It was possible to use voice commands, for example, to pause the game quickly, without touching the screen or the keyboard. Finger tracking was used to draw lines on the game field.

The core modules remained written in Java while the ones responsible for interaction with the SDK required C++ implementation and were linked as native code.

The game was recognized by the judges of Intel Perceptual Computing challenge.


FileConverterBot (Telegram bot)

Years active:
2016 – 2018

References:

FileConverterBot


FileConverterBot is a tool that converts files from one format to another. For example, it can convert images from PNG to JPEG, or audio from OGG to MP3. It supports audio, video, and image file types.

Being a Telegram bot means that the converter is:

  • Cloud-Based. No need to install anything.
  • Cross-Platform. Works on any platform where Telegram does, including web browsers.
  • User-friendly. The interface is familiar to any user who used Telegram bots before.

The converter is written in Kotlin. It uses ffmpeg to convert audio and video, and ImageMagick for images.

FileConverterBot attracted a plenty of users and used to convert thousands of files daily when it was deployed and actively maintained.


4stream

Years active:
2016

References:

4stream


4stream was a platform for Russian-speaking video game streamers. The platform made it possible for streamers to accept donations and get real-time notifications when receiving them.

The front-end part was written in Javascript / React, while the back-end was in Kotlin. And PostgreSQL was used to store persistent data such as user preferences and optional text messages attached to the donations.

This is how a donation widget worked: upon a successful payment, the server sends a WebSocket payload to the widget which, in turn, displays a customized visual notification and "reads" the sender's message with the help of text-to-speech synthesis.


Vladtim.com (this website)

Years active:
2019 – present

This is my personal website. It showcases some of my past works, and makes it possible to connect with me. In the future, I might add more content, such as interactive elements or a blog.

The website is built using Gatsby, React, and it is hosted on AWS. I made efforts to make this website fast and responsive.



To be continued

Not all of my works have been described here yet. My github profile may contain more relevant information.