Ivan
Babiankou

Freelance Software Engineer

About

With over 13 years of experience in both individual contributor and leadership roles, I specialize in designing and building distributed, cloud-native systems and leading company-wide initiatives. I have a strong background in managing the full project life cycle, from requirements analysis through to launch and ongoing evolution, consistently delivering high-impact solutions that drive organizational success.

Areas of Expertise

  • Java, Spring
    Java 8-21. Various parts of the Spring framework: Boot, Core, Data, Security, AMQP.
  • Maven
    Company wide multi-module Maven project structure facilitating centralized dependency management.
  • Python, Behave
    Mostly in the context of BDD, but also built CLI tools in Python.
  • RabbitMQ
    Have experience as both a user and operator of the broker.
  • PostgreSQL
    Used to write complex analytical queries including CTEs, recursive queries, and window functions.
  • Kubernetes, Docker
    Developing and operating distributed containerized applications on Kubernetes.
  • Helm, Helmfile
    Experience both building and consuming Helm charts to package and deploy complex applications.
  • Terraform, Ansible, Packer
    Infrastructure as code; Building custom AMI images for self-hosted CI infrastructure.
  • Prometheus stack
    Developing of domain-specific alerting rules and dashboards.
  • TeamCity
    Designing and rolling a highly customized self-hosted CI solution across entire company.
  • Fault Tolerance
    Ensuring continuous operation of RabbitMQ in presence of various network and hardware failures.
  • Scalability
    Building cloud native REST services capable of seamless horizontal automated scalability to accommodate required loads.
  • Reliability
    Leveraging liveness and health checks to ensure availability of the services. Incorporating automated retry policies with reasonable backoff strategies. Using automated continuous monitoring and alerting to reduce incident detection and recovery time.
  • Replication
    Defining and implementing replication strategies to ensure data consistency and availability in case of partial unavailability of RabbitMQ cluster.

Professional Experience

Staff Software Engineer at Picnic Technologies

Enhancing Stability, Reliability, and Fault Tolerance of RabbitMQ Broker Integration
  • Conducted a comprehensive analysis of RabbitMQ usage patterns to identify best practices allowing a more robust integration.
  • Designed a new messaging topology to significantly improve the scalability of the broker.
  • Led the adoption of the latest best practices, enhancing overall system reliability by preventing loss of messages.
  • Enhanced observability by implementing metrics collection for key integration components, enabling proactive alerting and faster issue resolution.
Comprehensive CI ecosystem modernization
  • Performed long and short-list selection of the potential CI vendors. Implemented 3 PoCs and led technical evaluation of the results along with the final selection.
  • Designed and implemented new CI solution including infrastructure and a DSL for standard pipeline definition.
  • Productionized Nexus Repository Manager setup: Migrated deployment from Amazon ECS to Kubernetes and artifact storage from Disk to AWS S3.

Combined, it enabled average speedup of the build pipelines by 50%. The largest project build time was reduced from 1 hour down to 15 minutes.

Technologies:
Kotlin
Built opinionated DSL for defining standardized CI pipelines adhering to the industry best practices.
, Maven,
Python
Built CLI tool for managing dependency cache persistent across build agents.
, Kubernetes, Docker containers,
Terraform
Designing and provisioning CI infrastructure adhering IaC principles.
,
Packer, Ansible
Fully automated creation of a custom AMI image for TeamCity CI agents.
,
AWS [EC2, S3]
Provisioning CI agents on demand. Storing artifacts and dependency cache on S3.
, TeamCity,
Prometheus
Continuous monitoring and alerting for the CI infrastructure.
.

Tech Lead at Picnic Technologies

Warehouse Management Systems

A suite of services with multiple client applications providing automation for the key processes in the warehouses.

Leading team of 12 engineers to design, develop and launch new features. Introduced following practices to streamline development productivity and improve service stability.

  • Mitigated performance degradation of DB layer by limiting operational data retention.
  • Spearheaded adoption of custom business metrics and alerting.
  • Successfully implemented a new team structure: Squads.
  • Adopted BDD technique for both backend and frontend.
Technologies: Java 11, Maven, Spring Boot, Kubernetes, Helm,
PostgreSQL (AWS RDS), Hibernate, jOOQ
RDBMS to ensure consistency in across all operations. Hibernate is used initially as main ORM, but replaced with jOOQ due to performance issues.
,
RabbitMQ
Used mainly as a messaging bus to asynchronously inform loosely coupled services about changes in the state of the warehouse.
,
Python, Behave, Allure
Automated E2E BDD tests. Comprehensive suite of business scenarios verifies the correctness of the whole system. Only 3rd party services are mocked. Allure is used to visualize results along with deep details of the test execution, including captured video.
,
Prometheus
Continuous monitoring, visualizing and alerting for the key infra and business metrics.
.

Software Engineer at Google, through EPAM Systems

Platform for automated analysis, manual review and tracking of content gaps in Google Play store
  • Improved runtime of automated matching by 45% by tuning caching strategies.
  • Reduced average partner onboarding time from 10 days to 3 days by implementing API for self-service validation of books catalog format used for integration.
  • Reduced review time of potentially unlicensed books by 30% by showing the most similar items and degree of similarity.
  • Designed, developed and launched workflow based application for review of books with potentially adult content.
  • Led team of 5 engineers to develop and deliver new features.
Technologies: Java 8,
Bazel
Build automation toolkit.
,
Guice
Lightweight dependency injection framework.
,
GWT
Definition of Web interface for manual match verification done in Java.
,
Spanner
Distributed SQL database was used to keep track of the automated content matching as well as QA of the matching results.
,
gRPC, Protobuf
Language agnostic definition of APIs and models for communication between the backend and the frontend. As well as code generation of the basic boilerplate.
.

Recommendations

Ravi Ramachandran

I managed Ivan for almost 2 years and he was a key part of our engineering team. Great s/w engineer w/ amazing coding skills and ability to pickup any new technology or platform. What sets him apart from others I've worked w/ or managed is that he's exceptionally good at design and architecture and has always shown the ability to think about long term aspects of the project. He's also a solid team player and there isn't anyone he can't get along with.

I definitely recommend Ivan to anyone looking for a great senior engineer or architect.

Andrew Howell

Ivan is a sharp and very skilled developer and team leader. He and I worked together developing internal operations tools at Google where Ivan managed a team of globally-distributed software engineers. He always made sure we were asking the questions, solving the right problems, and prioritizing the right work. I highly recommend Ivan to any prospective future employer and hope to have the privilege of working with him again the future!

Ariel Tolkachov

It is my big pleasure to recommend a highly skilled and motivated developer. Ivan has been a big asset for my team. His continues efforts to provide the best code, with the best documentation that benefits the business stakeholders is highly impressing. As a product owner I can admit that Ivan's work made my life easier more than once.

I am confident that Ivan's technical and soft skills will be a tremendous benefit for anyone working with him.