About
Software Engineer with 14+ years of experience, mostly Java and JVM-based languages such as Clojure and Groovy.
Passionate about Java, JVM, performance, benchmarking, data structures and reactive streams.
Looking for new challenges. Product companies are preferable, full time, remote is preferable for now, but an office is not an issue; relocation to another city/country is not an issue.
Contacts
- Email: hdpmail@pm.me
- LinkedIn: dmitriy-gorkhover
Skills
- Languages: Java (6+), Clojure, Python, JavaScript, Go, Shell (sh, bash, zsh)
- Frameworks: Spring (Boot, Web, etc.), Reactive Streams (RxJava, Project Reactor), gRPC, Quarkus, Apache Spark, ReactJS, Redux
- Databases & Messaging: PostgreSQL, Redis, Kafka
- DevOps: Docker, Docker Compose, Docker Swarm, Kubernetes, Ansible, Google Cloud Platform, AWS
- OS: Linux (Mint, Ubuntu, Alpine, CentOS), macOS, Windows
Experience
Data Platform Lead — Fozzy Group
May 2021 – Present · Remote
Tech: Go, Java
Senior Java Software Engineer — Grid Dynamics
Oct 2020 – Aug 2021 · Lviv, Ukraine
Full-Stack Engineer — Self-Employed
Jan 2020 – Sep 2020 · Lviv, Ukraine
- Personal R&D project — built a Kubernetes cluster on bare metal from scratch with Ansible playbooks (VirtualBox: Alpine, CentOS, Ubuntu).
- Developed a backend for a Telegram bot for scheduling different services (Java 11, Quarkus, GraalVM native image, Docker).
- Data processing for a retail company's recommendation platform, including some admin-console UI work.
Tech: Java, Go, Python, TypeScript, Quarkus, Spring Boot, Apache Spark, Kafka, Redis, PostgreSQL, Kubernetes, Docker, Ansible, Azure Data Lake, Angular, Prometheus, Grafana
Software Java Engineer — N-IX
Aug 2019 – Dec 2019 · Lviv, Ukraine
- Implemented a new gateway protocol — SMGP (Short Message Gateway Protocol) — with extensive unit-test coverage, for a client providing technology services to telecommunications companies.
- Fixed security vulnerabilities found with Fortify on Demand and SonarQube.
- Set up a Docker Swarm cluster with GitLab, Jenkins and SonarQube on a local Azure cloud to speed up the vulnerability-fix feedback loop.
Tech: Java 6, Apache Maven, Jenkins, SonarQube, Docker Swarm, Subversion
Senior Java Developer — Intellias
Nov 2018 – Mar 2019 · Lviv, Ukraine
- Implemented a new map-matching algorithm based on Hidden Markov Model + Viterbi algorithm.
- Provided a comprehensive comparison of map-matching algorithms and extended the matching pipelines with multi-algorithm support.
Tech: Java 8, Apache Maven, Jenkins, Git (Gerrit)
Software Engineer — LoopMe
Jul 2014 – Oct 2018 · Dnipro, Ukraine
- Developed a digital-advertising platform — high-load ad server, ad-targeting algorithms and real-time-bidding APIs — first in Clojure, then migrated fully to Java.
- Received the "Company Hero" award (given once every six months) for single-handedly delivering a difficult cross-language PoC integration.
- Spent ~2 years in the Data Science team building high-performance Java services delivering prediction and bidding models to production with ~1 ms response at the 99th percentile.
- Kept the framework footprint deliberately small, which eased later migrations across Java versions (8 through 12).
Tech: Java (8–12), Clojure, Spring Boot, RxJava, gRPC, Spark, Kafka, Cassandra, PostgreSQL, Redis, Elasticsearch, Clickhouse, Docker, Kubernetes, Jenkins, Grafana, Prometheus, Datadog
Java Developer — Ciklum
Jul 2014 – Nov 2015 · Dnipro, Ukraine
- Worked on the LoopMe project while it was Ciklum's outstaff project — see the LoopMe entry above.
Middle Software Engineer — Privat Bank
Jul 2013 – Jul 2014 · Dnipro, Ukraine
- Developed internal web projects for the business department.
Tech: Java (6–8), JavaScript, Spring 3, jQuery, Angular 1, PostgreSQL, Redis, Apache Maven, Jenkins
Junior Software Engineer — Privat24 (Privat Bank)
Feb 2012 – Jul 2013 · Dnipro, Ukraine
- Developed and modernized the Ukrainian internet-banking system Privat24 (Ukraine, Georgia and A-Bank flavours) — features, support, bugfixing, unit testing.
- Migrated the Privat24 Georgia project from Java 6 + Apache Ant to Java 7 + Spring + Apache Maven + Git over four weekends, without a mentor — stressful, but a formative experience.
Tech: Java 6/7, JavaScript, Java EE (EJB, Resin), Spring 3, jQuery, Backbone, Sybase, Redis, RabbitMQ, Jenkins
Education
Master of Computer Science —
Ukrainian State Chemical Technology University
Sep 2010 – Jun 2011 · Dnipro, Ukraine
Bachelor of Computer Science —
Ukrainian State Chemical Technology University
Sep 2006 – Jun 2010 · Dnipro, Ukraine
Languages
- Ukrainian: Native
- English: Intermediate
- Russian: Fluent
- German: Elementary
Hobbies
Traveling, Motorcycles, Gym, Football, Cars, Bicycles