
Experienced in integrating Generative AI and Azure Index/Search for collaborative software development. Proficient in leveraging Power Platform and Dynamics 365 for business needs. Skilled in consulting, designing, and developing intranet portals for large MNCs, and migrating OneDrive & SharePoint sites to SharePoint Online. Adept in modern workplace technologies, React/Angular development, and Azure DevOps, with a focus on optimization. Experienced as an assistant product owner, managing BAU activities, SOX compliance, and agile/scrum project implementation.
Technical Lead
Xencia Technology solutions Pvt. Ltd.Senior Software Developer
Websoft Technologies Ltd.Assistant Manager
Cibersites Pvt. Ltd.Software Engineer
Outworx Solutions Pvt. Ltd.Technical Lead
HCL Technologies Ltd.Senior Software Developer
ISCISTECH Business Solutions Sdn. Bhd.Consultant
Polaris Software Lab Ltd.Consultant
Saksoft Ltd.
PowerApps

Power Automate

C#

ASP.Net

Python
Azure

Azure DevOps

Power Platform

React

Angular

Power BI

SharePoint

Service Now

SQL Server

OneDrive

Azure AI

Dataverse

PowerBI
Hi. I'm. I have around 15 years of solid experience in various Microsoft technologies. I've started working as a.NET engineer. Right now, I'm working on.NET technology as well as SharePoint and Power BI, also part of my daily routine activities. I do manage a team of 5 people who work on various technologies, like some people are working on Power BI, some people are on.NET, and I manage them. I design the software for them, design the solution for them, and I do code reviews. That is my daily work. In the personal front, after that, I used to prepare all the reports and give my updates to my peers who sit at a different part of India. And I usually keep myself updated by reading blogs and searching for new innovations, as well as attending Microsoft talk shows. Okay. During my spare time, I used to play cricket and football. I'm very much religious in my beliefs, and I do work a lot. I strictly follow my guidelines. I usually prefer a daily, stricter timeline working routine, as well as giving extra time to my well-being and to my family. Thank you.
The accuracy and reliability of the data depend on the requirement and what the customer needs as an output, whether it's a web page or reports or findings from our code. Then accordingly, we can design the solution. If it's a.NET-based application, then we have to use the GoF principle, which will help us to build a great successful product. Apart from that, we have to implement a test-driven approach, and we have to decorate our classes and structures in a way that the following parties, peers who review the code or juniors who follow the classes and structure, will follow the same routine and proceed further. And if I find any concerns on data accuracy or bug findings, I will make sure to address them. Then all these things, I used to discuss with my teammates before presenting to them, like, this can be how it can be avoided and what are the best principles or guidelines, which are recorded by Microsoft, can be implemented to overcome the stress of data as well as make the program error-free. To validate, we have a lot of tools and FX scope. All these tools are available. We can implement them further. Thank you.
Hello? Yeah. Can you please call me? I'm in an interview. Can you please call me after 30 minutes? Yeah. Thank you. So responsibility comes from the designation, not from the work atmosphere. Many times, we feel that there is another team who are like a classic example of a scenario. There might be something or someone who are actually handling the DevOps, okay, who might be uploading the documents into a Git repository as well as checking them, then making the CICD pipelines. So this is not part of the routine of a developer who works on the coding front, or let's say, the coding front is best supported by this dot net technology. As an engineer, we know how to work and resolve issues in GitHub. So I usually walk up to them and try to understand where the error is coming from. Whether that is coming due to network-related issues or coding-related issues, which might also be quite possible. So I used to support them a lot with DevOps processes. Apart from that, we have a dedicated team to maintain our database. But as a developer, I also know SQL Server, how to write queries, store procedures, and triggers. So I used to give them advice to modify their queries. And this actually produces great team bonding as well as overall project success or maybe in a separate project. The vertical I mean to say is that the whole vertical team comes under a single project manager's responsibility, which becomes a successful goal achiever. So this gives me tremendous pleasure to achieve the greatest satisfaction from the client side and from my peers. Thank you.
Yeah. So for the projects, it depends upon the various criteria and the various factors, which may be due to a lack of understanding of a requirement and giving the proper feedback beforehand to the client or the responsible person while they're running into these problems. So all these factors give a tremendous opportunity to learn from the mistakes as well as prepare for the best result. So to overcome project failure, it's better because I'm a software architect. So I hold maximum responsibility for my team's working styles or the product we produce. That becomes my responsibility. So, usually, I do not transfer negative feedback or if there is any negative feedback coming up from the top; I do not transfer it to my subordinates because these guys work under me. So I take full responsibility if there are any bugs found in the project or the product we developed is not working or giving the utmost satisfaction to the client. Then, I'll try my level best to adjust the errors or bugs or problems we're facing right now and what we could have done better for that project, so that these things could be avoided. Because of our nature of working is agile, we are able to manage at least more than 90% of perfection into our many projects. So there is absolutely no problem. But, yes, there will be certain cases where depending upon the customer's establishment or their infra usage, we may face some issues, and we'll overcome those issues by adjusting our practices or course depending upon the situations and demands. Thank you.
Yeah, a web API is nothing but if I can tell a single responsibility principle, if I have designed and created a service, okay, and deployed it into Azure that became a web API. So these are like simple getter-setter methods or functions to get some results as well as post data to the database. We use web APIs mostly for CRUD operations, like creating, deleting, and updating. This time we can create web APIs that can be freely floated and support many calling clients. The calling client may be a mobile phone application, a web page application, or other applications. It doesn't depend on who the caller is, but it understands what the caller wants and responds accordingly, whether to edit a record, give a value, or update a record and supply back the result. That's it. In web pages, if we use MVC controls or make REST API calls, it becomes useful in calling this web API. Result templates are inbuilt architectures or templates so that our HTML and body styles can be grouped together in ASP.NET based applications. Thank you.
Yeah. Events are nothing worth of which occurs if, for an action, like, if we are pressing a button or after that button is pressed, what is the outcome? So those are called edge events. It's a catcher of like in a controller. We make these events available as well as catching the front end actions and process it further in C# applications. Okay. Like button click event as well as this blur event or mouse out, mouse in, key in. These are the different types of events available in ASP.net CSR based projects. Okay. Interface over an abstract class. Okay. Here are the basic differences between interface and abstract class. Means interface can contain method signatures only. And if any class or child class is using interface, then we have to override it and do our own implementation whatever way we like it. But we have to implement all methods if we are using an interface-based class. But in the case of our abstract class, all the methods should be abstract in nature, like a void we can use. Okay? And in the calling class, the child class, we have to overload it. Like if there is any like a plus or minus calculation in the abstract class, then we can override it, overload it, and create a subtraction or multiplication in my child class. That's why it is basically abstract in nature in the base class, and it can be overloaded easily or overwritten easily in the child class. Garbage collection happens automatically in C# programs. So the basic situation comes is that whenever any collection string is opened, then it has to be collected automatically. That's why we are following try-catch and finally. In the finally block, we can see if a connection is still open, we can just dispose the connection. Those become collected by the garbage collection mechanism. And it actually runs through the generations. Generation 0, 1, 2, and 3. Okay? So we may not have to explicitly call the garbage collector. It can happen automatically. Thank you.
Views are nothing but a virtual representation of tables. It's basically used for database purposes in SQL Server. And these views can contain multiple select queries, though we can update the views from the front end. But it is advisable not to use complex queries or complex statements to create views. In those types of views, it will be very hard to update the records that are available. The functions are nothing but there are so many inbuilt functions like max, min, greater than, equal to, less than. Those are the inbuilt functions available in SQL Server. And we can create our own functions also. Stored procedures are prebuilt select queries, which are actually pre-compiled. We program stored procedures so that we can use this stored procedure and pass parameters. So accordingly, the parameters passed to the database will perform the select, insert, or update operations in the database, and it will give the best result. Stored procedures are definitely faster in comparison to user functions because they are pre-compiled. They are already compiled. So the calling program does not need to re-run the functions or these select statements each and every time. It will just get hold of the test output, pass the parameter, use those parameter values into the select or other queries, then give us the results. Thank you.
For web applications, it's very much necessary to understand whether to use single-page applications or multiple-page applications. And, depending on that, we can create an application, either taking into consideration of these licensing costs and everything, either as a.NET Core or plain.NET MVC-based application. Depending on the resource availability, accordingly, we have to also create our solution design by using the MVC principle. Or.NET. Any Blazor-based or Blazor Pages we can use, depending on our requirements. And we can present the code or the web page in a beautiful manner. Apart from that, we need to also take care of the database connections and the related database, where it is and how to maintain these connections and how to produce the results in the web page itself. Whether that is a plain web page or a crawler presence that is going to be performed for this web application, so we have to think logically on that. Apart from that, there is another aspect of it. We need to maintain the modularity of all the web applications. So it can be auto-resizable based on the tablet use or our laptop use. So it's basically, we need to use Bootstrap and CSS, so that and like a jQuery-based app, like JavaScript implementations. So and dependency injections, this modularity, and everything, and our routing mechanism. There are so many aspects of it. Once we get the project idea, we can create accordingly our web applications.
To choose the abstract functionality means I do not know what the calling function will be, used, or I do not care about the caller. In that case, I'll create an abstract function or abstract class. So that my calling function can decide how to overload it and what to be needed from this abstract functionality. That way, we can implement abstract classes into our code or project. And if I decide upon the approach, we have to make it void so that it will be easily accessible by the calling function or the child class. And this child class can implement throughout the code structure. And it has to be implemented throughout the classes so that everybody follows or all the classes follow the same basic principle, and it will have a test-driven approach. The code modularity will be applied beautifully here, and we can troubleshoot the errors. And if we want to change any of the signature, then we just have to change in the abstract class itself, then the following code will be automatically updated. In such cases, an abstract class is much more useful.