Dmitry Polishuk

Senior Software Engineer / Teamlead

email: dmitry.polishuk@gmail.com

github: https://github.com/dpolishuk/

skype: dmitry.polishuk

phone: +79263930323

telegram: @deepol

Dmitry is a product-oriented engineer. He has more than a dozen years of experience in embedded development in C/C++ and Java. He is very experienced Linux hacker and he loves developing beautiful Android apps using Android SDK and NDK.

Summary:
              13
 years of expertise in software development (using  Java, Kotlin,  C/C++, Mobile development, and Linux)

10 years of expertise in building telecommunications & multimedia projects

9  years of expertise in Android development

3 years of expertise in development related to broadband wireless communications (WiMax, WiFi)

Wide range of expertise in software and hardware systems, networks and electronics

Education:

MS Computer Security. Voronezh State Technical University, Voronezh, Russia                 

Working Experience:

Yandex.Taxi                                                                                                        2016 - present

        Teamlead of Driver’s App team

Currently, I’m responsible for everything what happens with Yandex.Taximeter and I make decisions how to design new features, interaction with backend. I have 11 people in my team, and I’m responsible for everything what they do.

         Yandex                                                                                                              2014 - present

        Senior Android Developer

I finished a few very exciting projects, such as Yandex.Key, Yandex.Taxi for drivers & some internal     cool stuff. Currently, I’m deeply immersed in Yandex.Taxi and I develop very cool new features.

 

        NeoSpherePlus                                                                                                    2014

        Lead Android Developer

                Designed & implemented taxi orders analyzer client for taxi-drivers

Implemented chat messenger with rich multimedia stuff (photo/video sharing, stickers)

Implemented Time-Based One-Password client for one of the biggest Internet company

NeoSphere, Undev                                                                            2011 – 2014

        Lead Android Developer

                Interactive TV Android client

Designed & implemented low-level multimedia framework for Android

P2P share/broadcast multimedia solution

DigitalOctober Android client

ChessTV Android client

Mafon Android client

Spief2013 Android client

DataArt Solutions, Inc., http://www.dataart.com                                        2008 – 2011

Software Developer        

                B2B trading Android client,

Calls Analyzer Android client,

 Intelligent Performance Tuning Engine,

FOREX trading robot

Kodofon (Department of Voronezh Research Institude of Radio Communications), http://www.kodofon.ru/

Software Developer, Radio Engineer                                                2005 – 2008

Previously Completed Projects:

2015,  Yandex.Taximeter (Driver’s app) (Google Play Link)

I and my team redesigned this app from the ground.

Platform:        Android

Tools:        Android Studio, Android SDK, Android Compatibility Library,  JSDK 1.6, Gradle

2014,  Yandex.Taxi (Google Play Link)

I was working on almost all things in this app (card payments, map navigation, order’s flow, orders history)

Platform:        Android

Tools:        Android Studio, Android SDK, Android Compatibility Library,  JSDK 1.6, Gradle

2014,  Yandex.Key (Google Play Link)

I developed this auth tool from the ground by myself.

Platform:        Android

Tools:        Eclipse, Intellij Idea, Android SDK, Android Compatibility Library,  JSDK 1.6, Gradle

2013 to 2014,  Secure P2P share/broadcast multimedia engine

It was not released as a final product. I did great R&D. It’s not a bittorrent or i2p, although it has some similarities.

The main goal of this app is to help to the user to manage its own multimedia data everywhere. Nowadays, we all have a lot of different gadgets (smartphone, tablet and NAS) and the main aim is to provide the ability to share all these things with each other where ever you are.

Platform:        any embedded platform (include Android)

Tools:        Eclipse, C++11, boost, Android NDK,  JSDK 1.6, cmake, Google Protobuf

2013  ChessTV for Android

Client for the new chess TV in Russia with chatting, match discussions, archives of the previous programs & matches and social features. This app is based on my multimedia framework for Android. All broadcasting based on http live streaming with a lot of different kind of customizations. And I adapted FFmpeg HLS implementation for this stream.

Platform:        Android

Tools:        Eclipse, Intellij Idea, Android SDK, Android NDK, Android Compatibility Library,  JSDK 1.6, Gradle

2012,  VLC plugin for Interactive TV

I was developing this plugin in debugging purposes only. Although, we already have desktop clients (based on gstreamer) for our Interactive TV platform, I was needed to verify the quality of displaying data on different devices (cubieboard, cubox, allwinner sticks & element14 freescale i.MX6, rockchip sticks)

Platform:        Linux

Tools:        C/C++, Eclipse, cmake, Sublime Text2

2012,  Fixing Samsung HDMI driver for SoC Exynos

The main goal is to adapt Odroid BSP to provide 50Hz refresh rate & full HDMI-CEC features.

I achieved this goal to redesign HDMI linux kernel driver and patch whole Android video output stack.

Platform:        Linux Kernel

Tools:        C, Eclipse, Sublime Text2

2012 to 2014,  Interactive TV for Android

I’m a team leader of this project. For now, in my team I have two developers. At the beginning this app was developed by me from the ground. The whole UI part is in the cloud and delivers by h264/AAC to the clients and the core feature of this client is to be very responsive on user’s touch. Another target of this app is to be adjustable for TV screens and support different TV refresh rates (50Hz & 60Hz). And the third thing which we supported on the client side is adaptive bitrate to be  ready for the real world issues (it works for Android devices 2.3 & higher).

This app uses the whole capacity of the Android multimedia subsystem (OpenMAX, OpenSLES).

Platform:        Android

Tools:        Eclipse, Intellij Idea, Android SDK, Android NDK, Android Compatibility Library,  JSDK 1.6, Gradle, Google Protobuf

2013  DigitalOctober for Android

It’s Android native client for http://digitaloctober.ru. This app was developed for smartphones and tablets with a good looking UI.

Platform:        Android

Tools:        Intellij Idea, Android SDK, Android Compatibility Library,  JSDK 1.6, Gradle

2013  Mafon for Android

Dive to the 80’s!  Helped to implement multimedia stuff & visual effects.

Platform:        Android

Tools:        Android SDK, Android Compatibility Library,  JSDK 1.6, Gradle

2012  Gipis for Android

        Mobile app for tracking and planning sport activities, synchronization all data with server and analyzing achievements. The main goal is to give to the user possibility to control the weight and body parameters.

Platform:        Android

Tools:        Intellij Idea, Android SDK, Android Compatibility Library,  JSDK 1.6, Maven

2012  Backend for Qlue.net

        It’s social feed aggregator. The user could add all social accounts (facebook, vk.com, twitter, digg.com, yammer) to qlue.net and track it’s own feed in one place.

Platform:        Java EE

Role:        I was developing server side part, integration with mongodb and storing all multimedia data to the gridfs. Also all social integration things were on me and worked perfectly.

Tools:        Intellij Idea, JavaEE, Spirng, Spring Security, Scribe (oauth & oauth2 framework),  JSDK 1.6, Maven

2011  B2B client

        Client for managing orders of trading in the cloud. Google C2D messaging is used for notifications of new orders on the server. Voice recognition and full test search are used for searching and managing products in orders. And user has possibility to plot productivity charts of trading activity

Platform:        Android

Tools:        Intellij Idea, Android SDK, Android Compatibility Library,  JSDK 1.6

2010  Calls Analyzer

        Programmed and created a pilot call analyzer on Google Android and Google AppEngine through Java. Fully implemented the calls logger and geo-analyzer that gives information on location of user and financial data.

Platform:        Android

Tools:        Intellij Idea, Android SDK, JSDK 1.6

2010  Music Player for Popular Clouds

        Fully implemented playing and storing songs locally and encrypting them to prevent piracy. Synchronization with last.fm and possibility to manage playlists on the clouds.

Platform:        Unix, Linux, MacOsX, Windows

Tools:        C++, Qt, QtCreator

2009  FOREX trading robot

        Robot as a plugin for Metatrader appliance which was based on candlesticks analysis

Platform:        Metatrader

Tools:        C

2009 to 2010, Single Sign-On Enterprise Solution

I was in the L3 team and was involved in continous product enhancement (fixing critical bugs, implementing important features for separate customers). It’s a collection of applications that extend security model and bring new user experience for Windows enterprise networks. It was a big enterprise project with international team (about 30 members only in L3 team from US, Russia, India, Ukraine).

Platform:        Windows

Tools:        MSVC 2005, ATL, COM, WTL, boost, C++, JavaEE

2008 to 2012, Intelligent Performance Tuning Engine

As Software Developer, I developed the system to test a network and monitor the engine that allowed exposing existing capacity of users’ networks, applications, and hardware components. The main problems that could be solved by this engine are the unwanted disconnects, slow response times, and underutilized systems. The engine analyzes all aspects of users’ environment, from edge to core, and then creates optimum configuration profiles for all of user systems. The developed engine supported a completely automated method of applying real-time optimization of the SharePoint, Exchange and VMware implementations.

Platform:        Linux

Role:        Implementation of the server core (network metrics analyzer and special patch for kernel that allows to collect data from MAC layer) in C/C++

                Design and implementation of server API and reports in Perl

Tools:        Perl5, C/C++, boost, HTML/CSS, JavaScript, SOAP, Shell, Vim, Apache2 (mod_perl2/CGI), VMware vSphere SDK

2005 - 2008 Link Level Simulator

Customer:        Samsung

Description:        Development of the physical layer of 802.16d and 802.11g standards. The project was aimed at the development of a simulator that would emulate all the physical features in 802.16d/e and 802.11g, such as the following: convolutional turbo coder, OFDMA, permutation schemas.

Platform:        Windows

Tools:                Visual Studio C++ 2003, Win32 API, boost

Position:        Software Developer

Role:                Development of the optimization features for Link Level Simulator

2006 - 2008 System Level Simulator

Customer:        Samsung

Description:        That simulator allowed a user to emulate MAC and PHY levels for broadband wireless protocols (such as 802.16 d/e and 802.11g/n standards), to change channel model and number of antennas for base and mobile stations. The tool had the GUI to change the simulator settings and observing the simulation process.

Platform:        Windows

Tools:                Visual Studio C++ 2003, Win32 API, ATL, boost

Position:        Software Developer

Role:        Design and implementation of the user interface, radio engineering, development and optimization of the core. After implementation, I supported System Level Simulator for 3 years (optimization, debugging, implementation of new features)

2005 - 2008 SCM for WiMAX System Simulator

Customer:        Samsung

Description:        Spatial Channel Model (3G channel) implementation for WiMax Simulators. The simulator allowed testing SISO and MIMO systems and comparing results in the GUI.

Platform:        Windows

Tools:                Visual Studio C++ 2003, wxWidgets

Position:        Software Developer

Role:        Design and implementation of the user interface, radio engineering, development and optimization of the core

2005 VoIP Chat Based on ACM Windows Subsystem

Customer:        SkyLink

Description:        Development of a messenger with VoIP function. The main goal was to allow a user to change codec and traffic settings.

Platform:        Windows

Tools:                Visual Studio C++ 2005, ACM, Qt

Position:        Software Developer

Role:                User interface development, implementation of the VoIP functionality.

2008 Handled MP Software Development for NVIDIA CUDA

Customer:        Samsung

Description:        Convolutional coder and Viterbi decoder for working on GPU. That module was developed for simulations (SLS, LLS and others) in which it was used to accelerate imitation processes. Also it was used in some other products for encoding/decoding large amounts of data.

Platform:        Linux

Tools:        C, Vim, NVIDIA CUDA

Position:        Software Developer

Role:                Implementation of convolutional coder and Viterbi decoder parts for NVIDIA GPU

Programming Languages:

C, C++, Java, Perl, Python, Shell, Assembler (x86)

Databases:

MySQL, PostgreSQL

Platforms and APIs:

Boost, Linux, SunOS, Solaris, LAMP, STL, Boost, ATL, COM, WDM, Windows API, VMware vSphere, MATLAB, NVIDIA CUDA, Qt, wxWidgets, Android, Django, Mojolicious, WWW::Mechanize

Network Protocols:

AODV, HTTP, DHCP, SNMP

TCP, UDP, RTP

ARP, ICMP, IGMP

Ethernet, 802.11 WiFi, 802.16 WiMax

OFDM/A

Development Environment:

Microsoft Visual Studio 6.0, 2003, 2005, 2008, 2010

Vim, Eclipse, NetBeans, Intellij Idea, PyCharm, Komodo

Version Control Systems:

Subversion, CVS, git, Mercurial, Surround SCM