FITA.DEV Français

Adrien Horgnies

Senior Java Engineer

Eleven years of backend development, five of them on the Java platform behind eight Swift products. I write the Java, Spring Boot and Kafka code and own the Maven, Jenkins and OpenShift toolchain around it. I took 2,200 tests from 80 % passing to 100 % in parallel, and the release from three days to three hours. I migrated the platform from Java 8 to 21. I coached five newcomers.

Download the CV (PDF)

Selected results

  • 3 days to 3 h
    to release the platform
  • 2,200 tests
    in parallel, 100 % pass rate, from 80 % sequential
  • Java 8 to 21
    and Spring Boot 2 to 4, platform migration
  • 8 products
    at Swift built on the platform I develop
  • 5 engineers
    onboarded and coached
  • 600,000 users
    onboarded in one import at Altissia

Experience

Swift

Senior Software Engineer January 2022 to present

Interbank messaging between financial institutions in 205 countries.

  • Develop and maintain the Java and Spring Boot platform behind eight Swift products: transaction management, instant payments gateway, Alliance Cloud messaging, data and analytics, event monitoring, infrastructure as code. Every microservice gets its packaging, encryption, observability and resilience from it.
  • Designed and built the network outage detection of the platform with Java, Spring and Kafka.
  • Wrote a Maven plugin and its website that collect the failures of the 2,200 tests across builds. About a hundred tests were flaky: race conditions between Kafka producers, consumers and processors. Rewrote them with exact assertions, correct thread synchronisation, distinct inputs and isolation. The suite went from 80 % passing in sequence to 100 % in parallel.
  • Cut the release from three days to three hours with four Maven plugins, twenty goals. They cut the release branches and tags, build the Helm charts and container images, and publish the audit reports on tests, dependencies, properties and observability events to Confluence.
  • The Helm plugin renders a chart from test values and compares it with the expected output, takes dependencies from Maven or Helm repositories, interpolates Maven properties, and publishes to a Helm repository, a Maven repository or an OCI registry.
  • Migrated the platform from Java 8 to 17, then 21, and from Spring Boot 2 to 3, then 4, with the base image upgrades. The support branches stayed releasable throughout.
  • Designed the Jenkins pipelines that build, test, release and deploy to OpenShift: retries, cancellation of outdated builds, Coverity and Nexus IQ scans as quality gates.
  • Coached five newcomers. Planned their work with the product manager, wrote and prioritised their tasks, and fixed their working methods when their productivity was questioned.

Stack: Java 8 to 21, Spring Boot 4, WebFlux, Spring Data JPA, Spring Security OAuth2, Kafka and Kafka Streams, Flyway, Oracle, Micrometer, Prometheus, Zipkin, JUnit 5, Mockito, Testcontainers, Maven, Jenkins, Helm, Docker, OpenShift, Nexus

Odoo

Software Developer October 2019 to December 2021

Open source ERP: accounting, sales, CRM, inventory, websites.

  • Developed the accounting and payment modules in the in-house Python framework. Added the accounting localisations of Israel, Italy and Sweden.
  • Fixed the performance issues clients reported: algorithmic complexity, SQL query plans, prefetching of web components, cache hit rates, unhandled exceptions.

Stack: Python, PostgreSQL, SQL, JavaScript

Altissia

Web Developer March 2015 to October 2019

Online language learning platform, used by Erasmus+ and Wallangues.

  • Developed the REST APIs of the Spring Boot backend. Integrated the authentication infrastructures of clients into the Spring Security chain.
  • Migrated every language course from XML to many small JSON documents for the new site, with Spring Batch.
  • Wrote a tool that finds inconsistencies in the database. Fixed them in the live database of five million users.
  • Built the import engine and web service that load client Excel files into the database. It validates the data and sends the salesperson one report of every error, grouped by kind. One import onboarded 600,000 Brazilian citizens.
  • Wrote the Node.js generator of new microservices following company conventions. Improved the MySQL schema, checked migrations with Python and Matplotlib, built reusable Angular components.

Stack: Java 8, Spring Boot, Spring Batch, Spring Security, MySQL, Angular, Node.js

Skills

Java

Java 8 to 21Spring Boot 2 to 4Spring WebFluxSpring Data JPA and HibernateSpring Security and OAuth2Spring BatchKafka and Kafka StreamsApache HttpClient 5 (reactive)Maven plugin development

Testing

JUnit 5MockitoAssertJAwaitilityTestcontainers

Delivery

MavenJenkinsHelmDocker and PodmanOpenShift and KubernetesNexusVaultGitLinuxBash

Observability

MicrometerPrometheusGrafanaZipkinElasticsearch and Kibana

Data

OraclePostgreSQLMySQLSQLFlywayKafka

Other languages

PythonGoJavaScript