Kiran.Chauhan
{ .NET.Developer(); }

Portfolio

Take a look through my portfolio

I have worked on various projects, of which a selection are shown below.

Data Integration

I implemented a cron job integration to pull data from a third-party API and upload it to an AWS S3 bucket. I configured the job to run in AWS EventBridge on a daily schedule. The job calls an API endpoint that I implemented which in turn pulls data from a third-party.

I also created a bucket policy on the AWS S3 bucket to secure access whilst allowing access to internal systems. The AWS EventBridge rule was implemented in an AWS CloudFormation template.

Business value delivered

The data uploaded to the S3 bucket enabled the business to gain analytical insights and identify opportunities to increase company revenue.

Financial Calculation Feature

I delivered a complex financial calculation feature for end users to provide them with information about promotions and offers. This feature involved various calculations based on the product features, which I produced a thorough documentation for to ensure clarity, understanding and to promote knowledge sharing. The documentation covered the following

  • The scope of work
  • Options considered in how to approach the problems encountered
  • Decisions that were made and why
  • An explanation of the calculations in the solution
  • Examples of test cases with screen snips that showed the different possible outcomes along with the conditions that cause the outcomes

Business value delivered

Providing information about promotions and offers empowered and instilled confidence in end users to help them make informed decisions whilst using the system and increased customer satisfaction. This in turn helped the reputation of the company in remaining competitive and relevant to the market.

API Endpoints

I have implemented various API endpoints in .NET, some of which were queries and others which were commands. Some of these endpoints interacted with a third-party API whilst others interacted with an internal system (either through other APIs, database CRUD operations or sending email or messages to an AWS SQS queue).

Using CQRS with the MediatR package, these endpoints were developed using Clean Architecture to ensure a clear separation of the Presentation, Application, Infrastructure and Domain layers. I wrote an extensive suite of unit and integration tests to ensure as much code coverage as possible, carefully considering API inputs and outputs, validation, errors as well as edge cases.

Business value delivered

The various endpoints developed provided new and enhanced features to end users such as enabling them to register for events, sending notifications and emails, expanding upon the existing business offerings.

Azure DevOps Pipeline

Whilst maintaining several Azure DevOps Pipelines, I resolved build and deployment issues.

  • Due to the commercialization of the Bitnami Redis Docker image, the pipeline was unable to pull this image as part of the integration test run. I resolved this by updating the image reference to an alternative Redis image to unblock other developers and ensure the pipeline was in a working state.
  • When running integration tests on my local machine, they were passing whilst failing on the pipeline. After investigating, I found that because the pipeline was running on a Microsoft-hosted agent, the date format was different to my local machine which was the cause of the tests failing. I resolved this by explicitly setting the date format to US format in the tests.
  • Whilst upgrading .NET from version 6 to 8 for some applications, the pipeline broke due to .NET framework changes. Specifically, the DotNetCoreCLI@2 task previously referred to  *.dll files to run tests in .NET 6, but to get this working in .NET 8, I had to change that reference to point to *.csproj files instead.

Business value delivered

Resolving the issues removed critical blockers for other developers, enabling them to continue making deployments and keeping the pipeline in a working state.

Practical use of AI as part of solution development

Whilst investigating solutions for problems that arose during feature development and bug fixing, Copilot AI has formed part of my problem solving strategy balanced with Google searches, reading documentation, and watching YouTube videos.

It is important to me to fully understand, fact-check and verify what AI suggests as I am fully aware of AI hallucinations where there is potential for inaccurate information to be generated.

It is also important to me to have a balanced and reasonable use of AI in my day to day work. Ignoring it would leave me behind the curve, and over-reliance on it can produce problematic (unmaintainable and unscalable) solutions.

Business value delivered

A reasonable and balanced use of Copilot AI has helped me to find solutions to problems more quickly, has helped to clarify my understanding of certain concepts and has helped to write test cases under my close supervision. This has enabled me to deliver features and bug fixes to end users more quickly and efficiently, increasing the reliability of the applications I've worked on and maintaining the reputation of the business.

Automation Testing

I have created a suite of end-to-end automation tests using Selenium WebDriver with C# to cover core functionality and critical user journeys in various web applications such as logging in and out, navigating to different pages as well as performing various actions such as filling out and submitting forms.

Business value delivered

The suite of end-to-end automation tests increased code and functionality coverage, enabling bugs to be caught earlier in the development lifecycle, reducing the cost of development and reducing manual effort in regression testing.

Screenshot of Adult fare finderAdult fare finder