profile-pic

Nilesh Jadhav

Experienced Senior Software Engineer with a strong ability to design and implement innovative features, enhance system architecture, and successfully lead product launches. Possesses a deep understanding of software design and programming principles, resulting in the delivery and maintenance of large, complex systems. With over 6+ years of experience in software development, consistently demonstrated a proven track record of shipping high-quality products.
  • Role

    Senior Software Engineer

  • Years of Experience

    7.3 years

Skillsets

  • Clean Architecture
  • Unit Testing
  • CI/CD
  • Azure Service Bus
  • Azure Functions
  • SQL Server
  • MongoDB
  • Kubernetes
  • Docker
  • Cqrs pattern
  • cosmos Db
  • Agile
  • Azure
  • SOLID principles
  • Power BI
  • Microservices
  • DevOps
  • .NET Core - 5 Years
  • Git
  • Scrum
  • Git - 4 Years
  • Angular

Professional Summary

7.3Years
  • Aug, 2023 - Present2 yr 11 months

    Senior Software Engineer

    Decos
  • Sep, 2021 - Aug, 20231 yr 11 months

    Senior Software Engineer

    Accenture
  • Sep, 2018 - Aug, 20212 yr 11 months

    Software Engineer

    Websym

Applications & Tools Known

  • icon-tool

    Azure

  • icon-tool

    Elasticsearch

  • icon-tool

    Azure Key Vault

  • icon-tool

    Azure Service Bus

  • icon-tool

    SQL

  • icon-tool

    PostgreSQL

  • icon-tool

    CSS

  • icon-tool

    HTML

  • icon-tool

    Angular

  • icon-tool

    AngularJS

  • icon-tool

    jQuery

  • icon-tool

    ASP.NET MVC

  • icon-tool

    Azure Functions

  • icon-tool

    SharePoint

  • icon-tool

    Azure DevOps

  • icon-tool

    AWS IoT Core

  • icon-tool

    MQTT

  • icon-tool

    Power BI

  • icon-tool

    .NET

  • icon-tool

    C#

  • icon-tool

    SQL

  • icon-tool

    MySQL

  • icon-tool

    Azure Kubernetes Service

  • icon-tool

    Entity Framework

  • icon-tool

    RESTful APIs

  • icon-tool

    TFS

  • icon-tool

    Scrum

  • icon-tool

    Agile

  • icon-tool

    Azure DevOps

  • icon-tool

    Azure Data Factory

Work History

7.3Years

Senior Software Engineer

Decos
Aug, 2023 - Present2 yr 11 months
    Led development of backend APIs and responsive UIs using .NET Core and Angular. Participated in architectural discussions and adopted Clean Architecture and Microservices design patterns. Actively involved in Agile ceremonies. Mentored junior developers. Implemented unit testing strategies and contributed to CI/CD pipelines for streamlined deployments.

Senior Software Engineer

Accenture
Sep, 2021 - Aug, 20231 yr 11 months
    Delivered a full-fledged student exam management system. Implemented exam scheduling, registration, and result processing. Used Azure services extensively. Recognized with the ACE Award for outstanding contributions.

Software Engineer

Websym
Sep, 2018 - Aug, 20212 yr 11 months
    Developed end-to-end full-stack IoT-based asset monitoring system. Integrated real-time data via Azure IoT Hub. Built interactive dashboards using Power BI. Improved API response time by 20%.

Major Projects

3Projects

Process/Case Management System

Aug, 2023 - Present2 yr 11 months
    Built scalable case and process management system. Integrated MongoDB and Elasticsearch for high-speed search. Architected using CQRS, Microservices, and Clean Architecture. Used Rabbit MQ for async processing. Reduced deployment time by 30% using optimized CI/CD pipeline.

Student Exam Management System

Sep, 2021 - Aug, 20231 yr 11 months
    Delivered a full-fledged student exam management system. Implemented exam scheduling, registration, and result processing. Used Azure services such as Azure Functions, Logic Apps, Key Vaults, and more.

Field Monitoring System

Sep, 2018 - Aug, 20212 yr 11 months
    Developed end-to-end full-stack IoT-based asset monitoring system. Integrated real-time data via Azure IoT Hub. Built interactive dashboards using Power BI.

Education

  • B.E. in Computer Science & Engineering

    Shivaji University (2018)

Certifications

  • Sc-900: microsoft security, compliance, and identity fundamentals, microsoft

  • Az-900: microsoft azure fundamentals

  • Sc-900: microsoft security, compliance, and identity fundamentals

  • Az-900 : microsoft azure fundamentals

AI-interview Questions & Answers

Hi. Myself, Nilesh, and I'm from Kolhapur, Maharashtra. I have completed my bachelor's in engineering from Shivaji University, Kolhapur. Currently, I'm holding six years of experience, including back end and front end as well as cloud services. So in back end, I work with the.NET framework.NET Core, using C# as a programming language. And for front end, I'm working with Angular along with HTML, CSS, JavaScript, and jQuery. For cloud, I can work with Azure or AWS both. And for databases, I have experience with SQL and PostgreSQL. And for data representation, I can work with Power BI also. So my overall experience is six and a half years. Project-wise, I worked on, now, mostly related to IoT domain, educational domain, and there are some government agencies which are holding case documents. That kind of stuff I was working till now. In brief, project like, we are reading the data from remote devices and getting the data from remote devices using IoT hub or IoT core in context of AWS. But I will focus on edge at your request for this now. In IoT hub, when we get the data, we use the topic trigger, we'll get that data, and data may be in any format, like hex, binary, or decimal. So I have to understand the data correctly, which format it is, and I have to extract that data into proper format, maybe decimal it is. And I have to store that data into the storage table. And from that storage table, we are performing how we are reading that data? We are using Azure function. For that function, we are having a topic trigger, using service bus mechanism we are doing. And once we get that data, we are extracting that data, saving that data in Azure storage, and then we have some algorithms which will run frequently. And on that data, we are performing some aggregation. And based on that data, we are analyzing the device states, currently what device is doing now, whether it is working correctly or efficiently, or there is some fault. So I will analyze that data during that process and generate the ticket if there is any fault. And based on that ticket, we'll create a ticket alert, and we'll auto assign the technician for that ticket based on the client requirement, like whether it is a nearest geolocation of that technician or available inventory with the tech person or skills and expertise of that person. Based on that, we'll assign that ticket, and throughout the journey of the technician, we'll track the details, like what he done to resolve that ticket, how what inventory used, and some other stuff we are also maintaining as an inventory purpose. So that is my first project. My second one is an educational domain where we are maintaining the student associate and center information, like taking exams and that stuff. So that is all about me for now. Thank you.

During my last project, I was working with Azure Media Services, where we had to integrate audio or video services from Azure, and show streaming to the end user. However, we were unsure about how to do this, and there was limited information available, with fewer people and less documentation on the topic. So I researched the topic further, and took the initiative, which was not my responsibility. Once I was assigned to the project, I conducted research and development on the topic, and found one solution: a player, which is a JavaScript library that gets the streaming from Azure Media Services using a DRM token for security reasons. The DRM token is used to read the streams onto the browser. We had an Angular application, and integrated the player within that application. From the back end, we used.NET APIs that connected with Azure Media Services using credentials that provided access. The credentials were stored securely, and we used them to establish a connection and read data for the player. We successfully completed the application, which was for Avanade, a Microsoft and Avanade partnership. This was the first widely adopted solution using Azure Media Services, and in this scope, we handled a large amount of users or requests without any issues. My initiative was to create a transformation of assets, as the data may be in any format, such as MP4, 3GP, or SD. We needed to create a common solution to efficiently stream videos to end users, and I achieved this using the ShareCup player and conducting research on Azure Media Services. This is now working correctly for AQ, one of the leading educational institutions.

So, basically, views are virtual tables. We can say the views are virtual tables. Like, we can select on that. We can perform select queries on views, but we can't perform any update operation on views. A function is nothing but a programmatical block where we can do some programmatical coding over there. Like, we have a conditional statement if else or something. We have to iterate kind of loops. So, we can do this in functions. And from a stored procedure, we can call a function, but in functions, we can't call a stored procedure. So, in a stored procedure, we can say it is a set of SQL statements, which will execute as a group or a block. And from a stored procedure, we can call functions. But from functions, we can't call stored procedures. So, a function is a kind of procedural thing. And a stored procedure is a kind of pure SQL thing, where we have a set of statements within that. Using the EXEC statement, we can write the function name. We can give the stored procedure name. If there is a parameter, we have to pass it, then we can execute that stored procedure. So, basically, that is nothing but stored procedures. Thank you.

When we have our data accuracy and reliability, we might find some differentiation or something. Data analysis. So, we'll try to validate the source data. Whatever we have in a source, when we are presenting the analysis, we'll check the source of data, whether it is correct with the target system or where we're having that data located. Like, suppose we have an n number of devices or data nodes, from where we are getting that data. So we must validate that data from a source of that data with where the data is presently current, available. So we must check the source of data, whether it is matching with our source and destination of data. Like, destination means where we are storing that data. When we have a data warehouse, we must check that what data we are getting from the source system, whether it is correct with that. So we can manually analyze that data, or we can get some tools to analyze that data. So, using that, we can check the data accuracy and reliability. We can also create some sample mock applications or utilities where we will create the kind of test cases format, logic. So we are mocking that data. Like, we are checking with false and positive scenarios. Like, we can create unit test cases on that data. We'll check the reliability and accuracy of that data. Whatever we require, it is coming correctly or not. So we'll check both positive and negative scenarios using some utility where we are providing unit test cases on that data. And, also, we take care about the source of where data is correctly with where data is located. That's all about it. Thank you.

When I'm working with the team or working as a team member, if there is something which is not meeting the project guidelines or estimate or timelines, then I have to take responsibility as a team member. Like, when we are late, I'm not saying. When we are lagging to meet the project demands or application demands or customer demands, then as a team member, I have to take responsibility or initiate that we are all responsible for that, whatever we are making. So, when we are working as a team, we have to take responsibility for the outcomes of that project milestones, what we expect to deliver. But due to some circumstances, if we are getting some lag or difficulty to meet those demands or requirements, then as a team member, I have to take responsibility for project failure or setbacks, whatever we are facing during our career phase or during our daily routine work. So, when we are working as a team, as an individual member, we have to take responsibility for whatever we are delivering or producing as an output of that work, what we are doing. So, as a team member, we have to take responsibility for what we, as an entire team, are delivering, which is not meeting the project requirements or work requirements.

When we are using the Oops concept and within that Oops concept, we have an obstruction mechanism. And when we try to use the abstract functionality, then we can reuse the code we are returning. So, if there, I will explain with an example. Suppose we are having a structured class, which holds a method that we can say describes a product, and product is an abstract class. And within that, we have a describe product method, which is an abstract method, and we can extend that abstract in another class, we can say car. Okay? And so car can be any type. So within that abstract class, we have properties, such as color, width, dimension, speed, RPM, and whatever else it is. Or in a healthcare application, we can say we are having an abstract class, monitor, which will monitor the health of the current patients. Suppose we can track the blood pressure, BPM, pulse rate, or BMI, and each person can have a different range or output depending on the person, with height or whatever else it is. So we can create an abstract class or a monitor meter person meter, which is abstract, and depending on each person, we can display different results because each person has a different range of findings. Like, one person can have a sugar level of 19, and another person can have a sugar level of 120. So we have all those properties, and based on that person, we will use the method to describe their findings, like whether it is a female or male. So all that on the monitor, we can display their specific information using the monitor method. So we can extend the functionality of so we can say whatever we have to implement differently or we have some different approaches to use but the same prototype or name, then we can use an abstract class or abstract method to reuse the functionality.

Delegates is nothing but a kind of pointer functions where we are using to rep, handle the events based mechanism or coding. It is pointing to the function based on their references. So in that case, we can use the delegate. Events are nothing but the scenarios where we are saying signal r is kind of when we are using a signal r, suppose there is something event at the back end. So we have to send that event to the front end, then we can use the signal out of our Firebase things to the front end. So we can say that is the event. Event is a scenario where using some conditions, the specific scenarios occurred, then we can say the event. So service was having a topic trigger as a event. Even agreed having, insert or update or delete event, that kind of events we can use for to invoke the audio function. And we are using same topic triggers and cue triggers as a event on our project to run the functions. In when we have a multiple suppose we are having a multi tenant application, and we have 2 methods, like multi tenant application and each tenant using different cloud. Suppose one is using Azure and one is using AWS. So then that time, we have created 2 repositories for Azure and AWS, and we have a common interface, name like get a block a grid image, and we are having s 3 and blob. So over there, we have to register depend the classes depend upon a tie tenant, what tenant are you using as a cloud, AWS, and Azure. In that case, we can use the interfaces where we'll be deciding the which cloud should be used as a runtime. So where we can use the interface, so we don't have any during runtime, we have to implement something, then we'll use the interfaces. And abstract class, when we have a partial implementation, further we have to extend on our class, then we can use the abstract class. Garbage collection is nothing but the date resource cleaner, which can use arena.

So when during the implementation of something on a way back, we have to take care about the garbage collections that I heard on a previous case. We must implement the catch map mechanism. We must follow the best naming solution, like, whatever you are defining, should be clear and crystal clear for another to understand. Also, we have to take care of data type. Suppose we are requiring something integer and we are assigned the law, so it is the best of memory. So and most probably we try to create an async way, use async of it where we're having the dependency on each other. So whether whenever required, just create a trace instead of keeping as a one by one execution. So it will execute the request fastly. Use lazy loading, like, when we are using the solid principle, we can say. So the solid principle is nothing but make the single responsibility of each class or function, whatever you want. Just use that class for single response. No other complexity should be added. Or stand for the open and close principle where we are using when we want to add something, it should be open, and when we are to modify something, it should be closed. So no other function should be hindered. The substitution of principle says that you should not parent should not depend upon child's like each parent each parent child should be replaceable, or each child can replace their parent, and no other impacts on the remaining system should be happened. As the interface segregation principle stands for, we have to define we have to say that no user should be forced to implement that interface, which is not required. Default dependency margin where we have to loosely support the system. So that's it. That is one of the best practices. Use catching, avoid deadlocks. So use locks to avoid the deadlocks. Use pagination whenever possible because it will significantly reduce the amount of time from database to request. So that is some best practices to follow up during web applications. Thank you.