Began in May 2025
I worked on a team that developed the Global Request System (GRS), an internal tool enabling communication and coordination for processes at Milwaukee Tool. This tool is used across the world, and we used distributed cloud resources for a multi-region deployment.
GRS supports the business by tracking the flow of prototype manufacturing requests and lab testing requests. It allows coordination between design engineers, managers, and technicians. The software tracks high-level requests, work instructions, and individual units (physical items). The data is then used to provide advanced searches, email alerts, and custom dashboards in Power BI.
As a part of this team, we used agile practices including Refinement, Sprint Review, Daily Stand-Up, and PI Planning.
This application was designed to be global and flexible.
The app was internationally optimized from the multiple instances of the backend server, integrations with service buses, and automated deployment process. We used a multi-region deployment scheme to ensure best latency to all users, leveraging Redis caches to avoid extra calls to databases and external APIs. We employed service buses with function apps to separate concerns and serially process changes made by any server. And, we had a robust deployment process that used blue/green deployment and ran on Azure DevOps CD pipelines.
In order to be useful to a large range of users, fields were made dynamic and customizable by individual teams and labs. This allowed for specific customization of field values, dependencies, and validations. A NoSQL database was leveraged here to easily allow for flexible column names. We also made data from the app available to a variety of use cases through our custom reporting database (integrated to Power BI) and external API (using Swagger and Azure API Management).
Technically, throughout my internship, I added many features and fixed bugs as prioritized by our Product Owner.
Here is a sample from the work that I did:
Profile application to recommend performance enhancements; removed redundant execution of most expensive network call and cache static assets: As a part of a performance improvement quarter objective, I examined our app’s Azure Application Insights, ran C# profilers, and analyzed client-side metrics. Two highlights of ideas that I came up with and later implemented were removing the most expensive network call that had duplicate data and client-side caching static assets by setting the cache control header and cache busting with content hashes.
Identify and patch authorization vulnerability: I discovered that the custom authorization header we used was not required for some endpoints that have the relevant policy attached to enforce it. (We used two JWT authorization headers, one to validate the person’s Entra ID identity, and another to give custom roles and access from an internal Users API.) I investigated this issue, collaborating with members of my team and a senior software architect to understand the original intentions of authorization and the reason behind the current setup. Then, I made a change to ensure that this header is enforced and users accessing any part of the application not only have logged in with Entra ID but also have been given access to the application, documenting my findings and rationale behind the chosen implementation.
Notify users when the Units required for a request are not available on the agreed-upon date: This aids in keeping the requester informed of the current status so that they can follow-up to avoid scheduling delays. Technically, this involved setting up a scheduled job in an Azure Function App, configuring a database connection to our SQL instance, and adding a notification object that includes data for the email template to our CosmosDB NoSQL database, which is then picked up by a service bus watching for changes and sends an email via the SendGrid API.
In addition, I assisted with deployments and triages/fixes for deployed bugs.
I also facilitated Retrospective sessions to bond the team, celebrate completed work, and make process changes to improve workflows.