profile-pic
Vetted Talent

Shreyansh Makwana

Vetted Talent

With over 7.5 years of experience in designing, executing, and delivering solutions, I specialize in building Web APIs. I have extensive exposure to public sector services, income tax services, and multi-function printer (MFP) solutions. I have implemented small, mid, and large-scale applications, with hands-on experience in all phases of the SDLC.

  • Role

    Senior Software Engineer

  • Years of Experience

    7.5 years

Skillsets

  • ASP.NET CORE MVC - 5 Years
  • C# - 7.5 Years
  • DevOps - 2 Years
  • SQL database - 5 Years
  • .Net core 3.1 - 7 Years
  • .NET framework 4.8 - 4 Years
  • Asp.net core 6 restful web api - 5 Years
  • Azure DevOps - 3 Years
  • Git - 3 Years
  • .NET - 7.5 Years
  • SQL - 5 Years

Vetted For

8Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Software Engineer(Onsite, Ahmedabad)AI Screening
  • 53%
    icon-arrow-down
  • Skills assessed :ASP/Net, asp.net web forms, Design Principles, MS SQL, Azure DevOps, Git, Problem Solving Attitude, Time Management
  • Score: 48/90

Professional Summary

7.5Years
  • Aug, 2021 - Present4 yr 5 months

    Engineering Lead

    Persistent Systems
  • Feb, 2017 - Jul, 20214 yr 5 months

    System Engineer

    Acty System India Pvt. Ltd

Applications & Tools Known

  • icon-tool

    Jira

  • icon-tool

    Git

  • icon-tool

    SVN

  • icon-tool

    Freshdesk

  • icon-tool

    Postman

Work History

7.5Years

Engineering Lead

Persistent Systems
Aug, 2021 - Present4 yr 5 months
    • As an Engineer Lead, I am responsible for providing comprehensive design solutions and maintenance and implementing innovative functionalities in a microservices project.
    • Design and Implementation: Leading the design and implementation of complex microservices architecture, ensuring scalability, performance, and security.
    • Mentorship and Guidance: Mentoring and guiding junior developers to enhance their skills and ensure best practices.
    • Code Review: Conducting thorough code reviews to maintain high-quality standards and ensure adherence to coding guidelines.
    • Project Oversight: Overseeing the development process to ensure timely and successful project delivery, collaborating with cross-functional teams to integrate new features and improve existing functionalities.

System Engineer

Acty System India Pvt. Ltd
Feb, 2017 - Jul, 20214 yr 5 months

    As a System Engineer, I was responsible for:

    • Product Enhancement: Enhancing existing products to improve functionality and performance.
    • Design and Development: Designing and developing web applications, APIs, and SOAP Web APIs.
    • Desktop Applications: Creating and maintaining desktop applications for multi function printers (MFP).
    • Cross-functional Collaboration: Collaborating with teams to ensure seamless integration and effective solution delivery

Achievements

  • Implemented Azure Redis Cache, achieving a 67% performance improvement for the Authorization middleware.
  • Implemented CQRS, resulting in a 12% improvement in system performance through enhanced scalability and separation of concerns.
  • Played a key role in recruiting, increasing our team member count by 5.
  • Implemented JWT token authentication, resulting in a 10% performance improvement in authorization processes.
  • Implemented many features development work and showcased the ability to work independently, adhering to coding standards within an agile environment.
  • Participated in backlog grooming to address business needs effectively.
  • Focused on thorough analysis and troubleshooting, ensuring high standards of quality assurance with minimal supervision.
  • Top talent FY 24

Major Projects

3Projects

RevX

Revenue Solutions Inc
Jan, 2024 - Present2 yr
    • Technical Leadership and Development: Led the technical design and development of a modern tax solution, ensuring the architecture was scalable, maintainable, and aligned with industry best practices using ASP.NET Core 6 RESTful Web API.
    • Requirement Analysis and Implementation: Conducted in-depth requirement analysis to understand the specific needs of tax agencies, translating these into effective, user-centric features that improve public service delivery.
    • Advanced Database Management: Utilized Entity Framework Core and Azure SQL Database for efficient data management, ensuring seamless integration and high-performance data operations across the tax solution.
    • Quality Assurance and Testing: Employed unit testing with Xunit and Moq, along with FluentAssertions for robust validation, to ensure code reliability and maintainability. Conducted thorough code reviews to uphold high-quality standards.
    • Comprehensive Azure Integration: Integrated various Azure services, including Azure B2C for authentication, Redis Cache for performance optimization, Event Grid for event-driven architecture, and Application Insights for monitoring, enhancing the solution's performance, scalability, and security.

Revenue Premiere Enterprise

Jan, 2023 - Dec, 2023 11 months
    • Maintenance and Continuous Improvement: Actively maintained and developed the RPE cloud-native solution, ensuring it remained up-to-date with evolving tax office requirements, enhancing its functionality, and addressing any technical issues promptly.
    • Cross-Platform Development: Utilized ASP.NET Core MVC and C# to deliver a robust, scalable technical solution while incorporating Java and Business Rule Engines to handle complex tax processing rules effectively.
    • Database and Front-End Integration: Managed SQL Server for efficient data storage and retrieval, ensuring seamless back-end integration with the user interface built using HTML, CSS, and JavaScript, providing a user-friendly experience for tax office staff.
    • Code Quality Assurance: Conducted thorough code reviews to maintain high standards of code quality and performance, ensuring the solution was reliable, secure, and easy to maintain across different tax office environments.

Konica Minolta OpenAPI

Feb, 2020 - Jun, 20211 yr 4 months
    • Requirement Analysis: Conducted thorough requirement analysis to understand the needs and specifications of software developers aiming to integrate with Konica Minolta MFPs, ensuring the API met the functional and technical demands.
    • API Development: Developed and implemented the Konica Minolta OpenAPI using C# and the .NET Framework, creating a robust communication system that facilitates seamless interaction between software applications and multi-function printers (MFPs).
    • SOAP Web API Implementation: Utilized SOAP Web API protocols to design and build a reliable, secure interface for data exchange between applications and Konica Minolta MFPs, ensuring compatibility and effective communication.
    • Integration Testing: Ensured comprehensive testing of the API to validate its performance and reliability, addressing any integration issues to guarantee smooth operation within diverse software environments.
    • Documentation and Support: Created detailed documentation and provided support for developers integrating with the API, offering guidance and troubleshooting assistance to streamline the application development process.

Education

  • Bachelor of Engineering

    A.D. Patel Institute of Technology (2017)

Interests

  • Cricket
  • Football
  • AI-interview Questions & Answers

    Hello. My name is. I started as a genius opportunity. I work in entry system. India for 4 years. For that, I joined persistent senior software. My current role is, engineering group. My role is mostly advancement, maintenance, for the we test the and, maintaining I have worked with, So second. In usual, I work in that's also. My recent project I'm working with services Apart from, my I'd like

    So, we are using 4 usually, Yes. I mean, in, 15 days window and another 15 days. Monthly limits. So for gate, we usually create a Foundry branch Got And did hot pick person recreate The branch of a local branch from the the hit hit what And then 3 Create a PR on that local submit that here? And then once it continue and then it got sent to the humidifier.

    So, your database where I know we had some changes with which were related to schema. The for example, I've added The columns, I have added some indexes also. So case where, you know, where I don't Change in particular table What I will do, I was, I was analyzing My little Analyzing the impact where this call of where this table is being used. And, what is the impact And based on that, I was creating that some kind of It's where I was testing, well, Expected behavior after implementing, implementing, So that that is what I will do manually. Apart from it, what I was doing you know, was, once that that might be a case where the table can be used in But that s piece, which which will be hard to hard get I mean, to get which SQS impacted because the

    So there are multiple ways we can store the data. We can use SaaS and we can use data, temp data. Uh, so these are some sort of few few options we have to maintain this date. Uh, for this, uh, in my project, we use session for, uh, uh, user user details like user name, user ID, and user, uh, like, user related data. And in in few cases with where I have used view view data or temp data for the traffic data from and manage, uh, managing the state of the data in the SPO.

    So in deposit the pattern, uh, uh, we create the interface. That interface, we, uh, I mean, in that interface, we describe the methods. We we define the methods, and then we implement the interface with, uh, our always, uh, our our based on our requirement. Like, for example, if we are having a SQL connection repository for for SQL connection, then we'll create a interface, and then we will implement them based on which SQL connection we want. For example, if we want a MS SQL server connection, if you want we want a MS SQL server connection, if you want Java or Oracle Oracle connection. So, uh, so based on that, we maintain it in that way. So the database also remains a deposit, eastern of ASP dot NET data, and then we use that depository to get our data or to manipulate our data using this depository which we have created.

    Super large. So for large so before from this question, what I'm understanding is, uh, is that we have to revert our changes, which we have done in wave applications. So in that case, it is pretty simple. We can revert our PR. Uh, we can, uh, for example, we we have created a full PR and it work most towards it, then all we have to do is to go to the PR and that that will be option that we can revert it. And for that, we can just directly, it will create a revert here, and then it it it it only need to get approved. When the reviewer approve it, we will merge it. And the code will last, uh, change will got reverted.

    K. So the main thing which I'm finding that this code, I have it, uh, it is not following solid principle is is single responsibility principle. So here in report, we are we are we are having the print report functionality, then we are waiting for system report. Like, we are giving a printing report functionality, then we have a same in the same class, we are having method for, uh, saving related, which I believe it will be related to, uh, database. So I think we can divide this. We can divide this class, and we can create a subclass, or we can create a interface just for, uh, for for, let's say, print functionality. So So based on the report, we want to, uh, for example, there there can be a certain report, uh, for example, which are only related, for example, which are, uh, related to HR only, which cannot be printed or which are related to the admin only, which cannot be printed. So in that case, if we if we use the report, then it will provide the print function. It will cause a problem. Right? Because we cannot we cannot print that because of security issue. So in that case, what we can do, we can divide this class. We can create a interface or class. Let's say we create a interface. Uh, that interface, we can we can write we we can see print, uh, print, I print report or something like that. And then the those report we want we want to print, we will do that.

    So, uh, from the query, if you don't want all the data, we can just, uh, specify which column we want. Like, here, we have to select star from customer where is active is is 1. So if we for example, if we only want certain certain fields like customer name, user ID, or, uh, like, customer ID, something like that. We can specify the column names so it it will be much faster. One more thing which I found that here we are we can use using statement instead of open because what will happen if something goes wrong and, uh, if if exception gets fired at fill, then the connection will get will not get closed because the statement will not get executed. In that case, it it will, uh, the connection will will be open, and the mode connection will open if it will cause an issue in issue in the, uh, in the performance. So we so that one more thing why join found, we we can use using for the connection. Or else, we can use try, catch, and finally, and we can move our tools, uh, code in in finally.

    So here I'm what I'm understanding is we have one application, web application, web form application, which is in ASP dot NET. And the issue is that we have we have this application, which is having downtime, for example, it is failing. And, uh, so in that case, it most probably will have written a code in in a way that the the exceptions are not handled properly, which will cause the applications, uh, uh, the applications are down. So I will first start with checking with that, like, whether we have maintained our, uh, exception handling. The one more thing which I found is that, uh, to men minimizing the downtime, we can, uh, we can if if we want, we can move from ASP dotnet to dotnet 6 or from latest, uh, with, uh, latest, uh, preduplication. Uh, let for example, uh, we can do, for example, dotnet 6 or something like that, but it will be a huge change. But for for meantime, what, uh, I think exception handling should be there. Uh, then if in some case, the application is working fine, but, uh, server which we which is is deployed, request response time. Right? So for for particular request, how much the web application is taking time. And if we are having issue in in the server where the application is declared, so I will check whether it it is related to a memory or or something like that. If it's related to memory, then I think, uh, I will I will try to increase the memory of that server. I will try to increase the cache or I will I will check because sometime what happened in in, uh, I had seen a problem where we had 1 server. In the server, that logs file were getting, uh, we have remitted the logs file, uh, but logs file were not getting deleted. And the size of the server was getting, uh, getting increasing. So what happened that server was slowing down. But when we check, the server had, like, 100 MB or 200 MB remaining. So if it's something related to, uh, server sense, then I would do that to increase, uh, user server capacity.

    So in this, uh, in in one of my project, what we had to do for SPN collection is that we have created one single phone where we we are having, um, SQL connection. And that SQL connection, we have created, uh, with that, uh, that helper class, we call this database helper, which provide the connection. If we have a if we have any active connection with the required database, then we will return the database connection. If we have we are if we don't have, then we will create 1. So this will, uh, actually, this is reducing a lot. Top, uh, time for, you know, uh, creating the database connection because it it it takes time to, uh, create a database connection. So that is one way. Apart from it, uh, for example, if we have some static data, for example, in in one of project, we have data related to, uh, US states and their, uh, imports. So which is static data? So we can use case, and we can store it, and we can provide it when whenever it is required. So so so for example, those kind of, uh, requests where we need a connection, we can we can minimize it by using the case because in that case, we will not require to connect the database. We will just return.

    Not understanding this question. I'm not clear with the question, but if we pick selected to implementing a feature in ASP dot NET application and and if we have to manage it in Azure DevOps. So in that case, for example, if if if we are having a PBI for feature request, then we will create one feature request in Azure DevOps. We will provide details like release mode and targeted branch and, uh, require required test case and, for example, required cases would do, like, the behavior and expected behavior and, uh, like, some of the data. For example,