Contact

About me

Dmytro Yurchenko
Senior Software Engineer
I am self-taught software developer with background in Applied Mathematics (started learning programming since I was 9 years old and still continue). Data, and more importantly information that it contains, makes a big difference between companies that use it strategically and companies that don’t. Thus I am strong believer in data-oriented approach to business development. My primary areas of interest are cloud solutions, machine learning and massive parallel data processing.

Work history

  • SIO AG 12.2016 — now
    Cologne, Germany
    Senior Software Engineer
  • Online Dating Genie 04.2016 — 11.2016
    Software Engineer / Consultant
  • BetGame 12.2015 — 03.2016
    Software Engineer / Consultant
  • AMMODIT project 05.2014 — 06.2016
    Data Scientist
  • Samsung R&D Center Ukraine 03.2013 — 09.2013
    Software Engineer
  • Early freelance experience 2011 — 2012
    Software Engineer
  • SIO AG

    12.2016 — now
    Cologne, Germany
    Senior Software Engineer

    Developing cloud-based ERP solution with 3-layered architecture.

    • Designed and implemented core parts of the ERP, like search subsystem, modules compilation, referential integrity and other subsystems.
    • Designed and implemented parts of REST API.
    • Performed data migrations from customers' legacy systems to our ERP software.
    • Implemented integration with external APIs, like PayPal+ Payment API.
    • Improved performance of frontends (reduced average page loading time from 3 seconds to 700ms).
  • Online Dating Genie

    04.2016 — 11.2016
    Software Engineer / Consultant

    Improved PyQt-based software for scrapping online dating websites (Python, Qt, Django, Fminer, Scrapy).

    • Improved performance and reliability of software;
    • Improved stability of scrapping and mechanism to avoid bot blockers by mimicking real human actions;
    • Implemented collection of statistics and analysis of several metrics like positive responses per different factors (message text, age, time, nationality and other).
  • BetGame

    12.2015 — 03.2016
    Software Engineer / Consultant

    Developed solution that allows participants to place bets on e-sports professional matches like Dota 2, Starcraft, etc.

    I implemented tracking of online matches progress similarly to https://www.trackdota.com/, so it was possible to see what is going on in nearly real time. Data, which was collected during online matches, was later used to predict future matches outcome, like what event will happen (who will destroy first tower, who will win the match and other).

    • Designed architecture of system and built ETL pipeline for data cleaning and transformation (RabbitMQ, PHP);
    • Collected massive datasets of Dota 2 professional matches snapshots (~4 million records / week), leagues, players, etc. from Steam API (stored in MySQL);
    • Developed statistical models to predict Dota 2 in-game events and implemented odds generation from statistical models predictions;
    • Implemented website, which displayed data analysis results and current state of a match in real time (AngularJS).
  • AMMODIT project

    05.2014 — 06.2016
    Data Scientist

    Worked in collaboration with researchers of Johan Radon Institute for Computational and Applied Mathematics, Österreichische Akademie der Wissenschaften (ÖAW) and National Technical University of Ukraine “Kyiv Polytechnic Institute”. The topic of research was improvement in accuracy prediction of nocturnal hypoglycemia events before sleep for type 1 diabetes patients (http://www.biomech.polimi.it/ammodit):

    • Developed a model by using modifications of existing machine learning algorithms like AdaBoost and CART decision trees. Model provided 48% better predictions by Matthew’s Correlation Coefficient than the best published model;
    • Implemented model in R (tree training) and Python (data cleaning and transformations).
  • Samsung R&D Center Ukraine

    03.2013 — 09.2013
    Software Engineer

    I was part of R&D team in Samsung that was gathered for solving sophisticated mathematics problem (concerning reinforcement learning techniques).

    My responsibilities were mostly concerned with software design, coding, testing, development of algorithms and mathematical models. Software was implemented in C++.
  • Early freelance experience

    2011 — 2012
    Software Engineer

    From 10.2012 — 03.2013:
    Led team of 5 web developers during development of website of Department of Applied Mathematics (PHP, Drupal 7):

    • Educated and mentored teammates;
    • Coordinated team members, reviewed code;
    • Implemented small part of the website's custom code;
    • Gathered requirements, planned development and communicated directly with employer.

    From 2011 year till late 2012:
    Developed several dozens of projects in PHP, Javascript, C++ as freelancer.

    Perhaps, the most notable project was advertisements delivery system called "Advhost" (04.2012 — 08.2012):

    • Implemented frontend in Prototype.js;
    • Implemented backend in PHP;
    • Made delivery of advertisements via FTP completely automatic;
    • Delivery of advertisements was parallelized (using pthreads), so ~10,000 websites from database (MySQL) could be updated on average within 3-4 minutes.

Skills

This is far from complete list of my skills, but can provide an outlook of my interests and area of expertise.

Programming languages

C, C++, Javascript, Python, PHP, R, SQL, Java

DBMS and caching software

MySQL, MongoDB, Redis, ElasticSearch, Oracle, SQLite, Memcache, Apache HBase, Amazon S3

Data intelligence tools

Tableu, numpy, plotly, SciPy, pandas

Big data

Apache Hadoop, Apache Spark, Apache Storm, Apache Hive, Airflow, DataBricks, Apache Zeppelin, Jupyter, Hortonworks Data-Management Platform

Machine learning

Neural Networks, Decision Trees, Probability Theory, Statistics, Discrete Math

QA tools

Protractor, Selenium, PhpUnit, GoogleTest, JUnit, PyUnit, xdebug, valgrind

Message brokers

RabbitMQ, Apache Kafka

Frameworks

C++ / Qt, JS / React with Redux, JS / Angular, JS / Aurelia, Python / Django, PHP / Symfony, PHP / Laravel

Common tools and knowledge

Git, Vagrant, Docker, Kubernetes, Jenkins, OOP, TDD, BDD, Microservices, Event Sourcing, Design Patterns

Education

Master of Science in Applied Mathematics / Accomplished with honours (score 4.98)
Thesis "Predicting nocturnal hypoglycemia in patients with type 1 diabetes by using machine learning techniques"
NTUU "Kyiv Polytechnic Institute"
Department of Applied Mathematics, Faculty of Applied Mathematics
09.2014 – 06.2016
Bachelor of Science in Applied Mathematics / Accomplished with honours
Thesis "Mathematical model and software for English text-to-speech conversion"
NTUU "Kyiv Polytechnic Institute"
Department of Applied Mathematics, Faculty of Applied Mathematics
09.2010 – 06.2014

Publications

Abstracts "Selection of the key values of CGM readings for predicting night hypoglycemia in patients with type 1 diabetes mellitus"
18th International Conference SAIT 2016
Abstracts "Prediction of nocturnal hypoglycemia in patients with type 1 diabetes by using decision trees"
VII Conference of Young Scientists 2016 PMK

Contests

Google CodeJam 2018

Participated in Round 1C, has taken 2439 place

Hobby projects

  • Arcane Coast 2009 — 2017
    CRPG Fan Community
  • Binary VCS 2015 year
  • Reverse engineering of Lands of Lore game 2014 — 2015
  • TraChecker 2013 — 2015
  • Arcane Coast

    2009 — 2017
    CRPG Fan Community

    Arcane Coast is the website of Russian Baldur's Gate, Icewind Dale and Planescape: Torment game series fan community.

    This project was started in 2009 as list of modifications and grew up to CRPG fan community. The community is mostly translating modifications into Russian, making new mods and discussing old and new games. At the moment of writing, it has about 8300 members.

    First version of the website was written in plain HTML + CSS and PHP. For second version of the website I made small CMS using native PHP, native Javascript and MySQL. Though it had major software design mistakes, I have got a lot of experience. Actual website is the third remake of Arcane Coast engine. It is based on Symfony2 framework, Twitter Bootstrap, jQuery and MySQL. This latest remake of the engine was done in 2015.

    All versions of the website were designed and developed by me from scratch.

    The website uses phpBB as bulletin board engine.
  • Binary VCS

    2015 year

    https://github.com/metamaker/binvcs

    I had an idea to build VCS (version control system) that could easily manage big files.

    At that time I was developing some small indie game called "The Wandering". We were using git and immediately stuck with versioning of big binary files (we had plenty of assets like 3D models, images, sounds, etc.). The initial design documents and some parts of implementation of binary VCS in C++ are available on my Github. After we finished and used it for some small time, git-lfs became available and our custom VCS application wasn't really needed any longer.
  • Reverse engineering of Lands of Lore game

    2014 — 2015

    Set of programs, which was designed to help translate Lands of Lore game into Russian.

    Since Lands of Lore is pretty old game and it was hard to find any good documentation on its internal structure, I had to reverse engineer its executable and find how it performs unpacking of its packages, how it treats fonts, etc. As a result, I developed set of utilities:

    • Converter of .DIP translation files of Lands of Lore game into Microsoft Excel .XLS files and vice versa;
    • C++ library that provides a way to work with various Lands of Lore's formats like .ENG, .DIP, .GER, .FRE (translation files), .PAK (in-game archive files) and .FDT (file table);
    • Editor for in-game bitmap fonts;
    • Utility to pack modified files back into game packages.

    Source code of utilities (C++):

    https://github.com/metamaker/loldipxls
    https://github.com/metamaker/lollibs
    https://github.com/metamaker/lolfonteditor
  • TraChecker

    2013 — 2015

    This application was part of my effort to help Arcane Coast community with translations.

    TraChecker is a text editor with built-in syntax checker for WeiDU translation format. WeiDU is a standard in modding community and .TRA files contain translations for Baldur's Gate, Icewind Dale and Planescape: Torment modifications.

    Main features of this application are capability to batch check files and convert translations from .TRA to .TLK (Infinity Engine games inner format) and vice versa.

    Source code (C++):

    https://github.com/metamaker/trachecker
dyurchenko.dev@gmail.com I am always happy to connect, so don't hesitate to drop me few lines ;)

Dmytro Yurchenko