Java Developer
CurrentVehicle Diagnostics(Diagnostics Team):- Developers from the UK, Poland, Czech Republic, and Belarus; - Total number of microservices/macroservices/AWS lambda services in the system: ~200; - My team was responsible for ~20 microservices;We developed a distributed runtime environment for executing specialized scripts used for diagnostics, repair, and updates of Jaguar and Land Rover vehicles worldwide. The runtime was hosted in Amazon cloud, and interactions between components were primarily based on messaging and events, with occasional REST requests.My role on the project included three key aspects: - Writing code (primarily in Java, occasionally in Python and Kotlin) and solving complex problems (including a large number of Spring infrastructure tasks); - Designing new microservices and significant features within existing services; - Collaborating with DevOps to improve the AWS Cloud infrastructure; Workload: - Our runtime executed between 5,000 and 10,000 scripts daily; - Script execution time ranged from one minute to an hour; - The average system load was around 200-300 requests per second, with peak loads reaching 1000-1,500 requests per second;Tasks I am most proud of: - Designing and developing a complex vin decode rules engine along with designing and developing a high load microservice around it; - Designing and implementing an http requests time limiter to align neighboring microservices and improve the system performance; - Designing and developing a smart built-in state machine-based websocket server for the purpose of automating testing; - Investigating, designing and implementing mechanism for spreading tricky traffic evenly across all the instances; - Improving and customizing Resilience4J(Retry and Circuit Breaker);Stack: Java 17, Kotlin, Aws(Sqs, Sns, DynamoDB), Rest, WebSockets, Gradle, Jenkins, Github, Docker, SpringBoot(Security, Reactive, Data, Cloud), JUnit, AssertJ, Mockito, Jacoco, Graylog, New Relic, Svelte