profile-pic
Vetted Talent

Abhishek Soti

Vetted Talent
I am a software engineer with 9 years of experience in developing enterprise-level applications. My expertise lies in Java, Spring Boot, MySQL, and MicroServices. I have a proven track record of delivering high-quality software solutions that meet customer requirements on time and budget. I am experienced in working with teams of diverse backgrounds and skillsets, and I have a solid understanding of the software development lifecycle. I also have an eye for detail and a passion for creating robust, scalable applications. My goal is to use my experience and skills to help create innovative solutions that will make a difference in people's lives.
  • Role

    Engineering Squad Lead

  • Years of Experience

    11 years

Skillsets

  • SQL
  • Data Structures and Algorithms
  • Cursor
  • Rest APIs
  • Kafka
  • E2E Testing
  • AI Prompt Engineering
  • NoSQL
  • Microservices
  • AWS - 3 Years
  • Spring Boot
  • Kubernetes
  • Kubernetes
  • Java - 9 Years
  • Hibernate
  • Docker
  • AWS

Vetted For

6Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Staff EngineerAI Screening
  • 74%
    icon-arrow-down
  • Skills assessed :CI/CD, Python, Java, Micro services, Spring Boot, System Design
  • Score: 67/90

Professional Summary

11Years
  • Mar, 2026 - Present 2 months

    Engineering Squad Lead

    Modulr
  • Jan, 2025 - Nov, 2025 10 months

    Senior Software Engineer

    Agoda
  • Oct, 2024 - Jan, 2025 3 months

    IT Expert

    Volkswagen
  • Jul, 2017 - Jul, 20181 yr

    Founding Engineer

    Pool Counter Internet
  • Jan, 2019 - Feb, 20223 yr 1 month

    Senior Analyst Programmer

    Fidelity International
  • Feb, 2022 - Oct, 20242 yr 8 months

    Application Development Team Lead

    Accenture
  • Mar, 2014 - Apr, 20173 yr 1 month

    Java Developer

    Principal Financial Group

Applications & Tools Known

  • icon-tool

    Eclipse

  • icon-tool

    Intellij

  • icon-tool

    Postman

  • icon-tool

    Jenkins

  • icon-tool

    Git

  • icon-tool

    Github

  • icon-tool

    Bitbucket

  • icon-tool

    Maven

  • icon-tool

    Confluence

  • icon-tool

    Jira

  • icon-tool

    Sonar

  • icon-tool

    SonarQube

  • icon-tool

    Fortify

  • icon-tool

    Maven

  • icon-tool

    Fortify

  • icon-tool

    AWS

  • icon-tool

    GitHub

  • icon-tool

    Maven

  • icon-tool

    Maven

  • icon-tool

    Fortify

Work History

11Years

Engineering Squad Lead

Modulr
Mar, 2026 - Present 2 months
    Leading the architecture and delivery of an Enterprise Compliance Intelligence Platform, unifying CDD, AML, and LER workflows into a single ecosystem. Balancing high-level system design and core feature development with the leadership of 7 engineers, driving technical excellence through strategic mentorship and OKR execution.

Senior Software Engineer

Agoda
Jan, 2025 - Nov, 2025 10 months
    Acting Lead for a squad of 4 developers; reduced bug density by 25% and drove the adoption of mutation testing across the core backend service within 6 months. Resolved a critical 10-minute bottleneck in a large-scale 37,000-test suite by decoupling a single-file combinatorial explosion of 17,000 tests into a parallelized job, ensuring faster CI/CD cycles for the core backend. Improved pipeline stability by 30% by implementing test-level retries for flaky tests with over 25 dependencies.

IT Expert

Volkswagen
Oct, 2024 - Jan, 2025 3 months
    Retained as a specialized Technical Consultant to upskill a cohort of 20+ internal developers on SOLID principles and Clean Architecture, providing the foundational expertise required for a major legacy modernization initiative.

Application Development Team Lead

Accenture
Feb, 2022 - Oct, 20242 yr 8 months
    Led a 30month transformation at Vodafone UK, overhauling the ecommerce journey with a highscale platform delivering 10,000 reads per second and 99.99% availability. Minimized Kafka rebalance downtime to 0 in a mission-critical, Kafka-based event-driven system by implementing a cooperative rebalancing protocol, ensuring uninterrupted service for over a million customers.

Senior Analyst Programmer

Fidelity International
Jan, 2019 - Feb, 20223 yr 1 month
    Delivered high-throughput (<200ms) AML/GDPR APIs for 2.67M users, leveraging multithreading and heap optimization to ensure performance.

Founding Engineer

Pool Counter Internet
Jul, 2017 - Jul, 20181 yr
    Created an enterprise School ERP on AWS, onboarding 9 schools and 15K daily users via Java/Spring stack.

Java Developer

Principal Financial Group
Mar, 2014 - Apr, 20173 yr 1 month
    Modernized core financial systems by migrating complex COBOL batch logic to Java and optimizing legacy monoliths.

Achievements

  • Helped onboard 100K+ customers within the first month of Vodafone UK project launch.
  • Built extensive test coverage of 95% for all new features which reduced the average defect count by 20%.

Major Projects

3Projects

Post-Booking Quality Optimization

Jan, 2025 - Present1 yr 4 months
    Developed innovative features to optimize bug density and improve pipeline stability by implementing test-level retries and OpenStack migration.

Vodafone UK E-commerce Platform

Feb, 2022 - Oct, 20242 yr 8 months
    Headed development of a cloud-based e-commerce platform for Vodafone UK, achieving 95% test coverage and enabling successful onboarding of 100K+ users.

SchoolCounter ERP

Jul, 2017 - Jul, 20181 yr
    Developed a school ERP solution with multiple functionalities for 15K+ users, enabling automation of school activities.

Education

  • Bachelor of Technology, Computer Science and Engineering

    Guru Gobind Singh Indraprastha University (2013)

AI-interview Questions & Answers

Hello. Yes. So, I'm Abhishek Soti. I have more than 9 years of experience with back-end technology, and my tech stack includes Java, Spring Boot, microservices, REST APIs, SQL databases, NoSQL databases, Docker, and Kubernetes. These are the technologies I have worked with, and I am open to learning any new technology required for the job. Regarding my experience, I have worked in different domains. For example, my first company was a finance company. Then, I worked at a startup that I founded, which was an EdTech-based company. After that, I worked in investment management and mutual funds at Fidelity International, where I was a Java developer. Currently, I'm working with Accenture on the Vodafone UK project. I'm building an ecommerce-based web application, and I'm currently working on the back-end side of it. It's based on Java, Spring Boot, microservices, REST APIs, and I have also managed the CICD of this application using Amazon CodeBuild and CodePipeline. It's deployed on ECS using Fargate, and the Docker images are pushed into the Elastic Container Registry. So, that's pretty much about me.

To implement a Python-based script to automate health checks across a network of Spring Boot microservices, we would need to have the actuator enabled in our application. And we would also need to have some sort of logging and monitoring system, which can be comprised of Prometheus, Grafana, or an ELK stack, through which we can monitor the health of our Spring Boot microservices. We can also have Dynatrace. On AWS, we can write few scripts which can keep track of whether our application is up and running or not. It will keep triggering the Python-based script, which will keep triggering the actuator endpoints, actuator health endpoints. And through that, we will be able to determine if the endpoint is not working. We will also write the logic to send an email notification to the respective owners of the microservices or whoever is looking into the support of that application.

So to introduce a new microservice into an existing ecosystem, I would. If the current architecture is based on Eureka servers and Eureka discovery, I would need to have this new service also registered in the Eureka server. If I'm not going ahead with the Eureka server, new communication between this application will be based on a REST API through a REST template or web client call. If this microservice needs to be based on an event-driven architecture, I would also implement 1 Kafka queue between this new service and the calling application, which will act as a consumer in that case. I will be consuming these app messages from my partition. That's how I will be doing it. For a deployment, I'll be using a Docker-based, containerized system. I will create the Docker images, and I will use ECR and ECS or an EKS on Amazon to deploy and containerize this application. I will also have log monitoring through AWS CloudWatch or Prometheus, Grafana, Dynatrace, ELK Stack, or any other new tool that's available in the market. That's how I will be managing this application.

The strategy to ensure zero downtime deployments in microservices using Spring Boot would be based on the green blue green blue deployment. What happens is there will be two servers which keep a copy of my microservice. First, the deployment would be done on the green server. And after proper health checks are done on this artifact on the green server, then we will initiate deployment on the blue server. This will all be managed through a Python script, and we have also written an automation suite, which will take care of testing the green deployment, whether it is done correctly or not, and whether we have everything in place or not. So after that is done, we will do the blue deployment. And that's how the deployment would be done to make sure there is zero downtime for my microservice. First, in my load balancer, when I will be deploying on the green server, I will switch off incoming requests from the external network so that I am not making any calls, so that my green server is not taking any calls. All calls will be routed to the blue server. And once the green server is up and running, I will redirect traffic from the blue server to the green server. Now the deployment will start happening on the blue one. And once the blue deployment is also done, the load balancer will again come into play and will distribute the load between these two blue and green servers.

So, yeah, so Python can be integrated with Java-based microservices, and the potential is, basically, when we are trying to manage deployments in the cloud environment. That's when Python scripts can come very handy, and everything from image creation to actual deployment can be managed through Python. The potential pitfalls of such an integration is, basically, if the developer is not aware of how to do it in Python, how to write such code in Python, so there will be a learning curve involved. And that could hamper the actual downtime. So, there will be a learning curve in that case, which might slow down the actual deployment. That's what I think. That's the major pitfall while doing such an integration through Python. Also, if the automated script is not correctly written and if the test cases are not correctly defined, there will be challenges with this approach. We would have to be very sure of whatever we are writing and that it is correct and of the highest quality.

So, these steps of integrating Python-based AI models into an existing Java microservices architecture. The steps for this integration would be to place the Python model for deployment and automation checks. If the microservice is healthy enough for health checks to be done correctly. That's where I think the AI models can come into picture, and the Python-based AI model can streamline the entire testing and deployment of our Java-based microservices.

So, the problem with this code snippet is that in a multi-threaded environment, this could lead to multiple instances of the singleton getting created, which we do not want. And so to take to make sure that this does not happen, we will be implementing a double-checked locking mechanism for creating this instance. So when we are writing this get inside this get instance method, we will be putting in a synchronized block when the if block. So if instance is double equals to null. After this, we will be writing a synchronized of and making a lock in the singleton dot class. Inside that synchronized block, we will be creating the instance is equals to new singleton line so that we are completely sure of that only one singleton instance is getting created in a multi-threaded environment. So, yeah, that's how it will be done.

Yeah. So the problem with this code is that it intends to lazily initialize an instance of a service. The problem with this approach is when a single thread is trying to access this get service instance method, another thread can also come in and while trying to create a new service instance, there can be two threads that can be doing the same thing, and it will eventually have two service instances, which is not correct for a multithreaded environment. So instead of that, we should be implementing some locking mechanism for the service instance so that only a single instance of this service factory is getting created. Single instance of this service instance is getting created. So that's how it should be done.

To develop a comprehensive backup strategy for a microservices ecosystem that spans multiple data sources, we should first have these data stores in different availability zones, so that if there is a mishap at one of the availability zones, another data store is keeping a copy of the entire database, safe. And we should implement a master-slave architecture for multiple data stores to maintain consistency across all the data sources. We can have multiple slaves and only one master, with the multiple slaves responsible for reading operations and that one master responsible for write operations. So write is only happening on one data store, one copy of the data store. And in case, we should regularly back up all the data that is there in my master. We should regularly update the data amongst the slaves so that in case the master goes down for some time, any of the slaves can take the place of that master and act as a master copy for the entire data store, multi-data store architecture. That's how the backup strategy should be working. We could have multiple availability zones where these data stores are kept, and that will ensure we have a 0 data loss policy.