Selected Work

Production case studies focused on the problem, decision, tradeoffs, and measured outcome. Sanitized diagrams and benchmarks provide evidence without exposing internal code or customer data.

Featured

Platform & Architecture

Shared Reporting Platform

Architecture owner and primary implementer

Replaced fragmented report implementations with a shared architecture used across 14 financial-product experiences on web and mobile.

Problem

Reports had grown around separate web and mobile implementations, feature-specific refresh behavior, and two competing sources of state. A self-reinforcing React-to-Redux reconciliation loop could repeatedly regenerate reports, while each new product surface had to rebuild core behavior such as filtering, saved state, exports, printing, and drilldowns.

Decision & implementation

Designed one report lifecycle with typed cross-platform contracts, Redux-owned state, configuration-driven consumers, saved-report behavior, synchronized charts and virtualized tables, and explicit regeneration across eight financial-data domains. The migration was staged so existing reports could move onto the platform without a single high-risk cutover.

Tradeoffs

A staged migration temporarily preserved adapters and parallel paths, but it kept rollback practical and let each report prove parity before cutover. The platform standardized lifecycle and state ownership without forcing every report into the same presentation or financial model.

Outcome

In September 2026, 44,171 report users generated 191,078 opens across 14 product experiences. The reconciliation failure fell from 1,874 occurrences across 176 users in April to four occurrences across two users in September. In matched four-month windows around the transition, new Reports bugs declined 48% and the open backlog declined 41%; those broader quality trends reflect the platform work alongside ongoing stabilization by the team.

Evidence

Sanitized system shape

The production implementation is private; this diagram shows the architectural boundary and ownership model without internal code or customer data.

  1. 01

    Financial domains

    Eight typed data domains feed one report contract.

  2. 02

    Report lifecycle

    Redux owns state, regeneration, and saved-report behavior.

  3. 03

    Configured consumers

    Charts, virtualized tables, exports, printing, and drilldowns.

  4. 04

    Product surfaces

    Fourteen web and mobile report experiences.

Evidence

Operating evidence

Observed product usage and reliability after the platform transition; usage figures are for September 2026.

Report users
44,171
September 2026
Report opens
191,078
September 2026
Product experiences
14
Web and mobile
Loop failures
1,874 → 4
April to September
TypeScriptReactReact NativeReduxMaterial UI
Internal product — not publicly available.
Platform & Architecture

Apache ECharts Migration

Technical direction, evaluation, architecture, and implementation

Evaluated seven libraries and replaced amCharts across more than 35 production visualizations with a typed, configuration-driven charting system.

Problem

The legacy chart layer struggled with production-sized datasets and forced the product to carry two visualization architectures during migration. In one 12-month daily report, drawing roughly 365 bars was the primary cause of an extended page freeze; grid autosizing and quadratic row de-duplication added to the cost. The product needed a faster library and a migration plan that would not destabilize live reports.

Decision & implementation

Ported representative report charts to seven candidate libraries, then measured mount, paint, update, and unmount behavior under production-shaped load. The resulting proposal covered technical fit, licensing, accessibility, rollout, validation, and rollback. I then built shared typed configuration and interaction patterns so individual charts could migrate behind flags while preserving product behavior.

Tradeoffs

Canvas rendering solved the dominant high-density bottleneck but required deliberate work around semantics, interaction parity, and test coverage that SVG had exposed through the DOM. Feature flags and dual implementations added short-term complexity in exchange for measurable, reversible production rollout.

Outcome

Completed the conversion of more than 35 visualizations and removed amCharts, 14 rollout flags, 24 dual implementations, and 2,274 net lines of transitional architecture. In an equivalent production flow, first-open time improved from 1,601 to 715 milliseconds and blocking chart setup fell from about 880 to 12.5 milliseconds. Reports of freezes tied to high-density amCharts rendering stopped after rollout.

Evidence

Production-flow timing

Equivalent report flow measured under load. Lower is better; bars are scaled to the legacy implementation for each row.

First report open1,601 → 715 ms
Blocking chart setup880 → 12.5 ms

Evidence

Migration sequence

The migration separated the library decision from product rollout so performance gains did not require a one-shot rewrite.

  1. 01

    Evaluate

    Seven libraries, production-shaped datasets, and interaction parity.

  2. 02

    Standardize

    Typed configuration, shared events, and accessibility checks.

  3. 03

    Roll out

    Chart-by-chart flags, validation, and a defined rollback path.

  4. 04

    Delete

    Removed the legacy library and all transitional architecture.

TypeScriptReactApache EChartsCanvasSVG
Internal product — not publicly available.
Production Feature

Spending Plan Performance

Performance investigation, redesign, implementation, and validation

Redesigned a core state flow to reduce a high-frequency planning interaction from approximately two seconds to less than 50 milliseconds.

Problem

A common Spending Plan interaction took about two seconds before users could see the effect on their monthly plan. The delay sat in a high-frequency financial workflow where repeated waiting made the product feel unresponsive and increased the risk of masking state problems behind loading behavior.

Decision & implementation

Profiled the interaction and redesigned the state flow so the client could derive the result from financial data it already owned instead of waiting for the slower path. Added regression coverage for the calculations and coordinated a cross-team test plan across current, future, and prior-month behavior.

Tradeoffs

The faster path was limited to financial state the client already owned; it did not replace server authority where fresh data was required. That boundary kept the optimization deterministic and made the new calculation practical to cover with regression tests.

Outcome

Reduced the interaction to less than 50 milliseconds without hiding the delay behind a spinner. The change preserved the financial rules and established test coverage around a previously fragile workflow.

TypeScriptReactReduxReselectJest
Internal product — not publicly available.

More

Production Feature

Quicken Business Foundations & Invoicing

Product engineer and frontend technical owner

Built shared business-domain foundations and customer-facing invoicing workflows across web and mobile.

Problem

Freelancers and small-business owners needed financial workflows organized around businesses, customers, projects, invoices, taxes, and payments rather than isolated transactions. Those concepts also had to work consistently across reporting, planning, and web and mobile clients.

Decision & implementation

Established shared customer, project, invoice-item, tax, and business-preference models, then connected them to transaction assignment, planned-spending calculations, generated reports, and multi-business workflows. Implemented invoice and estimate creation, editing, cloning, validation, credits, split payments, receipts, and production stabilization.

Tradeoffs

Shared domain models created consistency across products but increased the coordination cost of schema and workflow changes. The foundations were introduced incrementally so invoicing could ship while reporting and planning integrations matured, and funnel movement is presented as observed product performance rather than single-change attribution.

Outcome

Created the reusable foundations for Quicken Business while continuing to improve the customer funnel. During the invoicing work, 30-day invoice start-to-save completion increased from 70.5% in Q1 2025 to 82.4% in Q4 2025 while monthly starter volume grew 2.6 times. The metric describes the product's observed improvement during that period, not a claim that one engineering change caused it alone.

TypeScriptReactReact NativeReduxMaterial UI
Internal product — not publicly available.
Developer Enablement

AI-Assisted Engineering Workflows

Workflow designer and implementer

Connected issue context, product analytics, designs, isolated worktrees, and validation into repeatable AI-assisted development workflows.

Problem

Coding agents are most useful when they can reach the same evidence engineers use and when parallel work does not collide. Manually copying context among Jira, analytics, design files, source code, and worktrees made agent-assisted development slower and easier to misdirect.

Decision & implementation

Built a reusable Jira-to-worktree workflow that carries issue context into implementation, creates isolated Git worktrees, and standardizes final output. Added development-server scripts that find open ports automatically so multiple worktrees can run at the same time. Used MCP connections to bring Jira requirements, Mixpanel evidence, and Figma designs into planning, debugging, and validation.

Tradeoffs

The workflow optimizes context gathering and isolation, not unsupervised delivery. Agents produce reviewable proposals and code inside bounded worktrees; engineers still validate product evidence, implementation details, tests, and final changes before merge.

Outcome

Several engineers now use the workflow regularly, and multiple application instances can run concurrently without manual port coordination. I also applied the same approach to product work, including reporting and charting capabilities for Quicken Assist, while keeping code, product data, and human review as the sources of truth.

Claude CodeCodexMCPJiraMixpanelFigmaGit
Internal tooling — not publicly available.
Production Feature

Cross-Platform Planning & Achievements

Senior product engineer and cross-platform technical lead

Extended financial planning across future months and coordinated shared product behavior across React and React Native clients.

Problem

Planning behavior needed to remain consistent across current and future months, prior-month closeout, web, and mobile. A separate achievements initiative also needed immediate events and shared behavior without creating divergent implementations on each platform.

Decision & implementation

Designed projections across income, recurring bills, and discretionary spending with average-based and custom forecasts. For achievements, coordinated web and mobile delivery using WebSockets and shared Bit packages, then expanded shared investment and account-data modules used by both clients.

Tradeoffs

Shared packages reduced behavioral drift but made compatibility and release sequencing explicit cross-platform concerns. The work favored common financial rules and event contracts while leaving platform-specific interaction details in each client.

Outcome

Delivered consistent planning and gamification behavior across platforms while increasing the amount of logic and lifecycle behavior shared between the web and React Native applications.

TypeScriptReactReact NativeReduxWebSocketsBit
Internal product — not publicly available.