Andriy Redko, Developer in Montreal, QC, Canada
Andriy is currently unavailable

Andriy Redko

Software Developer

Montreal, QC, Canada

Toptal member since August 5, 2014

Bio

Andriy is a seasoned and passionate software developer. He has significant experience developing complex distributed systems, service and microservice architectures, and web and desktop apps. He also excels at cloud computing and has a deep knowledge of databases and different NoSQL solutions.

Portfolio

Aiven Oy
Java, Amazon OpenSearch, Zstandard, Rust, Testcontainers...
Behavox
Elasticsearch, MySQL, Amazon S3 (AWS S3), Apache Spark, Microservices...
Upgrade
Microservices, Spring Microservice, RESTful Microservices, Pact...

Experience

  • Test-driven Development (TDD) - 10 years
  • Distributed Programming - 7 years
  • Java - 7 years
  • C++ - 6 years
  • JPA - 5 years
  • JAX-RS - 3 years
  • ASP.NET Web API - 3 years
  • Scala - 2 years

Preferred Environment

SBT, Apache Maven, Git, Subversion (SVN), Eclipse, Windows, Linux

The most amazing...

...project I've been a part of is the development of a project and feedback management suite.

Work Experience

Staff Software Engineer

2021 - PRESENT
Aiven Oy
  • Joined the OSPO (Open-Source Program Office) team to work full time as a contributor/maintainer to the OpenSearch project and its ecosystem.
  • Worked on OpenSearch Core (https://github.com/opensearch-project/OpenSearch), OpenSearch Security (https://github.com/opensearch-project/security), and OpenSearch Custom Codecs (ZSTD) (https://github.com/opensearch-project/custom-codecs).
  • Worked on OpenSearch Java Client (https://github.com/opensearch-project/opensearch-java), OpenSearch Rust Client (https://github.com/opensearch-project/opensearch-rs), and OpenSearch Testcontainers (https://github.com/opensearch-project/opensearch-testcontainers).
  • Worked on Spring Data OpenSearch (https://github.com/opensearch-project/spring-data-opensearch) and Liquibase OpenSearch (https://github.com/liquibase/liquibase-opensearch).
  • Created concurrent search support, new data types, streaming ingestion, HTTP/2 support, secure transports, API compatibility, observability (distributed tracing and metrics), containerization, and various snapshot cloud storage improvements (S3, Azure, and GCP).
  • Created integrations with Apache Flink (https://github.com/apache/flink-connector-opensearch) and Apache Hadoop (https://github.com/opensearch-project/opensearch-hadoop).
  • Created integrations with Apache Spark (https://github.com/opensearch-project/opensearch-spark), Liquibase, Testcontainers, Spring Data, Netty, Project Reactor, Apache Lucene, and many others.
Technologies: Java, Amazon OpenSearch, Zstandard, Rust, Testcontainers, Spring Data OpenSearch, Spring Data Elasticsearch, Liquibase, HTTP 2, Apache Flink, Hadoop, Apache Spark, Netty, Project Reactor, Apache Lucene, Test-driven Development (TDD), JUnit, Jira, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Dependency Injection, Eclipse IDE, JSON, Jackson, Tika, Joda-Time, Back-end, Back-end Development

Senior Software Engineer

2019 - 2021
Behavox
  • Joined the company on the product side to help out with Elasticsearch migration. Later on became a part of the platform team.
  • Worked on different aspects of the data processing pipeline (Apache HBase, Elasticsearch, and MySQL) and data management on a large scale (S3 and Apache Spark).
  • Contributed to the efforts of evolving the company’s monolithic platform towards service-based architecture (Spring Boot, Spring Cloud, Consul, and Zookeeper).
Technologies: Elasticsearch, MySQL, Amazon S3 (AWS S3), Apache Spark, Microservices, Spring Boot, Spring Cloud, Consul, Apache ZooKeeper, Test-driven Development (TDD), JUnit, SQL-99, NoSQL, DevOps, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Distributed Programming, Dependency Injection, Eclipse IDE, JDBC, JSON, Jackson, HBase, JBehave, Model View Controller (MVC), Java Transaction API (JTA), MapReduce, Apache Mesos, Back-end, Back-end Development

Principal Software Engineer

2018 - 2019
Upgrade
  • Joined the platform team to help the company in implementing the microservice architecture.
  • Initiated adoption of the consumer-driven contacts (Pact, Spring Cloud Contract, and OpenAPI) and messaging contracts (Avro and Kafka) and integrated the distributed tracing into the platform to provide observability (OpenZipkin and Jaeger) capabilities.
  • Drove Java migrations (Java 8 to 10 to 11, and further along) in accordance with the new Java platform release cadence, investing a significant amount of time into application monitoring (Prometheus and Grafana).
  • Maintained the platform by leading timely upgrades of the foundational libraries and frameworks across the service fleet.
Technologies: Microservices, Spring Microservice, RESTful Microservices, Pact, Spring Cloud Contract, OpenAPI, Apache Avro, Apache Kafka, OpenZipkin, Jaeger, Prometheus, Grafana, Java, Web Applications, Web App Development, Test-driven Development (TDD), JUnit, SQL-99, Agile Software Development, NoSQL, Continuous Deployment, Spring Security, DevOps, Jira, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Distributed Programming, Dependency Injection, Eclipse IDE, JDBC, JSON, Jackson, Continuous Integration (CI), WebSockets, Java Security, Model View Controller (MVC), Load Testing, Java Transaction API (JTA), Metaprogramming, Evolutionary Database Design, Kubernetes, Back-end, Back-end Development

Senior Technical Lead

2016 - 2018
PROS
  • Developed and guided on all technical aspects related to a real-time availability server: a highly scalable (thousands of requests per second) and highly available (multi-region cloud deployment) component.
  • Involved actively with services development (Dropwizard, Spring, Swagger, and OpenAPI), metrics instrumentation (Prometheus and Grafana), and low-level optimizations.
  • Participated in modernizing the rules evaluation engine (porting I/O to an asynchronous model in order to improve resource utilization) and data store evolution (Cassandra, Thrift, and CQL).
  • Helped establish modern continuous delivery practices (Jenkins and Docker) and analytics pipelines (Apache Spark).
Technologies: Dropwizard, Spring, Swagger, OpenAPI, Prometheus, Grafana, Apache Cassandra, Apache Thrift, CQL, Jenkins, Docker, Apache Spark, Ruby, Test-driven Development (TDD), JUnit, Behavior-driven Development (BDD), SQL-99, NoSQL, Jira, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Dependency Injection, Eclipse IDE, JDBC, JSON, Jackson, Continuous Integration (CI), Model View Controller (MVC), Load Testing, Java Transaction API (JTA), Metaprogramming, MapReduce, Back-end, Back-end Development

Staff Software Developer

2014 - 2016
AppDirect
  • Worked in several teams and touched upon different parts of the company’s core product, the application marketplace platform.
  • Involved with the platform modularization efforts, Elasticsearch integration, REST(ful) Web APIs (Apache CXF and Swagger) development, and distributed tracing (Apache HTrace) integration.
  • Contributed to the company’s move to a microservices architecture (RabbitMQ, Spring Boot, Hystrix, and Docker), backed by evolution and improvements of the testing practices (integration testing, component/service testing, and consumer contract testing).
Technologies: Java, REST APIs, CXF, Apache CXF, Elasticsearch, Swagger, RabbitMQ, Spring Boot, Hystrix, Distributed Tracing, Docker, RESTful Services, Spring, Web App Development, Test-driven Development (TDD), JUnit, Java Message Service (JMS), SQL-99, Agile Software Development, NoSQL, Continuous Deployment, Spring Security, Spring JDBC, DevOps, Jira, Spring Integration, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Distributed Programming, Dependency Injection, Eclipse IDE, JDBC, JSON, Jackson, Continuous Integration (CI), WebSockets, Apache Lucene, Java Security, Model View Controller (MVC), Load Testing, Java Transaction API (JTA), Metaprogramming, Evolutionary Database Design, Back-end, Back-end Development

Senior Software Developer

2012 - 2016
Radialpoint
  • Joined the core Java development team to work on the company's SaaS offering.
  • Participated actively in the development of various REST-based services (JAX-RS, Apache CXF, and Jetty).
  • Built data access layers on top of Oracle, PostgreSQL, and MySQL.
  • Implemented caching using Redis.
  • Utilized the SpringSource projects portfolio (Spring Framework, Spring Security Spring Data, and Spring Batch) and Hibernate/JPA.
Technologies: Python, Oracle, PostgreSQL, MySQL, Play Framework, Scala, Spring, JPA, Redis, REST APIs, JAX-RS, Java, Test-driven Development (TDD), JUnit, Behavior-driven Development (BDD), SQL-99, Agile Software Development, Scrum, Spring Security, Akka, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Dependency Injection, Eclipse IDE, JDBC, JSON, Jackson, OpenNLP, Mahout, Apache Axis, Java Security, Model View Controller (MVC), Load Testing, Functional Programming, Java Transaction API (JTA), Metaprogramming, Evolutionary Database Design, OpenJPA, OSGi, Back-end, Back-end Development

Software Developer

2011 - 2012
Northforge Innovations
  • Developed a web-based, highly interactive, close to real-time (using Servlet 3.0 API) network topology visualization solution.
  • Worked on a solution that provided up-to-date monitoring information for every element (alarms, statuses, rolled-up statistics, etc.) of customer networks.
  • Integrated the solution with many other services (using RMI, RMI over HTTP, and JGroups) to provide a consistent and complete network topology view.
Technologies: REST, Java, Ehcache, MongoDB, Groovy, Grails, Spring, JGroups, RMI, Java RMI, Java Servlets, Web App Development, Test-driven Development (TDD), JUnit, SQL-99, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Dependency Injection, Eclipse IDE, JDBC, JSON, Jackson, Model View Controller (MVC), Load Testing, Java Transaction API (JTA), Evolutionary Database Design, Back-end, Back-end Development

Senior Java Developer

2011 - 2011
Compuware
  • Elaborated web service consumers (JAXB 2.1), web services simulation (using Spring Web Services 2.0, JPA 2, and Hibernate 3.6.x) and portal development (Liferay 6.x).
  • Participated in web services integration and simulation using Spring Web Services.
  • Participated in the development of web portlets using Liferay 6x.
Technologies: SOAP, JPA, Liferay, Spring, Java, Hibernate, JPA 2, JAXB, Spring Web Services, Test-driven Development (TDD), JUnit, SQL-99, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Eclipse IDE, JDBC, JSON, Jackson, Model View Controller (MVC), Java Transaction API (JTA), Back-end, Back-end Development

Team Lead, Software Developer

2009 - 2011
FeatureSet Inc.
  • Led all aspects of server-side development using Jakarta EE, Spring Framework, Spring Flex, Quartz, Hibernate, Infinispan, AspectJ, FreeMarker, and Apache Tomcat.
  • Implemented search capabilities using Hibernate Search on top of Apache Lucene, Apache Solr, and Apache POI.
  • Involved in the architecture and implementation of asynchronous processing using Apache ActiveMQ.
  • Architected and implemented security features using Spring Security and in-house frameworks.
  • Participated actively in the elaboration of database schema for MySQL and PostgreSQL.
  • Involved in client-side development using Adobe Flex on top of Adobe BlazeDS.
  • Introduced and maintained TDD and BDD practices using JUnit tests, continuous builds, and integration using Apache Maven 2 and CruiseControl. Increased product quality considerably.
  • Used Groovy scripting extensively to speed up development and to build internal domain-specific languages.
  • Participated actively in the implementation of automated deployment for the Amazon EC2 cloud as well as the Eucalyptus cloud.
Technologies: PostgreSQL, MySQL, Apache Tika, Apache POI, Apache Lucene, ActiveMQ, Apache Tomcat, FreeMarker, AspectJ, JBoss Infinispan, Hibernate, Quartz, Flex, Spring, JEE, Java, Blaze, Test-driven Development (TDD), JUnit, SQL-99, Flash ActionScript, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Eclipse IDE, JDBC, JNDI, Tika, Adobe Flex, SAX, JAX-WS, Java Transaction API (JTA), Metaprogramming, Evolutionary Database Design, Single-page Applications (SPAs), Crucible, Back-end, Back-end Development

Software Development Consultant

2007 - 2009
ProQuo, Inc.
  • Used test-driven development (TDD), behavior-driven development (BDD), and aspect-oriented programming (AspectJ) regularly and actively.
  • Participated in all aspects of the development process, including the design of database schema, implementation of web services and business logic, and development of management tools.
  • Developed web applications (Tomcat, JSF, Facelets, and Ajax) with reporting and management functions.
  • Participated in the development of business logic and web services (Axis2).
  • Participated in the design of database structure and data access capabilities (Hibernate and MySQL).
  • Implemented a payment and subscription support system using PayPal API.
  • Used open-source software extensively.
  • Used the IntelliJ IDEA and Eclipse development environments and version control systems (Subversion and Bazaar).
Technologies: PayPal, MySQL, AspectJ, Apache Axis 2, Java, JSF, Hibernate, JEE, Test-driven Development (TDD), JUnit, SQL-99, Agile Software Development, PayPal API, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Eclipse IDE, Tika, SAX, JAX-WS, Java Transaction API (JTA), Back-end, Back-end Development

Senior Software Developer

2007 - 2007
LUXOFT UA
  • Contributed to the development of a distributed web-based people search engine (USA and Canada) using C++/Boost on top of the Linux platform.
  • Developed parsers, analyzers, indexers, and persistence layers (BerkleyDB) processing huge amounts (terabytes) of raw Internet data dumps in order to recognize relevant people's data (locations, related people, images, quotes, publications, and more).
  • Participated in the development of a simple web interface for search, allowing users to type first and/or last names and view all related information structured by categories.
Technologies: Berkeley DB, Boost, C++, Test-driven Development (TDD), Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code

Software Developer

2003 - 2007
Open Soft LTD
  • Developed software (Microsoft Visual C++ and COM) for online processing of digital signals (E1/T1).
  • Developed a CAD application for modeling a building’s heating systems (Microsoft Visual C++ and COM).
  • Developed an IrDA-based messenger for PC-PDA communication (Microsoft Embedded Visual C++).
  • Developed high-level drivers for various measurement devices (Microsoft Visual C++).
  • Created a distributed subsystem for online motion detection, recording, and notification (remote spying), configurable remotely via a web interface (C#, ASP.NET, and Microsoft Visual Studio Team Suite).
  • Developed a web-based expert system for managing international automotive legislations (C#, ASP.NET, Microsoft Visual Studio Team Suite, and Microsoft SQL Server).
  • Developed various COM/ActiveX components (Microsoft Visual C++, C#, and Microsoft Visual Studio Team Suite).
Technologies: ActiveX, Microsoft SQL Server, COM, Microsoft Foundation Classes (MFC), Microsoft Foundation Class (MFC) Library, ASP.NET, .NET, C#, C++, ASP.NET Web API, Object-oriented Programming (OOP), Concurrent Programming, Object-oriented Design (OOD), Clean Code, Standard Template Library (STL), JSTL

Software Developer

2001 - 2003
Ferplast Ukraine
  • Supported and extended an ERP system (Microsoft Visual C++, Borland C++ Builder, and COM).
  • Supported enterprise data analysis and reporting (Microsoft SQL Server).
  • Developed intranet web resources and informational portals (PHP and JavaScript).
  • Deployed enterprise application servers (Citrix MetaFrame).
Technologies: JavaScript, PHP, COM, Borland C, Microsoft SQL Server, C++

Software Developer

1999 - 2001
Actis
  • Developed eCommerce web sites (PHP).
  • Created an internal accounting subsystem (C++).
  • Developed internal online monitoring software (PHP and C++).
Technologies: PHP, C++

Experience

Redis: a NoSQL Key-value Store

http://academy.javacodegeeks.com/course/redis-a-nosql-key-value-store/
A tutorial for Java Code Geeks Academy on Redis as a NoSQL Key-value Store.

MongoDB – A Scalable NoSQL DB

http://academy.javacodegeeks.com/course/mongodb-a-scalable-nosql-db/
A tutorial for Java Code Geeks Academy on MongoDB as A Scalable NoSQL data store.

Tutorial | Microservices for Java Developers

https://www.javacodegeeks.com/2018/07/microservices-for-java-developers-introduction.html
This tutorial will talk about practical microservice architecture, starting from the core principles and progressively moving toward making it production-ready. There is a tremendous amount of innovation happening in this space, so please take everything we discuss in the tutorial with a grain of salt. The accepted practice of today might not hold its promise tomorrow. For better or worse, the industry is still building expertise and gaining experience in developing and operating microservices.

Education

1996 - 2001

Master's Degree in Computer Science

Žitomirs'kij Inženerno-tehnologicnij Institut - Zhitomir, Ukraine

Skills

Libraries/APIs

Java Servlets, JDBC, JNDI, Java Message Service (JMS), Jackson, JAXB, JAX-RS, JAX-WS, Java Transaction API (JTA), Tika, SAX, OpenJPA, PayPal API, Java Security, Apache POI, REST APIs, Quartz, Apache Lucene, Microsoft Foundation Class (MFC) Library, Standard Template Library (STL), OpenNLP, JSTL, Mahout, Joda-Time, Microsoft Foundation Classes (MFC), Hystrix, OpenAPI, Liquibase, JGroups, Java RMI, JPA 2

Tools

Git, Eclipse IDE, Amazon OpenSearch, Subversion (SVN), Apache Mesos, Borland C, Apache Tomcat, ActiveMQ, Apache Tika, Apache Maven, SBT, FreeMarker, Crucible, Jira, RabbitMQ, Grafana, Jenkins, Apache Avro, Apache ZooKeeper

Languages

Java, Scala, C++, SQL-99, C#, Groovy, AspectJ, PHP, Python, Ruby, Flash ActionScript, Assembler, JavaScript, Rust

Frameworks

ASP.NET Web API, JPA, Hibernate, Apache CXF, JUnit, CXF, OSGi, Grails, Play Framework, Akka, Spring Security, Spring JDBC, Spring, Apache Axis 2, Boost, ActiveX, JSF, .NET, Spring Integration, Apache Felix (OSGI), Jersey, Dropwizard, JBehave, ASP.NET, Flex, Adobe Flex, Apache Axis, Apache Thrift, Swagger, Spring Boot, Apache Spark, Spring Microservice, Hadoop, Netty

Paradigms

Test-driven Development (TDD), Object-oriented Programming (OOP), Concurrent Programming, Distributed Programming, Dependency Injection, Behavior-driven Development (BDD), Object-oriented Design (OOD), Clean Code, Microservices Architecture, Agile Software Development, Continuous Integration (CI), Functional Programming, Metaprogramming, Load Testing, Evolutionary Database Design, Continuous Deployment, Scrum, MapReduce, Model View Controller (MVC), REST, CQRS, DevOps, Microservices

Platforms

JVM, Windows, Linux, JEE, Kubernetes, Eclipse, Oracle, Docker, Apache Kafka, Apache Flink

Storage

JSON, Redis, MongoDB, PostgreSQL, MySQL, Elasticsearch, Spring Data Elasticsearch, NoSQL, HBase, Berkeley DB, JBoss Infinispan, Microsoft SQL Server, CQL, Amazon S3 (AWS S3)

Other

SOAP, Web App Development, PayPal, Back-end, Back-end Development, Ehcache, Liferay, COM, Blaze, Single-page Applications (SPAs), WebSockets, Distributed Tracing, Prometheus, Apache Cassandra, RESTful Services, RESTful Microservices, Pact, Spring Cloud Contract, OpenZipkin, Jaeger, Spring Cloud, Consul, Zstandard, Testcontainers, Spring Data OpenSearch, HTTP 2, Project Reactor, RMI, Spring Web Services, Web Applications

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring