Preskočiť na obsah
case study / ABB Verify

Leading ABB Verify modernization while weekly releases kept moving

I led modernization work across a 150K+ LOC React SaaS while requirements changed, business-facing features shipped weekly and technical debt still had to be handled.

Visit ABB VerifyContact me
Public ABB Verify marketing visual
fig. 01 · public ABB Verify marketing visual
role

React tech lead, senior web developer

scope

front-end architecture, UI systems, product delivery

product

SaaS for US eye-care providers

cadence

weekly release cycle

if you only read one thing
one-line version

I led modernization of a 150K+ LOC React SaaS while juggling shifting requirements, weekly product delivery and technical debt.

my lane

Frontend architecture, UI systems, typed data flows and product-facing delivery.

why it matters

The work made future product changes safer to build, review, iterate on and keep current.

This page goes deeper, but that is the story I want a recruiter, client or product leader to remember.

public context

Public sources are used for product context. Private screens, exact architecture and business metrics stay abstracted.

official sales page

ABB Optical / ABB Verify

Public positioning for eligibility checks, patient messaging, integrations and demo flow.

practitioner guide

Eyes On Eyecare guide

Public user-facing context around unused benefits, dashboards, onboarding and practice impact.

product context

What ABB Verify does

ABB Verify sits between practice-management systems and payer portals, giving eye-care providers one place to work with insurance checks, benefits, messaging and appointment context.

inputs

Practice and payer data

practice-management integrations

patient and appointment context

authorized payer portals

workspace

ABB Verify

ahead-of-time checks

real-time searches

benefits messaging

outputs

Practice action

prepared appointments

coverage result cards

unused-benefits outreach

fig. 02 · simplified platform map

Insurance checking engine

The core capability combines practice-management context with authorized payer-portal checks for appointment prep, unused-benefits messaging and real-time patient searches.

Patient messaging and unused-benefits workflows

Automated outreach helps practices turn available benefits into scheduled patient actions.

Appointment-related operational screens

Daily work happens in dense views with patient context, scheduled visits and action-heavy data.

Reporting and practice-management integrations

The product connects with practice systems and turns operational activity into clearer reporting.

highest-leverage work

The work I led

This is the short list I would want a recruiter, client or product leader to remember before the implementation details.

why it matters

This was not just an updated-libraries project. Technical cleanup became a way to make product work safer, clearer and easier to continue.

Active SaaS modernization

Led modernization of a 150K+ LOC React product away from legacy CRA and scattered Bootstrap-era foundations without stopping weekly delivery.

Branded UI foundation

Led the consolidation of Bootstrap, SCSS and CSS modules into a Material UI (MUI) foundation that felt closer to one ABB product.

Typed API layer

Introduced RTK Query and generated clients from multiple OpenAPI schemas so product work had safer data contracts.

Onboarding portal

Led the design and implementation of a resumable multi-step signup flow with integrations.

Dense operational UI

Worked on data-heavy screens with large tables, nested data, pagination, filtering and virtualization where it mattered.

Export tooling

Led the move to a monorepo shape, shared duplicated generator logic and introduced parallel generation.

The problem was not a rewrite

The real project was the juggling act: changing business requirements, weekly feature delivery and technical debt all moving at once.

When I joined, the main front-end was a large Create React App codebase with old React patterns, several styling systems, Redux thunks, connector HOCs, class-based forms and weak TypeScript in important areas.

The harder part was that none of this existed in isolation. Requirements could change even mid-sprint, but the app still supported real users, weekly releases and a product roadmap. I led the modernization in slices the team could actually ship.

This is the project where my work started to feel less like frontend execution and more like product engineering. I had to understand why a workflow existed, how staff used it and what kind of technical change would survive contact with the next release.

working principle

Balance delivery and debt in slices people can ship.

My job was not to sell a rewrite. I led the work by finding places where the team could replace legacy foundations while still delivering visible product work.

technical direction

Modernization work

The core work was not about chasing a newer stack. It was about changing the default path for future product work.

fig. 03 · stack migration map
Tooling
before

Create React App

to
after

Vite

UI system
before

Bootstrap, SCSS, CSS modules

to
after

Material UI (MUI)

State and data
before

Redux thunks, connector HOCs

to
after

Redux Toolkit, RTK Query

Forms
before

Class forms, validate.js

to
after

React Hook Form, Zod

API layer
before

Manual request typing

to
after

Generated clients from OpenAPI

UI foundation

before

Several Bootstrap layers, SCSS modules, direct CSS imports and inconsistent UI patterns.

after

A cleaner MUI-based interface foundation aligned closer to ABB branding.

State and data

before

Redux reducers, thunks, connector HOCs and request logic spread through components.

after

Redux Toolkit, RTK Query and generated typed API clients from OpenAPI schemas, making contract mismatches visible instead of hidden in manual request code.

Forms

before

Class-only form components, inheritance-heavy abstractions and validate.js rules.

after

React Hook Form and Zod for more explicit, modern and reusable form flows.

Tooling

before

Create React App, heavy dependencies and modules that added avoidable build footprint.

after

Vite-based tooling, modern libraries and a stack that is easier to keep current.

abstracted product artifacts

Product work behind the stack work

Private app screens stay private, so these simplified artifacts show the workflows around the engineering story.

core workflow / insurance checking

Insurance checking is the product's main workhorse.

ABB Verify combines practice-management data with authorized payer-portal checks ahead of time for scheduled appointment preparation and unused-benefits messaging. Real-time search is another mode of the same capability: staff can run a patient lookup and get structured result cards for vision benefits, authorizations, second-pair opportunities, partial matches and medical eligibility.

This is public product context. My work on the real-time result surface was mostly visual polish, but insurance checking matters because it explains the daily value of the platform.

ahead-of-time checksreal-time searchpartial-match review
checking modes
ahead-of-timereal-time
real-time patient search

C. Gutierrez · vision + medical

status

payer results + match clues

vision · eligible

VSP

2 plans

Second Pair Opportunity found!

VSP Choice Plan

[METLIFE - FEDVIP]#0841339164

Exam

Frame

Lens

CL

CL Exam

PDF

VSP Diabetic Eyecare Plus Program

[METLIFE - FEDVIP]#0841339164

Exam

Frame

Lens

CL

Medical

PDF
partial match

86% patient match

Review the differences, then confirm to show this plan as a found result.

name:

Chris / Christopher

address:

12 Elm / 42 Oak

DOB:

exact match

medical

TriZetto

UMR-Wausau

Met ded.

$50 copay

PDF
fig. 04 · simplified from public insurance-checking result examples
message flow
Dr. Rivera

Unused benefit found. Schedule here:

rivera.care/schedule
Mia Carter

Thanks, Dr. Rivera. I scheduled my appointment.

benefitmessageappointment

Benefits messaging

A public product pillar translated into patient-friendly outreach and staff-visible activity.

monthly digest

Generated summary

patients

benefits

messages

CSVPDFemail

Monthly exports

The generated summaries and internal export tools are shown as a workflow, not as private implementation detail.

resumable setup

Onboarding journey

account

completed or resumable

practice

completed or resumable

agreement

completed or resumable

payment

external step

handoff

external step

Onboarding portal

A resumable signup path with authentication and third-party steps made legible as a product journey.

leadership

How I lead the work

A lot of the role is translation: from ambiguous and changing requirements to technical plans, from technical debt to business tradeoffs.

I try to understand the domain deeply enough to challenge the problem, not only implement the requested screen. That means asking why a workflow exists, where the business pressure comes from and what kind of solution will still make sense after the first release.

The UI was often the visible edge of deeper business workflows: backend-heavy operations, database-driven processes and internal management screens. My front-end role was to make those workflows usable, reviewable and safe for staff while staying close to the product and backend decisions behind them.

impact

What became easier to ship

The point was not to pause the roadmap for cleanup. It was to improve the foundations while business requirements changed, real features shipped and technical debt still needed attention.

I led the main front-end away from CRA and Bootstrap-era foundations toward Vite, MUI, RTK Query and typed OpenAPI clients.

I replaced fragile request and form patterns with safer defaults in the areas I modernized: generated clients, React Hook Form and Zod.

Iteration got faster because common UI, form and API work moved onto reusable rails: MUI for interface patterns, React Hook Form and Zod for forms and generated RTK Query clients for typed requests, caching and refetching.

I designed and built product-facing surfaces where business process mattered: onboarding, dense operational views and export tooling.

I led changes that made the product feel less like several UI generations stitched together and more like one ABB platform.

Good front-end leadership is product leadership with a compiler attached

ABB Verify is the project that best explains how I want to work: close to the user interface, honest about technical debt and increasingly involved in the product and business context behind the code.

Košice, Slovensko

sebastian@trebunak.dev

Navrhnuté a nakódované v Košiciach. Bez šablóny, bez page buildera.