profile-pic
Vetted Talent

Krutik Shah

Vetted Talent

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.

  • Role

    Technical Lead

  • Years of Experience

    8 years

Skillsets

  • MS SQL
  • SQL Server - 8 Years
  • Healthcare - 1 Years
  • CSS - 4 Years
  • Angular Js - 3 Years
  • AI - 1 Years
  • REST - 5 Years
  • Rest APIs - 5 Years
  • .NET Framework - 8 Years
  • SQL - 8 Years
  • Kendo UI
  • .NET MVC
  • WPF
  • LINQ
  • Entity Framework - 8 Years
  • jQuery
  • Azure DevOps - 1 Years
  • .NET Core - 4 Years
  • Docker
  • .NET - 8 Years
  • PowerShell
  • Terraform
  • Kubernetes
  • C# - 8 Years
  • Azure - 3 Years
  • Jenkins
  • AWS - 2 Years
  • Type Script - 3 Years
  • Angular - 3 Years
  • MySQL - 2 Years

Vetted For

9Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    C#/SQL ProgrammerAI Screening
  • 63%
    icon-arrow-down
  • Skills assessed :Microsoft SSRS, PowerBI, .NET, AI, Database management, C#, JavaScript, SQL, Type Script
  • Score: 57/90

Professional Summary

8Years
  • Jan, 2019 - Present7 yr 5 months

    Senior Software Engineer

    Rishabh Software Pvt. Ltd.
  • Jan, 2018 - Jan, 20191 yr

    Software Engineer

    L&T Technology Services
  • Jan, 2016 - Jan, 20193 yr

    Software Engineer

    Rishabh Software Pvt. Ltd

Applications & Tools Known

  • icon-tool

    Azure Monitor

  • icon-tool

    Azure Key Vault

  • icon-tool

    Azure VM

  • icon-tool

    Docker

  • icon-tool

    Terraform

  • icon-tool

    Azure DevOps

  • icon-tool

    Kubernetes

  • icon-tool

    AWS S3

  • icon-tool

    AWS SQS

  • icon-tool

    AWS RDS

  • icon-tool

    Azure App Service

  • icon-tool

    Apache Solr

  • icon-tool

    DevExpress

Work History

8Years

Senior Software Engineer

Rishabh Software Pvt. Ltd.
Jan, 2019 - Present7 yr 5 months
    Responsible for designing, coding, and testing software applications, providing technical leadership, contributing to system design decisions, troubleshooting issues, conducting code reviews, and ensuring high-quality software solutions.

Software Engineer

L&T Technology Services
Jan, 2018 - Jan, 20191 yr
    Developed customized applications in accordance with client requirements, managed application deployment, maintained communication with clients, and executed project tasks.

Software Engineer

Rishabh Software Pvt. Ltd
Jan, 2016 - Jan, 20193 yr
    Started as a fresher under the mentorship of senior professionals, worked with emerging technologies, and developed understanding of the project life cycle.

Achievements

  • Led a cross-functional team in projects
  • Responsible for end-to-end project execution
  • Provided technical leadership in technical challenges
  • Managed collaborations
  • Contributed to system design decisions
  • Ensured the successful delivery of the project

Major Projects

4Projects

Supply Chain Tracking System

Jan, 2023 - Present3 yr 5 months
    The project aims to streamline logistics and supply chain operations with functionalities like inventory management, order processing, and robust analytics.

Engineering Calculation Automation

Jan, 2023 - Dec, 2023 11 months
    Centralizes and automates the process of generating engineering drawings from dispersed locations, thus improving accuracy and efficiency.

Configuration Facility

Jan, 2021 - Dec, 20232 yr 11 months
    Web application for centralized configuration management for a primary application.

Credit Management System

Jan, 2020 - Dec, 20211 yr 11 months
    Automates the credit loan process for clients, reducing manual work, and enables users/admin to generate various reports.

Education

  • Masters Of Computer Applications

    G.H. Patel Department Of Computer Science (2016)
  • Bachelor Business Administration

    Som-Lalit Institute of Business Administration (2013)

Certifications

  • Azure developer associate (az-204)

  • Azure ai fundamentals (ai-900)

  • Developing asp.net mvc web applications (70-486)

AI-interview Questions & Answers

Hi, team. My name is Kujik Shah. I have 8 years of experience in dot net technologies, where I work with dot net core, dot net MVC, and different technologies. Along with that, I have worked with database technologies like MSSQL, MySQL. And in front end technologies also, like Angular, jQuery. And for the last 3 years, I've been working in cloud technologies, mainly in AWS and Azure, where I'm managing application infrastructure, CICD pipeline, and the operation of all these things. I've worked with service-based companies only, where I work with different domains and clients, such as healthcare, finance, ecommerce, etc. I've worked with multiple clients mainly from the Europe and UK regions, and also the US regions. My current role is that of a technical lead, where I'm contributing to managing the team's application. I'm also creating critical features for the application, mentoring the team, and having day-to-day communication with the client, as well as project planning and other tasks. Additionally, I'm working as a technical architect and managing time for all these tasks in my current project.

So, currently, I'm working as a technical lead. Where I have to take care of all this, like, project planning and all this. Since, like, a couple of months ago, we've deployed our new features to our production environment where due to some, like, missing test cases by the QA, we got the issue at the time of the production release. But, I took care of that issue. Like, we proactively resolved that issue on a priority basis, and we deployed a hard fix version. At that time, I tried to find out the root cause of that issue and provide it to the client and our stakeholders in our organization. So, like, this is the latest example. Earlier also, there were a couple of failures, but we actively resolved those issues.

What is it? So, like, all these are views, functions, and tools that are used for declaring data where a view can be used for a reusable purpose where our predefined size of the query is already written, and that's two positions. Two positions are also where we can write the server. It is also a reusable component, and it is also a query that is already written. But, like, servers are used for insert, update, delete, all the operations. And we can store results that can return multiple values also, then in functions. Like, in functions, there is a predefined express statement, and which can be used in select or other square queries. And, like, in the select query, we can use functions, but still we cannot use the stored procedure in the select query. And that's one, functions can only return a single value, but views can be used for multiple values. And views are used for only read-only purposes, where stored procedures are used for delete-only purposes, and functions are used for data read and write operations. And, usually, we write complex logic in stored procedures.

Yeah. So, we have used VAPIs in multiple projects over the last five years, I work with VVPA. And, also, I used our razor templates. So for the VVPA, it is used for usability. It is a raised call where it can be used in any application in the future if you want to create another application. That can be easily configured with the VPN, and our VPNs can return a JSON or XML format. And where we can do multiple authentication and authorization methods for our security purpose. And, for the razor templates, they are mainly used for HTML purposes. They have HTML templates, and.NET has some HTML helpers for that. So we can combine our C# and HTML logic within the razor template. And, we can integrate the API with the razor template with the help of jQuery. So we can do IDEX calling with the help of JavaScript. Yeah.

Yeah, so, like, as a lead engineering manager, multiple projects. Since that's why I'm working in that role, where there are incidents, there are a couple of incidents that happen, sometimes there are problems or bugs that also happen. As a senior team member, I took responsibility for resolving those issues, and I tried to find out the root cause and resolve that issue. So, later on, once I resolved that issue, I conducted a root cause analysis and provided guidelines on how to resolve that issue in the future if it arises. My goal was to convert problems into solutions, and I've been able to do that consistently.

So I need to validate that data first. I will check where the data is coming from. Like, from the source where we have put the data, get this data and see how it's going to the application. And second, I'll analyze it by checking with the team or someone else to see how this data is valid. We can also do a peer review of that data. Then another thing is if there are any data in Marin, so we have to clean those data before presenting to and going with the findings. Then we can also do the performance or sensitivity analysis, where we can check if the situation arises, then what the application will perform on. How much data will come to our application? And at that time, what will be the fine, what will the application work on that data.

Delegates, first, I will explain all the delegates and events. So, a delegate is just a pointer to a method, and events are a mechanism or notification of notification to an action, which we have to subscribe to. And the delegates are pointed to the functions, and I have used them for the encapsulation of the methods. And events, I also used for some notifications of notifications, where we have to subscribe to any changes that will happen. Delegates are used directly where events require the plus or equal to sign for event notifications. Now, the second question is in our interface or app interface and abstract class: if we want to add multiple inheritance, at that time, we can use the interface in our application. And in an abstract class, we can define only abstract and non-abstract methods, whereas in an interface, it will be only pure abstract methods. And suppose we have to make our code loosely coupled and modular, at that time, we use the interface in the application. And in our abstract class, abstract class has some access modifiers also. But in an interface, we cannot modify the members. Like, we cannot specify the excess modifier. Now, the third question is, so it's like, in C#, it is managed by the.NET, like.NET CLI, where it will automatically dispose of unwanted data operations, file operations. And another way is, we can in C# also via the IDisposable interface. So we can, at the end of the interface, dispose or manually all the unwanted objects. And the other one is, like, the finalized keyword also. We can do that in the finalizer, we can also dispose all the unwanted operations. And the last one is, we can also

Abstract, like, abstract concierges are used for making our code or loosely coupling more modular. And, I am like, if you want to extend that code in the future. So, with the help of dependency injection, we can make our portal loosely coupled. Suppose we have some integration with other applications, at that time, we require to make our code more loosely coupled and more abstract. Then, for better understanding, if we define our code in one single interface, where we can find all the list of methods in the class, and that can be used. And abstraction helps us to hide the real logic, instead of showing the entire logic, we just need to hide our whole logic. We are just displaying our method names.

So there are a couple of best practices in developing a dot net application. So first, we have to follow the design principles and SOLID principles in applications. We also need to take care about the naming convention if we want to go with camel casing or Pascal casing. And we also need to design our application's architecture. We are deciding whether we are going with a monolithic microservice or some other patterns like MVC or some web API. Then we also need to take care about database calls. We have to avoid unnecessary database calls, and we also need to avoid loops and if conditions in our applications. For database operations, we can use lazy loading in the application. Another way is we can also improve the caching mechanism, including output caching or in-memory caching in the application. So that can help us to reduce database calls. Then another thing, we have to make our code more modular, and it should allow any modifications or extensions in our methods. We also need to take care of error handling. We should follow proper error handling. So in the future, if there is an issue, we can track it soon. Then another thing, we also need to take care of all authentication and authorization mechanisms, like how the application will authorize and authenticate. We also need to offer secure networking. We have to follow the HTTP principles or HTTP post methods for database or API colleagues. And last, we have to integrate our testing, where we have to write unit test cases for each and every logic. So that will help us to check if any modification will happen. It will help us to check that the code is working or not.