
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.
Lead Technology
Synechron TechnologiesSenior Java Developer
Shiavnski TechnologiesSenior Java Developer
DelphicSoftware Developer
Assurex e-ConsultantSenior Software Developer
TechbullsFigma

Git
.png)
Jenkins

Shell Script

AWS
.png)
Docker

Maven

IntelliJ

Postman

DBeaver

Workbench

Visual Studio

Visual Studio Code

TOMCAT

Shell Script

AWS

Maven
Snowflake

Postgres

ReactJS

ActiveMQ

MongoDB
.png)
Firebase

Google Maps

Charts.js

Paypal
Could I help you understand more about your background by giving a brief about yourself. Yeah. So my name is. I have total 7 years of development experience as a full site developer. So my journey initially started as a freelance web developer. I worked as a freelancer full time freelancer for 1st 4 years. My career. Which I worked across multiple domains. Multiple technologies in the back end and at the front end. So I'm well versed with Java and Spring Boot. As of now. Because since last 3 years, I've been working with Spring, Spring Boot and microservices. Earlier to that also, I was working with Spring, Spring Boot framework and Java. But, But prior to that, I was also working with Python PHP. NodeJS, etcetera. And at the front end side, I worked with Angular and React JS framework. But I'm more comfortable with the React JS since last 3 years. I've been working with React only for building front end applications. Now coming back to the projects that I've worked on are mostly in Fintech domain. Like, some of the popular ones are, tokenization of cards, apart from that, emanded for us, I have uncouthed up I've also worked in insurance domain, which were my latest project. In which, we have we they they kinda already have the system. But for them, we have helped them replace our dependency for user management and entire project entire user management dependency was implemented by by us from from the scratch. We have used Keycloak tenant. And it has started with microservices. So Spring Cloud, API Gateway, all of the things are part of this project. Seems well versed in terms of that. Yeah. So that's about it. So, I as far as technical skills go, from the back end part, I'm good with Java, Spring Boot, you know, in the data in terms of database. I'm I've worked with Postgres, MySQL, Oracle, Microsoft SQL Server 2. And p g my admin. ATC, some other tools like b b weaver. I'm familiar with those. And of the front end technology, HTML, CSS, some CSS frameworks like CSS, Boot SubCSS. And front end technologies or frameworks like Yeah. It is. I'm comfortable with those. And no SQL database, same. I have exposure to aero spike and MongoDB. And some caching mechanisms too, like Redis cache and Infiniti Span. And in terms of demo, I'm familiar with Docker, like, writing Docker images, CTC. Docker composed to a certain extent, and in terms of AWS, some services like EC two instances, those kind of stuff. Yeah. So that's about it.
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 those many AWS EC two instances. And then load balancing between them. And based on the traffic monitoring system, I would check that, what kind of load, a particular microservice needs. Needs further to and based on that, I would then have their application done for that. Now I'm not much familiar with the q one e disc, but Kubernetes directly supports this containerization. And spinning of notes as per the requirements based on the memory threshold. So if this responsibility is given up to me, then in that case, I would look into that part 2. How to do that. In terms of AWS and whatever knowledge I have, I would end up setting up EC two instances. For that? And a load balance with monitors that would end up providing me with alerts if my system is being consumed and if my request starts holding. In that case, then I will trigger up another EC two instance, with the same set of deployments. Of the application. Is how I would do it.
My query performance for Java application using both SQL and So for optimizing the query performance, I would use indexes. In both SQL and NoSQL databases.
Strategy to implement 0 time time deployments for Java based, uh, web services on AWS. Yeah. Uh, because about 0 0 downtime deployment, uh, I would have a system, uh, uh, like, I would have AWS integrated with my, uh, version management tool, like, GitLab. I would have a runner on it that would automatically build up the build up the image, uh, post it on Docker repository, and then that would directly get, uh, deployed to AWS. And if the health checkpoints are correct, in that case, it would, uh, remove the earlier notes and end up deploying the application on the notes which we want the latest build. So that is how I would ensure that there's 0 downtime by having health check URLs and some endpoints, uh, in the health health check URL that ensures that my newer functionality is working correctly or not. So that is how I would do it so that entire application is not replaced initially. First one one first, it gets deployed on a particular node, and then it keeps on replicating, uh, keeps on removing the old older versions of deployment and replacing them 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 your application? Yeah. We could we could do that. Uh, one of the way is using Redis cache. So based on the data that is being continuously requested, we would have that stored within the Redis case server. And, like, instead of fetching the records from the database, we would use, uh, use the cache. Other part is InfiniSpan. Now InfiniSpan supports it at database layer 2. So if the records are already present in the InfiniSpan, it basically checks that whether the record is there in the, uh, whether the record is being updated in the database or not. And if it is not updated, it readily replies the case data. And in case if the database if the record is not present in the case, then it ends up fetching it from the database. And so we have a mid miss and hit count. Apart from that, we could also configure it to to a certain extent to have the records that are being that are being access and, uh, continuously, uh, fetched again and again, uh, to avoid fetching them again and again. We could have have the expiry time incremented as they're fetched. So based on those strategies, we could implement, uh, cash care in Spring Boot by using, uh, these are certain caching mechanisms.
Yeah. I'm sorry. I had to drop the call before. Uh, how my transaction management we handle in Spring Framework application interacting with SQL. Yeah. So Spring supports, uh, supports, uh, transaction management using this add their transactional annotation. It helps us to specify, like, what should happen, whether we should roll back the transaction in case of, uh, exceptions or each time for that particular method called whether a new transaction should be initiated or not. So in that way, we can manage, uh, transitions in Spring Boot. Apart from that, uh, we can also write a transition handler of our own, uh, by extending certain classes. Yeah.
Yeah. The pattern, uh, that that the class was is was singleton is correct, but it is not thread safe as as multiple threads might end up, uh, getting access to this get instance method, and they might consider, uh, the object as null and end up creating different objects of it. So so to avoid this issue, uh, we should declare private static, uh, volatile, uh, singleton instance. So by making it making it singleton, uh, its visibility will be to all the threads. So visibility issue will be resolved. Apart from that, uh, this get instance method also, and that we should have this method synchronized. So, uh, we should have a synchronized block or this entire method can be synchronized to ensure that only one thread gets access within it. So that is how I would, uh, make it to receive. Apart from that, the singleton pattern seemed okay.
I think we put the query. For the moments, it will suggest for better error handling. Yeah. Uh, apart from this, we should also have a general exception handler for, uh, the exceptions that are not being caught by SQL exceptions. And finally, it seems correct. You could also, uh, have this implemented as 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, uh, a skill exception handler.
Explain how would you manage transactions like for the student Microsoft Office and Java, especially dealing with eventual consistency. Yeah. So, uh, based on the saga pattern, uh, I think I could have it implemented in that way such that, uh, if a particular transaction or if a particular activity fails, uh, at a particular microservice, then they would end up triggering triggering certain set of actions that would revert the transactions on the other microservices. Like, for example, in case of order placement, uh, if the order were placed and then it failed at the payment part, then order and payment, uh, considering these 2 as different microservices, I would have a event event driven mechanism or probably a queuing mechanism, uh, such that when the payment fails, it would notify the ordering system again that the payment has been failed, and then this order needs to be canceled or put on hold. So such such kind of implementation I would have either by using, uh, less API calls between the services, uh, with the with the with the Spring Gateway, uh, HingeClient DTC or by having a messaging queue between them. So that is how I would, uh, manage transactions in microservices, uh, and I would have the consistency eventually.
What in sales will again from AAV testing. Okay. Algebra testing. And how would you that guide? That guide your development decisions on AWS. Word insights would it gain from AB testing? I am not exactly sure, uh, how to answer this question and how would Alco better testing, uh, my Java back end application guide me with my development decisions on AWS. I actually haven't used AWS, uh, 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 just for, uh, UAD deployments or production deployments. So not much familiar. Like, uh, how would testing alpha beta testing, uh, change my development decisions on AWS.
Can you build an example of complex system on AWS where you successfully applied dependency in version principles from solid pattern. Again, I'm not sure why AWS is coming into picture, but dependency inversion principle for sure have used it at multiple places, like, uh, in case of particular in case of AEs utilities. Those implementations or, uh, or just any encryption decryption util and then having the particular encryption decryption algorithm within it, uh, which is being, uh, which is being inserted into the object, uh, by this dependency in which a principle, uh, of the solid principles. Because, anyways, we use up, uh, because, anyways, while designing the system, we end up declaring interfaces and not the actual, uh, actual implementations, uh, so that, uh, whenever we need to use the object, we would just have common methods, uh, that the interface has defined in it. And the implementation class can then just be plugged into the utility that we need to use and readily call the functions that have implementations, uh, as for the implementation classes. So that is how I would do it. And that is what, uh, dependency inversion of solid principles is to me. I performed that single responsibility, open to extension, but closed for modification. Uh, then the segregation between the interfaces, this first principle of, uh, having such structure that, uh, parents could, uh, replace a child. But, uh, child shouldn't, uh, implement functionality such that parents are getting degraded. I'm aware of solid principles, and I tried to follow it while writing the code.