Case study · Microsoft · Azure CXP Engineering
Rebuilding Azure support and engineering experiences
Nine years on Azure customer experience tools, first as a vendor: a portal extension rewrite, Services Hub support case creation, and a forms engine other apps reused.
- Role
- Vendor, then Software Engineer and Software Engineer II
- Period
- 2016 to 2026
- Status
- Shipped to production
Internal tools are described by what they do. Everything here is from my public résumé.
Overview
Azure Customer Experience (CXP) Engineering builds the tools Microsoft uses to support Azure customers, along with customer-facing experiences in the Azure portal and Services Hub.
I worked there from 2016 to January 2026. I started as a vendor engineer through Mindtree, took ownership of an internal app's frontend, and that work got me hired at Microsoft full time in October 2018. After that, most of my work was frontend ownership of React and TypeScript apps, with .NET and Azure work underneath.
Problem
The projects differed, but most started from code that had become hard to change. A customer-facing Azure portal extension was still written in Knockout and had no unit tests. Support case creation for Services Hub 2.0 had to be built on a stack I hadn't used before. Data entry on a customer-engagement platform needed forms whose fields depended on business rules.
Constraints
- The portal extension is customer-facing and deploys to the Azure Public, US Government, and China clouds.
- Services Hub 2.0 case creation had a window of about three months.
- The rewrite needed coordination across the UX, portal-platform, and deployment teams.
Architecture and technical decisions
- Replaced Knockout with React and TypeScript until the legacy framework was gone.
- Moved the extension to resource-provider deployment across all three clouds, which halved its core Assessments component from 3,000 to 1,500 lines.
- Built data entry on a config-driven forms engine with business rules, using React Hook Form, so new forms are defined as configuration.
- Made about 100 Playwright end-to-end tests a release gate.
- Used Azure Search indexers for search over millions of documents in an outage-visibility app.
My contributions
- Frontend owner of the Knockout to React rewrite: 100+ PRs, the legacy framework fully removed, unit test coverage from 0 to 77%+, and local dev startup cut 65% (4:32 to 1:34).
- Migrated the extension to resource-provider deployment, closed a Secure Future Initiative compliance item, and remediated 10+ .NET and npm CVEs.
- Delivered Services Hub 2.0 support case creation in about three months (56 PRs), covering product and problem selection, validation, and additional contacts.
- Built the forms engine, plus tree-view navigation and shared controls that other CXP apps reused.
- As a vendor, owned the frontend of the Azure field's outage-visibility app: took it from pilot to preview, rebuilt it in React to retire AngularJS, and started its move to TypeScript and Redux. That's the work that got me hired full time.
- After joining Microsoft, stayed its sole frontend developer. I finished the TypeScript migration and extended its coverage from Azure to Microsoft 365 and Dynamics 365.
- Took an internal tool from a hackathon prototype to production, replacing a legacy ASP.NET MVC app. Later led two AI hackathon teams that added RAG-based recommendations to assessments.
Challenges and tradeoffs
As a vendor, I had to earn ownership. I took on the outage-visibility app's frontend while it was still in pilot and rebuilt it in React while people were using it. That work turned the contract into a full-time offer.
The rewrite landed as 100+ PRs, so the customer-facing extension stayed in service while Knockout came out.
Case creation was on a stack I hadn't used before, with about three months to deliver. It shipped in 56 PRs and went to a pilot of about 4,000 users.
Outcomes
- Knockout fully removed from the portal extension. Unit test coverage went from 0 to 77%+ and local dev startup from 4:32 to 1:34.
- Services Hub 2.0 case creation was piloted to about 4,000 users.
- A CXP platform's Azure subscription costs dropped by $142.7K a year (36%) after I removed redundant infrastructure.
- Search indexing over millions of documents went from weeks to hours. Daily users of the outage-visibility app grew from about 100 to about 173.
- Parts of the outage-visibility UI I built as a vendor are still in production today.
- The forms engine became the platform's primary data-entry UX.
Technologies
- React
- TypeScript
- Knockout (legacy)
- Redux-Saga
- React Hook Form
- Jest
- Playwright
- .NET
- Azure portal extensions
- Azure Search