This summer, I had the opportunity to join Broadcom’s MRI (Mainframe Resource Intelligence) team as a summer Next-Gen Mainframer. Much like a medical MRI helps diagnose health issues, Broadcom’s MRI tool gives businesses and IT leaders deep insights into their mainframe systems—insights that would otherwise be difficult to obtain.
Customers who use MRI can gain access to a variety of assessments and reports, including hardware analysis, security audits, and execution metrics. And, perhaps most impressively, as a Beyond Code offering, MRI is available at no cost to Broadcom customers. Understanding how these entitlements are used is critical; usage trends help drive product improvements, customer support, and future roadmap decisions.
However, tracking and analyzing how the entitlements were used was not always straightforward. That’s where my summer project came in.
Building the Entitlement Dashboard
Once I completed onboarding, set up my development environment, and worked through the feature planning process, I began work on a new dashboard to visualize entitlement usage. This tool would allow users to efficiently filter, sort, and analyze usage data across different offerings.
I started by building RESTful API endpoints in the existing Spring Boot administrative service. I then implemented the service-layer (business logic) needed to:
-
Parse entitlement usage records from the database
-
Format and transform the data
-
Extract key insights for the frontend
To ensure stability, I wrote unit tests for each of these services so they remain reliable through future development cycles.
Next, I designed the frontend using Broadcom’s Precision Design System, an internal React component library. I worked with various components, including:
-
Data Tables
-
Donut Charts
-
Line Charts
-
Bar Charts
In the process, I learned how to:
-
Create custom React hooks
-
Set up middleware routes for secure file transfer
-
Perform end-to-end (E2E) testing
The result was a responsive, user-friendly dashboard that made entitlement data more actionable for our team.

The Offering Usage by Site and Offering Usage by Quarter bar charts from the Entitlement Insight Dashboard.
Solving a Customer Defect
Midway through the summer, the MRI team received a customer defect report: a client had unknowingly run the same report 57 times, only to later discover it had been failing due to a parsing error.
This revealed two core issues:
-
The parser itself was fragile and error-prone
-
We had no way of knowing when customer reports were failing
After finishing the dashboard, I set out to tackle both problems.
Creating the Email Notification Service
To address the visibility gap, I developed an emailer service that sends notifications when a report status changes—either from PENDING → FAILED or PENDING → PASSED.
This system uses the assessment offering code and result to determine the appropriate PDL (product distribution list) to notify. Additionally, I created a daily digest email that summarizes all passed and failed reports from the previous day, along with relevant metadata.
An example daily digest report email using test data.
Improving the RACF Parser
To prevent similar failures from happening again, we re-evaluated our parsing approach for the Security Essentials Assessment for IBM RACF.
Previously, the parser relied on output from the SETROPTS LIST command, which displays RACF system settings. While useful, the output was inconsistent and difficult to parse due to its varying format.
Instead, we opted for IRRXUTIL, a REXX interface that lets us extract RACF database information from z/OS in a structured way. This allowed us to:
-
Write a REXX script that populates a stem variable with RACF settings
-
Output the results in JSON format, simplifying parsing and debugging
This proof-of-concept showed clear advantages and paves the way for more robust and maintainable parsing in the future.

A part of the proposed schema to display RACF settings to be used by the parser service.
Moving Forward
My time with Broadcom this summer helped me strengthen skills I already had—like working with Next.js, TypeScript, Java, and Spring Boot—while introducing me to entirely new areas, including:
I’m incredibly grateful for the support I received from everyone this summer. Whether it was code reviews, pair programming, or quick syncs to answer my many questions, the team always had my back.