A results-driven Technical Lead with over 8 years of experience in building high-performance enterprise applications. Proficient in leveraging a broad range of technologies including .NET, .NET Core, Azure, AWS, SQL, Angular, Docker, Jenkins. Skilled in full stack development, technical leadership, and troubleshooting complex issues, with a strong commitment to quality and innovation.
Senior Software Engineer
Rishabh Software Pvt. Ltd.Software Engineer
L&T Technology ServicesSoftware Engineer
Rishabh Software Pvt. LtdAzure Monitor
Azure Key Vault
Azure VM
Docker
Terraform
Azure DevOps
Kubernetes
AWS S3
AWS SQS
AWS RDS
Azure App Service
Apache Solr
DevExpress
Hi, team. Uh, my name is Kujik Shah. I have 8 years of experience in dot net technologies, uh, where I work with the dot net technologies like dot net core, dot net MVC, and the different link too. Along with that, I have, uh, worked with, uh, like, database, like MSSQL, MySQL. And in front end technologies also, like Angular, jQuery. And since last 3 years, I'm I am also working as working in the cloud technologies, mainly in AWS and Azure, where I'm managing, like, uh, application infrastructure, CICD pipeline, and, uh, like, the operation of all these things. And since last, uh, like, I I work with the I work with the service based companies only where I work, uh, work with the different domains and the different clients, like, domains like health care, finance, ecommerce, etcetera. And to do, like, clients like, I work with the multiple clients mainly, uh, mainly from the Europe and the UK regions. The Europe Europe and the US regions. And, uh, my current role is currently, I'm working as a technical lead, where I'm, uh, where I'm contributing in, uh, contributing to managing the team application. And I'm also creating, like, uh, like, critical features for the application along with that ment mentoring the team and day to day communication with the client and, like, project planning and all these things. And technical architect, time managing all these things in my current project.
So, uh, currently, I'm working as a technical lead. So where, um, uh, so I have to take care about all this, like, uh, project, uh, like, project planning and all this thing. Uh, like, since, uh, like, couple of months ago, we have, uh, we deploy our new features to our production environment where due to some, uh, like, some test case, uh, testing are missing by the QA. So we have, uh, like, uh, we got the issue at at the time of the production release. But, uh, like, I I take care as a, uh, I take care of that issue. Like, we proactively resolved that issue, like, uh, on the priority basis, and we have we have deployed a hard fix version. So at that time, I tried to, uh, like, find out the what what was our CRM, like, root cause analysis of that and provide it, uh, provide it to the client and the our stakeholders in our organization for that issue. So, like, this is the latest example, like, in cup uh, earlier also, there are a couple of, uh, like, failures and it happens, but we are actively resolved that issue.
What is it? So, uh, like, all these are, um, like, views, function as tools are used for declaring the data where view view can be usable for the reusable purpose where our predefined size of the query is already written, um, already written in that. And and that's 2 positions. 2 positions are, um, also, uh, we can we can write the servers. Uh, it is also the reusable, uh, component, and and it is also the query which already is written. Uh, but, uh, like, servers are used for, like, insert, update, delete, like, all the all the operations. And, uh, uh, we can, uh, store results can return the multiple, uh, multiple values also, uh, then, uh, in the functions. Like, in functions are predefined, uh, like, it is a predefined express statement and which are, uh, which can be used, uh, in the select or other square queries. And Mhmm. Like in, uh, in the select query, we can use the functions, but still we cannot use the store position in the in the in the select query. Uh, and that one is functions can be done only only single value. That shows here kind of can be written on multiple values. And or they like views, uh, views will be used for only for, uh, like, read only purpose, where stores are and even the function is also used for delete only purpose, where the store user is used for, uh, like, data, uh, data read and write operations. And, usually, we we write a complex logic in store procedures. Yeah. That's it.
Yeah. So, uh, we have used the VAPIs, uh, in multiple in the many projects since last 5 years, I'm I work with the like, VVPA. And, also, I used our, like, razor razor templates also. So for the VVPA, it is used for, uh, uh, for the usable you like, it it is a it is a raised raised call where it is, uh, it can be used at any applications in in the future if you want to, uh, create another applications or another mobile application. So that can be easily configured with the way VPN, and we VPNs are can return a JSON or XML, uh, XML, uh, XML format. And where, uh, like, we can we can do the multiple authentication authorization methods for our, uh, what, uh, security purpose. And, uh, for the razor like, razor templates are mainly used for HTML purpose. It has it it has HTML templates, and dot net has some I'll provide some, uh, HTML helpers for that. Uh, so we can, uh, we can combine our, uh, like, c sharp and HTML logic with in the region in the region template. And, uh, like, uh, we, uh, we can integrate the way API with the razor template with the help of, uh, like, jQuery or jQuery. So we can do the IDEX calling, uh, with, uh, with, um, with the help of the JavaScript. Yeah.
Yeah. So, uh, like mhmm. Since that's why I'm working as a lead, uh, like, lead engineering mark, multiple projects. So where there are there are a couple of incident happens, like, sometimes, uh, there is some problem or some bug bug also happened. So as a, uh, as a senior, uh, as a senior team member, I took that, uh, responsibility on my on my shoulders, and I I resolved I tried to find out the root cause and resolved that resolve that issue. So later on that once I, uh, like, resolve that issue, I try to, like, root cause of analysis and and provide a provide a guidelines that how can we resolve that issue in future if we are if that type of issue is will arise. So my I faced that issue, but, uh, that was, like, on all the time that I converted that problem into the solutions.
So I need to validate that data first. I will check that what what is the source of that data. Like, uh, from the where we have put that data, uh, get this data and how the data is going to that application. And second one, like, I'll for analyzing, we can, uh, we can, uh, like, we can check on the we can connect with the team or some other one to check that how this is how this data is valid. And, like like, we can do the peer review of that data. Uh, then another thing is if there are any data which are in Marin, so we have to, uh, we have to clean, uh, clean those data also before, uh, before, uh, presenting to, uh, and going to be the going with the findings. Then then we can also do the, uh, like, performance or sensitive analysis kind of, uh, where we can check, like, if, uh, if the situation will arise, then what will the application will perform on? How how much data will come to our applications? And at that time, what will be the fine, uh, what will be the application will, uh, work on that data on those data.
Okay. So, uh, delegates, uh, first, I will explain all the delegates and events. So delegate, uh, delegate are just a pointer, uh, a pointer to the method, and events are, like, um, it is a mechanism or notification of, uh, notification to the action, so which which we have to subscribe it. And the delegates are pointed to the functions, and I have used for, like, end caps, uh, like, uh, for the delegates, I have used for the encapsulation of of the methods. And, uh, events, I also used, uh, for some notifications of, uh, notifications kind of, uh, uh, where we have to, uh, subscribe to the that any changes will happen. And delegates are we can we can directly use the delegates where in for the events, we have to use the plus or equal to equal to sign for, uh, for the event notifications. Uh, now the second question is in our interface or app interface and abstract where, uh, like, if we want to add to the multiple inheritance, at that time, we can we can use the interface in our application. And, like, in abstract class, we can define only abstract and non abstract methods where in interface, it will be only the pure abstract methods. And suppose we have to, uh, suppose we want to achieve, uh, if we want to make our code loosely copper more modular, at that time, we use the interface in application. And, uh, in our, like, abstract class, uh, abstract class has has some access modifier also. But in interface, we can, uh, in in interface, we can, uh, we cannot modify the m. Like, we cannot specify the, uh, uh, excess modifier. Now the third question is, uh, garbage. Correct? Uh, so it's, uh, like, in c sharp, that it is managed by the app, uh, like, dotnet, uh, dotnet CLI where, uh, it will automatically dispose unwanted, uh, data data warehouse operations, file operations. Um, and another way is, like, we can, um, in c sharp also via the IDisposable interface. So we can, uh, like, at the end of the interface, we can dispose or manually all the unwanted, uh, objects. And the, uh, other one is, like, finalized keyword also. We can do that in the finalized we can also dispose all, uh, all the unwanted, uh, like, unwanted matter, unwanted, uh, operations. And and the last one is, like, uh, we can also
Abstract, uh, like, abstract concierges are, uh, used for make our code or loosely couple more modular. And, uh, I am like, if you want to extend that code in that future. So with the help of the dependency injection, we can, uh, we can make our portal loosely couples. Uh, suppose we are, like, this, uh, suppose we have some integration with other applications or, uh, at that time, we, uh, we, uh, we require to make our, uh, to make our code more loosely coupled and more abstract class. Then, uh, for, uh, for better understanding also if we define our code in one single, uh, like, in a, um, in in the interface where we can we can find out all the list of the methods in the class and that can be used. And it is, uh, abstraction is also the it help us to hiding the real logic to the like, instead of, uh, like, in aligning instead of, uh, showing entire logic, we just need we are just, uh, hiding our whole logic. We are just, uh, so case we are just displaying our method names.
So there are, uh, there are a couple of best practice in developing a, uh, dot net application. So first, uh, we have to follow the design principles and the solid principles, uh, uh, in applications. We also need to take care about the naming convention if we want to go with the camera casing or pass uh, Pascal casing. And we also need to design our, like, architecture of that applications. Uh, like, we are are are we going with a, like, monolithic microservice or some other patterns like MVC or some web API? Then, uh, we also need need to take care about the database calls. Uh, like, we have to avoid that as, like, unnecessary database calls, and we, uh, also, we need to avoid about the loops, an unwanted loops and if conditions in our applications. Uh, for the database operations, we can use, uh, like, we can use a lazy loading low lazy loading in application. Another way is, like, we can also improve, like, uh, we can also do the caching mechanism, include the output caching or in memory or issue caching in application. So that can be help us to, uh, like, to reduce the database calls. Uh, then another, like, we have to make our code, uh, more modular, uh, in that, and it should be, like, if there any, uh, more modular in, uh, so it should allow any modifications or extension on extension in our methods. Uh, then we also need to take care of error handling. Like, we should follow the proper error, uh, error handling. So in future, if there is an an issue, so we can track it. We can we can track it soon. Then another thing, like, we also need to take care of all authentication authorization mechanism, like, how the application will authorize an authentication. And, uh, we also offer the networking. We are, uh, in the security, we have to follow that HTTP principle or HTTP post methods for, uh, database, uh, for the database, uh, for the API colleagues or some other colleagues. And the last, like, we have to integrate our testing where we we have to write the unit test cases for, uh, each and every logic. So that will be help us to, uh, maintain our like, that will help us to to check if any modification will happen. It will help us to check that the code is working or not.