profile-pic
Vetted Talent

Vaibhav ghatge

Vetted Talent

Results-driven software developer with a Master's degree in Computer Applications and a proven

track record of success in various roles with 6 years of experience. Committed to pushing the

boundaries of technology and seeking opportunities to make a meaningful impact.

  • Role

    Sr Java Developer

  • Years of Experience

    8 years

Skillsets

  • Google Maps
  • Maven
  • PGSQL
  • Redux
  • Shell Script
  • version control
  • React Js - 3 Years
  • HTML - 3 Years
  • CSS - 3 Years
  • Aerospike
  • Angular
  • Chart.js
  • D3.js
  • Firebase
  • Jersey
  • JavaFX
  • Jersey
  • JWT
  • K8
  • Keycloak
  • PGSQL
  • PHP
  • Postgres
  • Rabbit
  • React Native
  • Redis
  • Jose
  • SQL - 3 Years
  • Jersey
  • MySQL
  • JavaScript - 3 Years
  • XML
  • Java - 8 Years
  • Spring Boot - 7 Years
  • Micro services
  • JSON
  • Oracle
  • REST API - 7 Years
  • JUnit
  • Kafka
  • Mongo DB
  • React Js
  • Bootstrap
  • ActiveMQ
  • PGSQL
  • Spring - 1 Years
  • Architecture - 1 Years
  • Spring Framework - 5 Years
  • AWS - 2 Years
  • Spring MVC - 3 Years
  • AWS
  • Docker
  • Figma
  • Git
  • Git
  • Jenkins

Vetted For

15Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Senior Software Engineer ( Java)AI Screening
  • 69%
    icon-arrow-down
  • Skills assessed :computer science fundamentals, Front-end Development, JakartaEE, Micronaut, Quarkus, Spring Boot, Architecture, Cloud, nosql/sql, Spring Framework, AWS, Java, Leadership, Problem Solving Attitude, System Design
  • Score: 62/90

Professional Summary

8Years
  • Oct, 2024 - Present1 yr 8 months

    Lead Technology

    Synechron Technologies
  • Jul, 2024 - Sep, 2024 2 months

    Senior Java Developer

    Shiavnski Technologies
  • Mar, 2024 - Jul, 2024 3 months

    Senior Java Developer

    Delphic
  • Feb, 2017 - Oct, 20214 yr 8 months

    Software Developer

    Assurex e-Consultant
  • Oct, 2021 - Feb, 20242 yr 4 months

    Senior Software Developer

    Techbulls

Applications & Tools Known

  • icon-tool

    Figma

  • icon-tool

    Git

  • icon-tool

    Jenkins

  • icon-tool

    Shell Script

  • icon-tool

    AWS

  • icon-tool

    Docker

  • icon-tool

    Maven

  • icon-tool

    IntelliJ

  • icon-tool

    Postman

  • icon-tool

    DBeaver

  • icon-tool

    Workbench

  • icon-tool

    Visual Studio

  • icon-tool

    Visual Studio Code

  • icon-tool

    TOMCAT

  • icon-tool

    Shell Script

  • icon-tool

    AWS

  • icon-tool

    Maven

  • icon-tool

    Snowflake

  • icon-tool

    Postgres

  • icon-tool

    ReactJS

  • icon-tool

    ActiveMQ

  • icon-tool

    MongoDB

  • icon-tool

    Firebase

  • icon-tool

    Google Maps

  • icon-tool

    Charts.js

  • icon-tool

    Paypal

Work History

8Years

Lead Technology

Synechron Technologies
Oct, 2024 - Present1 yr 8 months
    The project is based on automating the billing for private wealth managers.

Senior Java Developer

Shiavnski Technologies
Jul, 2024 - Sep, 2024 2 months
    The project is based on automating exception flow in BMP process for loan processing. It consists of gathering data from different sources, and providing it in a unified view to the frontend services after processing it.

Senior Java Developer

Delphic
Mar, 2024 - Jul, 2024 3 months
    The project is basically a set of microservice related to insurance providing user management to different kinds of users. Different insurance providers are integrated with different services.

Senior Software Developer

Techbulls
Oct, 2021 - Feb, 20242 yr 4 months
    Worked on multiple projects including IAM, SiHUB, CoFTHub, and Secure logs. Responsibilities included developing REST APIs, database design, performance testing, and mentoring team members.

Software Developer

Assurex e-Consultant
Feb, 2017 - Oct, 20214 yr 8 months
    Worked on multiple projects including Tifants, AL-HILAL FINANCE, EYE FITNESS APP, Weather AQI, Ucall, Farmker, and Best Assign. Responsibilities included requirement gathering, database design, and application development.

Major Projects

4Projects

IAM

Apr, 2023 - Present3 yr 2 months
    A service that protects your digital identity and provides a wide range of authentication services.

SwitchON Foundation

Aug, 2021 - Sep, 2021 1 month
    Drafting potential Business Plans for FPOs in Madhya Pradesh.

WNS Cares Foundation

Jan, 2021 - Mar, 2021 2 months
    A CSR project to create awareness in schools about WNS cybersmart programme for school students, teachers and parents.

Madras Christian College

Jan, 2018 - Dec, 2018 11 months
    Conducted an exhibition named Plant Es Populis.

Education

  • Master's of Computer Application

    Pune University
  • Bachelor of Computer Application

    Pune University (2017)
  • Higher Secondary

    Maharashtra State Board (2014)
  • Masters of Computer Application

    Pune University (2021)
  • Secondary Course

    National Institute of Open Schooling (2012)

AI-interview Questions & Answers

Could I help you understand more about your background by giving a brief about yourself? Yes. So my name is. I have a total of 7 years of development experience as a full-stack developer. So my journey initially started as a freelance web developer. I worked as a full-time freelancer for the first 4 years. My career involved working across multiple domains, with multiple technologies in the back end and at the front end. So I'm well-versed with Java and Spring Boot. As of now, I've been working with Spring Boot, and microservices for the last 3 years. Earlier to that, I was also working with Spring Boot, and Java. But prior to that, I was also working with Python, PHP, NodeJS, etc. And at the front end, I worked with Angular and React JS framework. However, I'm more comfortable with React JS since the last 3 years. I've been working with React only for building front-end applications. Now, coming back to the projects I've worked on, they are mostly in the Fintech domain. For example, some of the popular ones are tokenization of cards. Apart from that, I've also worked in the insurance domain, which was my latest project. In which, they already had a system, but for them, we helped them replace their dependency for user management, and we implemented the entire user management dependency from scratch. We used Keycloak tenant and started with microservices, using Spring Cloud, API Gateway, and all of the things. I'm well-versed in that. So, as far as technical skills go, from the back-end part, I'm good with Java, Spring Boot. In terms of databases, I've worked with Postgres, MySQL, Oracle, Microsoft SQL Server, and PostgreSQL admin. I'm familiar with tools like AWS CloudWatch, and other tools like JBoss Tools. And from the front-end technology, I'm comfortable with HTML, CSS, some CSS frameworks like Bootstrap and SubCSS. And front-end technologies or frameworks like React. I'm also familiar with NoSQL databases, such as Cassandra and MongoDB. And some caching mechanisms too, like Redis cache and InfiniSpan. In terms of deployment, I'm familiar with Docker, writing Docker images, and Docker Compose to a certain extent. And in terms of AWS, some services like EC2 instances, those kinds of stuff.

Could you add a database microservice system on AWS to be scalable and maintainable. So, depending on how the services and how much payload of data are required, I would simply end up setting up that many AWS EC2 instances. And then load balancing between them. And based on the traffic monitoring system, I would check what kind of load a particular microservice needs. Based on that, I would then scale up or down the application accordingly. Now, I'm not much familiar with the AWS Elastic Beanstalk, but Kubernetes directly supports containerization. And spinning off nodes as per requirements based on the memory threshold. So, if this responsibility is given to me, then in that case, I would look into that part too. In terms of AWS and whatever knowledge I have, I would end up setting up EC2 instances for that. And a load balancer with monitors that would provide me with alerts if my system is being consumed and if my requests start queueing. In that case, then I would trigger up another EC2 instance with the same set of deployments of the application.

My query performance for a Java application using both SQL and NoSQL databases for optimizing query performance, I would use indexes. In both SQL and NoSQL databases.

Strategy to implement zero time deployments for Java-based web services on AWS. Yeah, because about zero downtime deployment, I would have a system where I would have AWS integrated with my version management tool, like GitLab. I would have a runner on it that would automatically build the image, post it on the Docker repository, and then that would directly get deployed to AWS. And if the health checkpoints are correct, in that case, it would remove the earlier notes and end up deploying the application on the nodes with the latest build. So, that is how I would ensure that there's zero downtime by having health check URLs and some endpoints in the health check URL that ensures my newer functionality is working correctly or not. So, that is how I would do it so that the entire application is not replaced initially. First, it gets deployed on a particular node, and then it keeps on replicating, replacing the old versions of deployment with the newer versions if the health checks are getting passed. That is how I would do it.

Could we integrate a cache layer in Spring Boot, implement response time with this screen that is our application? Yeah. We could do that. One of the ways is using Redis cache. So based on the data that is being continuously requested, we would have that stored within the Redis cache server. And, like, instead of fetching the records from the database, we would use the cache. The other part is InfiniSpan. Now InfiniSpan supports it at the database layer 2. So if the records are already present in the InfiniSpan, it checks whether the record is there in the InfiniSpan and whether the record is being updated in the database or not. And if it is not updated, it readily replies with the cached data. And in case if the record is not present in the cache, then it ends up fetching it from the database. And so we have a miss and hit count. Apart from that, we could also configure it to a certain extent to have the records that are being accessed and continuously fetched again and again to avoid fetching them again and again. We could have the expiry time incremented as they're fetched. So based on those strategies, we could implement caching in Spring Boot by using these caching mechanisms.

I'm sorry. I had to drop the call before. How does my transaction management work in a Spring Framework application interacting with SQL. So Spring supports transaction management using the @Transactional annotation. It helps us to specify what should happen, whether we should roll back the transaction in case of exceptions or whether a new transaction should be initiated each time for that particular method called. So in that way, we can manage transactions in Spring Boot. Apart from that, we can also write our own transaction handler by extending certain classes.

The pattern that the class was following is a singleton, which is correct, but it is not thread-safe as multiple threads might end up getting access to this getInstance method, and they might consider the object as null and end up creating different objects of it. So to avoid this issue, we should declare a private static volatile singleton instance. By making it singleton, its visibility will be to all the threads, so the visibility issue will be resolved. Apart from that, this getInstance method also needs to be synchronized. We should have a synchronized block or this entire method can be synchronized to ensure that only one thread gets access within it. That's how I would make it thread-safe. Apart from that, the singleton pattern seemed okay.

I think we put the query in place for now, it will suggest for better error handling. Yeah. Apart from this, we should also have a general exception handler for the exceptions that are not being caught by SQL exceptions. And finally, it seems correct. You could also have this implemented as a try-with-resources block so that we won't need to explicitly close it in the final statement. So that is another way of doing it. Apart from that, the query seems fine, and exception handling also seems okay with a general exception handler.

I would manage transactions like for the student Microsoft Office and Java, especially dealing with eventual consistency. So, based on the saga pattern, I think I could have it implemented in a way such that if a particular transaction or activity fails at a particular microservice, it would trigger a certain set of actions to revert the transactions on other microservices. For example, in case of order placement, if the order were placed but then failed at the payment part, considering these two as different microservices, I would have an event-driven mechanism or a queuing mechanism such that when the payment fails, it would notify the ordering system that the payment has failed, and then this order needs to be canceled or put on hold. I would implement such an implementation either by using fewer API calls between the services with the Spring Gateway, HingeClient DTC, or by having a messaging queue between them. That's how I would manage transactions in microservices, and I would have eventual consistency.

What insights will again from A/B testing. Okay, algebra testing and how would you use that to guide your development decisions on AWS. Word insights would it gain from A/B testing? I am not exactly sure how to answer this question, and how would A/B testing guide my development decisions on AWS. I actually haven't used AWS development tools as such, like Cloud 9. I have exposure to it, but I haven't used it. I'm mostly been doing development in the local environment and then using AWS for UAD deployments or production deployments. So, I'm not very familiar. Like, how would testing A/B testing change my development decisions on AWS.

I successfully applied the dependency inversion principle from the SOLID pattern in a complex system on AWS by declaring interfaces and not the actual implementations. This allowed me to decouple the dependency and make the system more flexible and maintainable. For instance, in the case of encryption and decryption utilities, I used the dependency inversion principle to separate the encryption algorithm from the utility that uses it. I defined an interface for the encryption algorithm and then implemented the actual encryption algorithm in a separate class. This way, whenever I needed to use the encryption utility, I could simply plug in the interface and call the methods defined in it, without having to worry about the actual implementation. This approach also helped me to achieve the single responsibility principle, as each class had a single reason to change. Additionally, the system was open to extension, but closed for modification, which made it easier to add new functionality without affecting the existing code. I also applied the interface segregation principle, which helped to define smaller and more focused interfaces that were easier to understand and use. This way, the parent classes could replace the child classes without degrading their functionality. Overall, I'm aware of the SOLID principles and I tried to follow them while writing the code, which helped to make the system more robust, maintainable, and scalable.