Jyothi M

Senior Full Stack .NET & Front-End Developer

Accessible interfaces for public services, built on .NET.

I build the .NET back end and the screens people actually use, for state government and healthcare programs. My UI work is coded to WCAG 2.1 AA and Section 508, built inside design systems (Bootstrap, Angular Material, Sass), and tested with JAWS, NVDA, ANDI, and axe before it ships.

LinkedIn (opens in a new tab)
Experience
11+ years
Accessibility
WCAG 2.1 AA · 2.2 AAA
Public sector
MN · OH · ME
Certification
IAAP WAS (in progress)

Selected work

Front-end and UI work on production systems

Client systems are private, so each entry describes what I built and how it was tested, not the screens.

State of Minnesota Dec 2025 – present Case management modules

Accessible remediation of an ASP.NET MVC case management application

  • Built reusable Razor partial views, Bootstrap modal dialogs, AJAX forms, and validation messages for add, edit, delete, and view workflows, aligned with the enterprise design system.
  • Converted link-based actions to semantic buttons with row context for screen readers, fixed focus order, page-title announcements, live regions, and table names.
  • Built server-side OData v3 and DataTables search, sort, and paging for large government datasets, with persisted table state.
  • Hardened the UI against CSRF/XSS with anti-forgery tokens, POST-only deletes, and safe message rendering; supported Veracode remediation.
  • ASP.NET MVC
  • Web Forms
  • Razor
  • Bootstrap
  • Sass
  • jQuery
  • WCAG 2.2 AAA
  • JAWS · NVDA · ANDI · axe
  • Azure DevOps
State of Ohio Apr 2024 – Nov 2025 Angular + .NET Core platform

Design-system UI components and accessibility acceptance criteria

  • Designed and customized UI components with Angular Material, Tailwind CSS, Sass, and Ionic inside an enterprise design system, turning Figma designs into responsive, accessible interfaces.
  • Defined accessibility testing strategies and acceptance criteria with QA, aligned to WCAG 2.1 AA and Section 508.
  • Configured Okta hosted sign-in pages and custom login widgets for one consistent sign-in experience across applications.
  • Built the RESTful ASP.NET Core APIs behind the UI. Response times dropped 25%.
  • Angular 14
  • Angular Material
  • Tailwind
  • Sass
  • ASP.NET Core
  • Web Forms
  • Okta
  • Azure DevOps CI/CD
Modernization Government programs Legacy to current .NET

ASP.NET Web Forms to ASP.NET Core MVC and Blazor

  • Led migration of existing Web Forms applications to ASP.NET Core MVC and Blazor, rebuilding pages to meet WCAG 2.1 AA and AAA.
  • Replaced table-based layouts and postback controls with semantic HTML5, responsive CSS, and accessible form patterns.
  • Built micro front-end modules in Blazor WebAssembly and Blazor Server so teams could deploy UI changes independently.
  • Web Forms
  • ASP.NET Core MVC
  • Blazor WASM
  • HTML5
  • CSS3
  • WCAG 2.1 AA
United Airlines Apr 2022 – Feb 2024 Enterprise web + desktop

Blazor and Angular 16 component work

  • Built UI components with Blazor WebAssembly and Telerik controls in an MVC Razor application.
  • Created custom Angular 16 standalone components using Signals, with Jasmine and Karma tests.
  • Profiled a WinForms application for memory leaks. Form load time improved 45%.
  • Blazor
  • Telerik
  • Angular 16
  • Signals
  • Bootstrap
  • Jasmine/Karma
Walmart Jan 2020 – Mar 2022 Healthcare portals

Responsive patient portals and provider dashboards

  • Built responsive front ends in Angular 12, TypeScript, HTML5, CSS3, and Bootstrap for patient portals and provider dashboards.
  • Built reusable MVC layouts and partial views, and Angular forms with validation and error handling.
  • Developed Node.js services for asynchronous processing. Processing time dropped 40%.
  • Angular 12
  • TypeScript
  • Bootstrap
  • .NET Core
  • HIPAA
  • AKS

Code samples

Working UI components

These are the patterns I use on government applications. Each one works with a keyboard and a screen reader. Open "How it's built" to see the HTML, JavaScript, Sass, and C# behind it.

Sortable data table

1.3.1 · 2.1.1 · 4.1.2 · 4.1.3
Open permit applications (sample data)
Actions

How it's built
  • Column headers hold real <button> elements, so they work with Tab, Enter, and Space without extra script.
  • aria-sort sits on the <th>, and a polite live region announces the new order.
  • Each row action names its row ("View case MN-24017"), so the button makes sense out of context.
  • The scroll container is a labelled, focusable region, so keyboard users can scroll it at narrow widths.

Razor partial (ASP.NET MVC)

JavaScript

Form with an error summary

1.3.1 · 3.3.1 · 3.3.2 · 3.3.3
We send the permit decision here.
5 digits, for example 50309.

Required field

How it's built
  • On submit, an error summary gets focus and links to each invalid field. Each link moves focus to its field.
  • Inline errors are tied to their inputs with aria-describedby, and invalid inputs get aria-invalid="true".
  • Messages say how to fix the problem ("Enter a 5-digit ZIP code"), not only that something is wrong.
  • The server repeats every rule, so the UI never becomes the only check.

C# view model + controller

Tabs and a confirm dialog

2.1.1 · 2.1.2 · 2.4.3 · 4.1.2

Case MN-24017 · Building permit · Received Oct 3. Use the arrow keys to move between tabs; Home and End jump to the first and last tab.

Delete the site plan?

The applicant will be asked to upload it again. This can't be undone.

How it's built
  • Tabs use roving tabindex: one Tab stop for the list, arrow keys inside it, as in the ARIA Authoring Practices pattern.
  • The dialog is a native <dialog> opened with showModal(), so focus stays inside and Esc closes it.
  • Focus starts on the safe choice ("Keep file") and returns to the button that opened the dialog.
  • Spacing, color, and focus rings come from shared Sass tokens, the same way a design system supplies them.

Sass design tokens

Accessibility

How I test before anything ships

  1. Automated scanaxe DevTools and Siteimprove on every changed page, to catch contrast, labels, and ARIA errors early.
  2. Keyboard passTab through the whole flow: visible focus, logical order, no traps, modals that return focus.
  3. Screen readersJAWS and NVDA on Windows and VoiceOver on Mac: names, roles, states, live announcements.
  4. ANDI reviewCheck tables, headings, and focusable elements the way state accessibility testers do.
  5. Zoom and reflow200% text zoom and 320px width with no loss of content or horizontal scrolling.
  6. QA sign-offWrite acceptance criteria against WCAG 2.1 AA and Section 508, then verify with QA before release.

Skills

Tools I use every week

.NET and C#

ASP.NET Core, ASP.NET MVC, Web Forms, Razor, Blazor, Web API, Entity Framework, LINQ

Front end

HTML5, CSS3, Sass/SCSS, JavaScript, TypeScript, Angular, React, Bootstrap, Angular Material, Tailwind, responsive design, Figma to UI

Accessibility

WCAG 2.1 AA, WCAG 2.2, Section 508, ADA Title II, ARIA, JAWS, NVDA, VoiceOver, ANDI, axe, Siteimprove

Data, APIs, delivery

SQL Server, Oracle, REST APIs, middleware (RabbitMQ, Kafka, Service Bus), Azure DevOps CI/CD, GitHub, Azure, AWS

This page

Accessibility of this portfolio

This page targets WCAG 2.1 AA. It has a skip link, landmarks, a single h1, visible focus, reduced-motion support, and light and dark themes. The contrast ratios below are calculated live from the colors in the theme you're viewing.

Text contrast in the current theme
PairRequiredRatioResult