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, Contractor
  • BetGame 12.2015 — 03.2016
    Software Engineer, Contractor
  • AMMODIT project 05.2014 — 06.2016
    Researcher
  • 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 for SIO AG (Cologne, Germany); see https://www.sio.com. I am designing, implementing and testing core parts of the ERP, helping business to solve technical challenges that we encounter along the way.

    • Designed and implemented mission-critical parts of the solution, like search and booking subsystems, as well as access to them through RESTful API;
    • Implemented event-based and batch synchronization of data between subsystems;
    • Improved performance of frontend (average loading time for page was reduced from 3 seconds to 700ms).
  • Online Dating Genie

    04.2016 — 11.2016
    Software Engineer, Contractor

    Developed Python software solution for scrapping and analyzing data from online dating websites. The end goal was to find patterns that would improve chances of having a date when using dating websites. I participated in full cycle of software development, from requirements engineering to testing to web scrapper scaling, data ingestion, data analysis and visualization of results. As result of EDA on data that we collected, we were able to increase response rate (our KPI) by about 10%.

    • 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, Contractor

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

    As result of the work, it was possible to watch match progress in real time, like on https://www.trackdota.com/. Data, that was collected during online matches, was later used to predict probabilities of in-game events, like who will destroy first tower, who will win the match, how long will game last, and so on.

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

    05.2014 — 06.2016
    Researcher

    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 with CART decision trees. Model provided 48% better predictions by Matthew’s Correlation Coefficient than the best published model at that moment;
    • Implemented model in R and Python.
  • Samsung R&D Center Ukraine

    03.2013 — 09.2013
    Software Engineer

    Worked in cross-functional team to create reinforcement learning system. I was developing and testing the system in C++, as well as fine-tuning statistical models and algorithms.
  • Early freelance experience

    2011 — 2012
    Software Engineer

    From 10.2012 — 03.2013:
    Led team of 5 web developers for developing website of Department of Applied Mathematics:

    • Educated and mentored teammates;
    • Coordinated team members, reviewed code;
    • Gathered requirements, planned development and communicated directly with stakeholder.

    From 2011 - late 2012:
    Worked on several projects in PHP, Javascript, C++ for small to medium size business.

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

    • Developed frontend and backend of the system;
    • Made delivery of advertisements via FTP completely automatic;
    • Optimized delivery of advertisements by multithreading, so single worker node could update ~2000 websites per minute.

Skills

Programming languages

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

DBMS and caching software

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

Data intelligence tools

numpy, plotly, SciPy, pandas

Big data

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

Machine learning

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

QA tools

Protractor, Selenium, JUnit, PyUnit, GoogleTest, PhpUnit

Message brokers

RabbitMQ, Apache Kafka, Amazon SQS, Amazon SNS

Frameworks

Java / Jersey, Java / Guava, Python / Django, C++ / Qt, JS / React with Redux, JS / Angular, JS / Aurelia, PHP / Symfony

Monitoring

ELK stack, Grafana, Prometheus, Amazon Cloudwatch

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

Hobby projects

  • Reverse engineering of Lands of Lore game 2014 — 2015
  • Arcane Coast 2009 — 2017
    CRPG Fan Community
  • TraChecker 2013 — 2015
  • 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
  • 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.
  • 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