Scroll To View More
Dmitry S. Kravchenko, Neural Networks Developer in Moscow, Russia
Dmitry S. Kravchenko

Neural Networks Developer in Moscow, Russia

Member since October 2, 2015
Dmitry is a programmer, software architect, IT consultant, and ML enthusiast with over twenty years of experience. He began his career building code for programmable calculators and mainframes when there were no PCs in the USSR. His first language was C++, which he has used to build various scientific programs. Over the years, he has specialized in AI technologies, machine learning, and image recognition. Dmitry has an MSc degree in physics.
Dmitry is now available for hire

Portfolio

Experience

  • C++, 20 years
  • MATLAB, 20 years
  • Java, 20 years
  • C#, 19 years
  • JavaScript, 10 years
  • Neural Networks, 10 years
  • Machine Learning, 5 years
  • Python, 3 years
Moscow, Russia

Availability

Part-time

Preferred Environment

IntelliJ, Eclipse, Visual Studio

The most amazing...

...thing I plan to develop is the absolute last word in programming languages, allowing for the expression of arbitrary knowledge.

Employment

  • Programmer

    2019 - PRESENT
    Yandex
    • Just started.
    Technologies: Map Reduce, C++, Python, Neural Networks, Cluster Computing, Big Data
  • Machine Learning Engineer

    2017 - 2019
    Presenso
    • Wrote a proof-of-concept project with Python+Keras+TensorFlow, to show the capability of deep models to predict time-to-failure values for industrial machines. Showed it is possible to improve system performance for some customers with larger amount of ground truth data available.
    • Wrote a tool to automate model selection and hyperparameter search with the help of Matlab's Bayesian optimization and Python scripts for model deployment.
    • Added automatic feature selection capability to the system, which allowed for improvement of model performance by several points.
    • Improved Matlab visualization code to be capable of displaying hundreds of features simultaneously.
    • Supported usage of analytics company software by other divisions; performed presentations and manuals.
    Technologies: Java, Hadoop, Spark, Weka, Matlab, Python, TensorFlow, Linux
  • Machine Learning Engineer

    2018 - 2018
    RAD Software (via Toptal)
    • Implemented an algorithm from a scientific paper with the help of parallel computing in TensorFlow.
    Technologies: Python, TensorFlow
  • Developer (GIS and Python)

    2017 - 2018
    Energent Group (via Toptal)
    • Wrote a Python script that reads a GeoJSON file with client-provided point of interest (POI) list and downloads satellite images from Sentinel-2 hub service to AWS or S3. The script is able to update a set of images on GeoJSON change.
    • Created a simple Node.js/Jade/PUG website which shows downloaded images to the user and allows them to manually classify them against a set of classes provided (for subsequent supervised machine learning). Results are saved on AWS or S3 in JSON format.
    • Created a deep (convolutional and recurrent) neural network model with the help of Keras and Tensorflow and trained it against the collected trainset on GTX 1070 GPU with CUDA and CuDNN. Trained weights are saved in HDF5 format on AWS or S3.
    • Created a web service to perform prediction online with the help of Flask/Jade.
    Technologies: Machine Learning, Python, Tensorflow, Keras, AWS, S3, Flask, Node.js, JavaScript, GIS, Sentinel
  • Google Maps Developer

    2017 - 2017
    Beyond Map (via Toptal)
    • Wrote a custom Google Maps-based JavaScript widget with custom layers containing regions, geospatial information, custom tilesets, popups, markers, diagrams, and more. The widget includes geospatial filtering, keeping only that data which falls into the Google Maps frame.
    • Connected the widget to the existing Laravel blade template from the existing customer project. Worked with a Bitbucket repository provided by the customer.
    • Installed an Amazon Beanstalk web server for the customer to be able to see updates online. Deployed the site onto this server regularly.
    • Wrote a Java desktop program to generate and process demo and customer data. This includes creating and populating a SQLite database and generating custom PNG tilesets.
    • Created a Laravel controller (service) to serve geospatial data for the widget. The controller was able to access the SQLite database and produce GeoJSON responses for the widget.
    • Created a proxy Laravel controller (service) to access the third-party Yelp Fusion API and prepare its responses in GeoJSON format for the widget.
    Technologies: Goole Maps, GeoJSON, JavaScript, Yelp Fusion API, Laravel, PHP, SQLite, Java, Spring Data JPA, GeoTools, PhpStorm, IntelliJ
  • Programmer

    2016 - 2016
    CIRECA Theranostics, LLC (via Toptal)
    • Created an "overlay widget" in Java, which can be embedded in both MATLAB and Java applications and is able to display and manipulate multilayered scientific vector graphics data.
    • Built a database layer for a Java GUI application, allowing it to interact with "bound" JavaFX objects.
    • Developed an API to mix Spring Framework and JavaFX.
    • Created a desktop laboratory information and data mining system.
    • Wrote a test environment and manual protocol to use when disconnected from the internet.
    • Developed a domain-specific language (DSL) to query medical data with the help of Antlr4.
    • Wrote MATLAB functions to "glue" Java and MATLAB and test interactions.
    Technologies: Java, MATLAB, MySQL, Linux, JavaFX, Spring
  • GIS Developer

    2016 - 2016
    Trackmatic Solutions (via Toptal)
    • Created a web service to query the MongoDB database and analyze the resulting data by geospatial properties with the help of GeoTools.
    • Developed a demo for the front-end, which displayed an open street map layer and found data on additional layers.
    • Wrote unit tests with the help of MockMVC, Jackson, and more.
    Technologies: Java, Spring, GeoTools, MongoDB, JavaScript, GeoJSON, Turf.js, Leaflet
  • Software Developer

    2013 - 2015
    Image Recognition and Training Framework
    • Developed software to build, test, train, and run learning graphs and deep neural networks.
    • Reached performance of 80% on reCAPTCHA.
    Technologies: Java, MATLAB, Neural Networks, Image Processing
  • Software Developer

    2012 - 2012
    Freelance
    • Modified a Red5 server to get custom sound generation, capturing, processing, and recognition.
    Technologies: Xuggler, CMU Sphinx ASR, Google ASR API and Mary TTS, Adobe Flash, RTMP Protocol
  • Software Developer

    2009 - 2011
    Freelance
    • Developed a voice-controlled personal assistant knowledge-based mobile application.
    Technologies: AIML (Alicebot, ProgramD), SPARQL (Apache Jena, Wikidata), RDF
  • Software Developer

    2010 - 2010
    Freelance
    • Wrote multiple programs to scrape web data and put it into a SQL database.
    Technologies: C#, MS SQL, SQL
  • Software Developer

    2008 - 2009
    Freelance
    • Developed CAPTCHA recognition software with the help of neural networks trained in MATLAB on the cluster of several workstations and ran in Java or C#. Achieved efficiency was up to 97% per symbol on some image types.
    Technologies: Java, C#, MATLAB, Neural Networks, JavaFX, Swing, ImageJ, JHLABS Filters, Piccolo2D
  • Software Developer

    2007 - 2007
    Freelance
    • Developed an inference engine and knowledge storing sytem to solve simple logical puzzles like Zebra puzzle.
    • Used core Java, including multithreading.
    • Created custom logic language and wrote my own interpreter.
    Technologies: Java, Multithreading, Spring
  • Software Developer

    2007 - 2007
    Freelance
    • Learned speech recognition and production models like HMMs.
    • Used an undocumented Google ASR API.
    • Wrapped PorgramW into Apache MINA.
    • Developed a voice-based question answering program.
    • Developed corpus collection software from TV closed captions in C++.
    Technologies: C++, Java, CMU Sphinx, Google ASR, Mary TTS, AIML, ProgramW (AIML interpreter in Java), Apache MINA, TV Tuner Card, OpenEphyra
  • Co-Founder and Developer

    2002 - 2006
    Vsetech.ru
    • Developed and implemented a custom non-SQL (graph) database system.
    • Created custom web templates using Java, JSP, and servlets.
    • Built a custom content management system called Webmet CMS with Java and Tomcat.
    • Used the Webmet system to build and manage an academic website.
    Technologies: Java, Tomcat, Servlets, Firebird, MySQL
  • Senior Expert

    1997 - 2002
    Russian Federation Central Bank
    • Created different workflow automation software to access desktop applications and Oracle on client servers.
    • Managed a small team of developers.
    Technologies: C++, VB, MS Access VBA, Oracle, MS SQL
  • Analyst

    1994 - 1995
    Trust-Service Brokerage Company
    • Analyzed stock market trends using an original algorithm to calculate the stock market index.
    Technologies: C++, Excel, VBA
  • Analytical Division Head

    1994 - 1995
    National Information Agency
    • Built software to collect share quotations.
    • Produced weekly TV reports about the share market.
    • Helped develop a satellite network for transferring quotations.
    Technologies: Microsoft Access, VBA, C++
  • Graduate Student

    1994 - 1994
    Nuclear Physics Research Institute, Moscow State University
    • Defended a thesis on the computer modeling of atomic nuclei collisions using 3D hydrodynamic modeling.
    Technologies: C++, Linux

Experience

  • Geospatial Web API (Development)
    http://inthemoon.net/geospatial-web-api/

    Developed a web application and API to convert geographical coordinates to street information in vehicle tracking system. Solved the problem of incorrect GPS coordinates by analyzing neighbor street traffic regulation data. Reached real-time performance with MongoDB spatial indexing.

  • Watergame (School Project) (Development)
    https://inthemoon.net/watergame-school-project/

    Developed a web presentation and 2D animated game with one level. Designed the custom tileset in Adobe Illustrator. Used Construct-2 for an engine.

  • Image Recognition Deep Learning Framework (Development)
    https://inthemoon.net/image-recognition-deeplearning-framework/

    Distributed computing software, based on MATLAB Distributed Server and Java (as controller), which allowed users to build graphs for computation and training tasks over multidimensional data. The project was paused after Google's TensorFlow was disclosed.

  • Voice Controlled Personal Assistant (Development)

    A mobile application, which is able to answer questions and execute simple tasks. Users can make all requests with their voice. Written in Java, AIML, CMU Sphinx, Mary TTS, and HTML5.

  • Inference Engine (Development)

    Built a system that is able to solve logic puzzles like the Zebra Puzzle. The engine was written in a custom knowledge presentation language.

  • Webmet (Development)

    Webmet is a custom content management system and non-SQL database.

Skills

  • Languages

    Java, C#, HTML, JavaScript, C, C++, SQL, JADE, Pug, Python, HTML5, CSS, Visual Basic for Applications (VBA), PHP, Visual Basic, Groovy, R, UML, Octave, Coq, XML, OWL, SPARQL, RDF
  • Libraries/APIs

    Java Collections, Keras, Node.js, Google Maps JavaScript API 3, Google Maps API, Jackson, Selenium WebDriver, Java Servlets, JDBC, TensorFlow, jQuery UI, jQuery, AngularUI, Google Gson, Matplotlib, Google Vision API, Adobe RTMP, FFmpeg, OpenCV, Pandas, NumPy, Scikit-learn, LeafletJS, Deeplearning4j
  • Tools

    MATLAB, IntelliJ IDEA, Eclipse IDE, Adobe Photoshop, Fiddler, Maven, Mathematica, Microsoft Visual Studio, Android Studio, dbForge Studio, MySQL Workbench, Apache Tomcat, GIS, Gradle, COLT, Flash, Blender, Subversion (SVN), 3ds Max, Blender 3D, GeoTools, Enterprise Architect, Apache Maven, Apache Ant, ANTLR, Microsoft Excel, Scikit-image, Adobe Illustrator, Xdebug, Jira, GitHub, Git
  • Storage

    SQLite, AWS S3, Spring Data JPA, Microsoft SQL Server, Firebird, MySQL, H2, MySQL/MariaDB, JSON, Neo4j, MongoDB
  • Other

    Math, Image Recognition, Deep Learning, Machine Learning, Audio Editing, HTTP, Networks, Neural Networks, Image Processing, Speech Recognition, Red5, Physics Simulation, Xuggler, Jhla, Commons, CMU, Multithreading, Apache Commons, Convolutional Neural Networks, VNC, Tesseract, TCP/IP, FTP, Semantic Web, SSL, HTTPS, POP3, SMTP, RTP, RTMP, Speech Synthesis, ASR, Natural Language Processing (NLP), Liferay
  • Frameworks

    Swing, Spring, Adobe Flex, Google Guava, HtmlUnit, Spring MVC, Bootstrap, AngularJS, JPA, JUnit, Zend Framework, Flask, Laravel, jMonkeyEngine, Spring Boot, Unity3D, Unity, Apache Jena, Apache MINA
  • Platforms

    Amazon Web Services (AWS), Windows, Linux, NetBeans, Apache Kafka, AWS Elastic Beanstalk, Oracle, JavaFX, Arduino, Android
  • Paradigms

    Functional Programming, Dependency Injection, Concurrent Programming

Education

  • Nanodegree in Machine Learning
    2016 - 2017
    Udacity - Online
  • Certificate in R Programming
    2015 - 2015
    Coursera - Online
  • Certificate in Machine Learning
    2015 - 2015
    Coursera - Online
  • Master's degree in Physics
    1989 - 1995
    Moscow State University - Moscow, Russia
I really like this profile
Share it with others