
10+ Years of IT Professional.
Commitment is main key in Development; I handle it well when it comes to deliver the project that I Committed for. Handled Project & Team, when seniors are not available. And have capacity to communicate to clients about requirements and plan design and able to commit the dates for delivery. I had involved and contributed well about couple of Projects (End to End).
Technical lead
Philips India Pvt LtdTeam lead
Philips India Pvt LtdSenior Software Developer
Datascribe Infotech Pvt LtdSoftware Developer
Datascribe Infotech Pvt Ltd.png)
Docker

Kubernetes

CI/CD pipelines

Apache Solr

Git

BitBucket

SVN

IntelliJ IDEA

Eclipse

NetBeans

SQL Developer

Toad

Apache Tomcat

JBoss
Node.js

SonarQube

Fortify

AWS
Hello, all. This is Manikanta. So I have, almost a 10 and a half years of experience in the IT industry. So my entire my career went into medical sector. So Current companies, I'm working in Philips. So Philips is my 2nd company. So more than 5 and half years of experience, in in Philips now. And, earlier, I used to work on, DataScribe in Forteck Private Limited. So for 5 years there as well, have finished 5, and then I joined Philips. So coming to my tech stack, so I started, my career with very basic technologies earlier, starting JSP servers. And, I mean, plain HTML, CSS, Bootstrap, JavaScript, Ajax, jQuery. And then I have, improved there to migrated to, Strath's 1, 2 applications. And then I have more to spring MVC, spring boot, and microservices as well. So this is, like, a kind of transition happened over my time span of, all these 10 years. And even including front end technologies called Angular JS, I got chance to work on. And, there is one more, Angular and React JS which is, like, little bit framework oriented architecture, which we have to do do follow certain, design principles from as per Philips' standards. And that that's the things which we have, proceeded. And coming to my current role, I work as a here in Philips. I have almost 10 to 12 people, developers under me. And maybe including 1 or 2 testers as well. And, I will be involved in end to end architect and lead, positions like, involved in entire system design, the system design, database design, and, involved in with the PO other architects, for all the feature refinement sessions and, drag down the features and segregating to the user story We follow safe safe as well, by the way, for our daily work. And, in the for that, we have to plan fee PI planning and the sprint planning. All these things, we will drag drop from functional requirement to technical requirements. And then, later on, we will be I will be creating some of the diagram or some workflows with the PDF or PPTs and and depends on the feature level or feature size. So that approach we'll follow. And, I still I still be communicating with the ARCA team so far decision making is like some of the doubts we may have are good good for having the good feedbacks, all those stuff like that. And, so Even I just not stop myself with the only dilute position, and, still, I will be interested, and I'm doing, and I'm going to do in future as well as a individual individual contribution from my side. So 60 to 70% of my, sprint will be going to development activities. So I will make sure there will be at least 1 user story, which will be equivalent to other developers, but I may be, like, little bit early can finish my user story and support to the, developers in the remaining time span. So 30 to 40% approximately I will be spending in guiding, mentoring, our team. And, for their technical challenges, all those stuff, and remaining 60 70% I will be involved in my, one work. So I really believe, like, when I do pitch in whatever the developers are doing and whatever their, facing issues in terms of, development, challenges they're facing. If I there in that situation, then only I can be understanding easily. So just guiding them, like, fix that, fix this, and all, and, you can try this example that example. Instead, if I involved in that development task, the so I will I I will be understand easily what they are facing and,
there is a chance of early rectifying and that there we can avoid wastage of our productivity. Yeah. This is myself.
What consideration would you keep in mind when So, particularly, it's, based on the requirement. I will be checking checking the, like, what whether whether we need to have a one instance or multiple instances, what is the size of the my microservice, which database I should use, whether I should go for cache or NoSQL or SQL. And, so what are the configurations needed? Should I communicate my service to any Kafka, any other microservices using Kafka, HTML, what do you call a rest template, communication, all those stuff. So, basically, it will be like that. It is not like, how, typical monolith application works. So we will be, considering based on the, like, authentication, basically. Watch what authentication we need to have, if any security. So one authentication token, can, prove for multiple microservices or not. And, if if my microservice fails, what is the, action I should be taking? Any circuit breaking system should be introduced. All the stuff, like, we need to have a consideration when we introducing the new microservice in the existing ecosystem. Particularly, Spring Boot and in Java, like, so, most cases like, what are the first thing is we need to use, whichever the latest versions entire team have, hands on. And, should we use a LiquiBase for our application? And, and, so most probably lightweight databases we will use because it's a replica or small small chunks, right, microservice base. So we don't need a very big databases for that, like Oracle and Oracle SQL Server or some. So post ASR, MySQL should be suffice. And, should we go for j d JPS? If it depends if the, if the demand for more collaborations in the microservice, of course, we will use for JPS. If it is only select queries. So something like, major joining, sir, major queries if you are doing. Then we better go for, JWPC templates. And if there are any dynamic queries or processes, business logic, you can write This kind of things, we'll go for instead of JPS, select queries, JWBC is will be much faster, I believe. I mean, it is proven, like, and, and then, all the business structure, everything, we will and then use it.
Detail the steps for integrating Python based AI model in the existing microservice architecture. So, basically, Python based AI models into the existing Java microservices means so we need to have a dependencies to be added to our existing service and which
So, uh, did Python based script to automate health checks across the network of Spring Boot Microservices? So health checks in the sense, what we need to supposed to do, we should be having multiple uh, so there will be 1 microservice, uh, which we are included in hell, uh, Python inside 1 microservice, maybe, let's say, m s one. And in that ms 1, the I'll I'll I'll just we can think like, uh, multiple microservices are running. And there will be some other, uh, servers different servers, uh, basically. Not it's not a not may not be a microservice. It could be some other, uh, what do you call smart link and, uh, some other database activities or some different different port numbers. Kafka, basically, Kafka is up and running or not. And, uh, uh, any, uh, Cassandra, Redis, Cache, uh, all the any databases, this kind of information, uh, if I want to validate, uh, so we need to have something like, uh, how we used in Java threads, like, create all, uh, how many types which first we will define. Let's say, 15 different different ports I wanted to, uh, utilize so I can use executor service in Java. Similarly, if anything's there in the Python based scripts, we can implement that and, uh, define all the 15 size and all submitted once and, uh, get the response maybe using features or something. And once the response has come, that entire health check will be tracked based on the services returns for each individual. Just like, uh, service is returning a 2 200 or 2 not 1 or 2 not 2, then we are good for maybe any service. Okay. It is up and running, and it is giving the response for us. We can still have 1 each service, some endpoints are, uh, keep active. So for that, we may need to consider some of the things like authenticating authentication token should be used, uh, for validating all these 15 services. So that how we need to pass all those stuff, we need to take it care in the process.
Discuss methods to optimize Java microservices for performance in Spring Boot driven environment. So, basically, if any Java microservices for performance methods means, uh, let's say, if in my method, I'm doing almost 5 to 10, uh, insert queries or something. So how we will define it? Uh, it will be very huge. And if we follow the proper standards, it is not correct. Like, uh, cognitive complex, that we need to take care and, uh, method length, uh, or different different classes or different different things we need to take care. And, uh, so what we best approach is like, uh, we should be having one one method segregated it. And, uh, if out of 10, uh, 2 or 3 is belongs to one particular model, put that entire model in one method and call that remaining things. So maybe you can still segregate a a nested methods calling 1 or 1. If it is model wise, uh, it depends on, uh, out of 10, 3 models as a. Right? If that is means either you can segregate as a method or you create a new separate, uh, util class for that separate different service. Basically, it can have a separate service also. So in that purpose, what we can do, we can just create a separate class and write all 3 methods in that and call from here and one of the main main service method so that, uh, all these performance things will be optimized. And, uh, okay. By this change, we just segregated the based on the coding standards for how performance is optimized is, uh, first, we need to see any deep database side. Any normalization has to be supposed to do. If there is no need of any normalization, uh, like, uh, properly indexing is there, uh, the database indexing is there, or anything something related to, uh, indexes, uh, queries queries optimizations, and all the tables are, uh, properly joined with proper columns. And, uh, so most mostly, I mean, you know, use use the query instead of select star. Use select variable name. And where to use JPS, where to use JWBC, which I said earlier. And, uh, so, uh, use the better approach in terms of iterating. So don't use the more number of collections. Use JSON array, JSON object, or object mappers instead. So if you have if you use more collections, you'll you'll you'll ended up, uh, filling up our Java memory, uh, just like anything. Like, uh, if there are simultaneously multiple users are logged in more than 10 to a100, then our collection, uh, are logged in more than 10 to a100, then our collection memory will goes like anything. So we need to avoid that by using, um, this kind of, uh, JSON array, JSON objects. And instead of using lot of strings for appending, don't use strings for appending. Use string builder, uh, string buffer, something, which will be like there are many positive approaches and where to use streams, where to use normal for loop, while loop. These kind of things we need to be considered in our, uh, day to day development tasks.
Given the Java snippet below, can you identify the problem with singleton design pattern implement here and suggest how it could lead to issues in multithreading environment? So if the multithreading environment let's say I call the singleton class. So, uh, uh, singleton dot, um, what do you call, uh, get instance. So wherever I call first time, I started with 1 of the service one. Okay? In the service one method, I have create I have called this singleton dot get instance. Then it will return only one instance. Fine. Next time, again, if I call same instance, it will create. First time, it will be null, and next time, it will create new one. Whereas, uh, in the previous example, I said how to create a threads, multiple threading using executor service. Let's say I created executor service 10 times, and all 3 10 times, I calling same method, which internally creating, uh, calling this, uh, singleton dot get instance. So what will happen? Uh, all 10 service 10 threads hit this class simultaneously and which, uh, there is a u there is a issue, like, uh, out of 10, uh, this if if condition will be reached by at least 3 to 4 threads by this by the time all 10 threads are running simultaneously, then there is a chance of, uh, instance, uh, if if instance is equal to null. That condition, wherever it is there, it all 4 threads will be in that place, and then the instance has created it. Later on, again, other threads, if it is already started little bit later, it will get the instance. That is secondary. And then in that case, these threads will get, uh, could lead the issue. So to avoid this, we can use synchronized block. So inside that singleton dot get instance method, uh, enclose that or put this method as synchronized or inside that method, synchronize the block open brace and put that if condition inside that one, and, uh, then you return the value inside itself. So that what will happen, out of 10 threads, how many threads you call it simultaneously? If one thread is accessing that particular block, it will stop that from there. So this is how we can avoid the multithreading, uh, may avoid the singleton issue during multithreading problem.
Review the block of Java code for restful service. Can you spot the issue that might arise from the exception handling and suggest how this could potentially compromise the web service robustness when an exception occurs? So rest controller request mapping User service. Okay. Get all users list. Final users return. New response entity. And new response entity. Underdog, okay, catch exception. New response entity is not in server error. So here, we shouldn't be using, uh, generic exception catch like exception. So find all by users. What exception, basically, it will throw. Usually, JPS doesn't throw any error. If I write any JPA queries like find all users, it won't throw any error from there. Either it is empty. If it is no record one, it will be empty. If the data is there, it will return some values. And, uh, whatever the from the service user service, so what exception is throwing, it should be, like, precise so that, uh, it will it won't need to it won't compromise and, uh, uh, further potential issues. Like, if you have generic things, so it will not the recommended one. So we can have multiple multiple cases inside cache like, uh, whatever exception, bad exception, nullbound exception, or, uh, what, uh, SQL exception. These kind of exceptions, we can still put using pipelines and catch them in the controller. Our best way is you use a controller advice in the spring boot. So and, uh, using controller advice annotation and with the exception handler annotation. Based on that, it is very easy. No need to use try cash block also here. Just define that and, uh, define any separate class, exception class, and write our own exception handling controller advice. So whatever the controller return the error, it will automatically catch there and streamline the process so that no no need to write everywhere same piece of code like the internal error. Because whatever error comes from service or anywhere else, that will automatically read the basing using the service code. I mean, HTTP status code. Yeah. That will be returned from there and, uh, same, uh, status code, and we can still use, uh, error code resolver also. Like, how how which format I wanted to use for, uh, null pointer exception or some bad request or internal server error or server not available error, whatever. So based on that, we can write each separate separate methods and return the unified or generic way of, uh, exception handling. That is the best approach.
Develop a comprehensive backup strategy for microsystem ecosystem that spans multiple data source. So, uh, to achieve that, what we can do is, like, uh, we can go for distributed systems, basically. So, uh, multiple, uh, multiple distributor systems, like, more than one instance of a same microservice is running. So what will happen in that case? So if one service server is down, uh, and, uh, automatically, that tuning will be happen. So we we could we can use load balances for that or some Kubernetes configurations, uh, we can use it. So we need to scale up, first of all, like, how based on the users, we need to see inflow of the users and expected users and how many, uh, instances it has to be created or if any more instances has to be there. Uh, because in a day, some in some some period of time, there will be less, uh, users' issues. And uh, in one some in some point of time, there will be huge. That time, we need to have a start on some more services running parallelly. This kind of things, we need to tune it and, uh, configure it accordingly and monitor. We need to keep on monitor them which service is getting, uh, delayed in terms of responses. So that will be automatically get down in that in terms of priority and, uh, try some restarting mechanisms like multiple retrade automatically from the configurations itself. If that didn't work, then someone develop send a notification to developer that will be taken care from the developer side. And, uh, if, uh, if any x all other remaining services are running normally, so those requests are, like, go like a round robin algorithm. It can use our, uh, more more more performance related. If any services are taking more, uh, quick responses, so that service is like a high priority service, and all the questions will send keep sending to that, and responses will keep that. So it's like a priority or a performance oriented, uh, this thing. It will be utilized for that. Thank you.