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
Lead Android Developer
Designed & implemented low-level multimedia framework for Android
P2P share/broadcast multimedia solution
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