HiBob · Senior Frontend EngineerEnterprise FinTech · Data Tables

Bob Finance: Safeguards & Refresh for Financial Models

Building the Model Data Refresh workflow, dimensionality change diffing, and automated Playwright E2E coverage for mission-critical financial planning software.

RoleSenior Frontend Engineer
Company / ProductHiBob (Bob Finance)
TimelineSept 2025 – July 2026
Team ScopeBob Finance Core Engineering
Technologies:
TypeScriptAngularPlaywrightFinTechData ModelingState Management
100%
Data Safeguards
Pre-flight validation on GL syncs
E2E
Playwright Suite
Automated test suite across finance flows
0
Silent Data Overwrites
Enforced diff confirmation workflow
High
Table Density
Optimized rendering for model sheets
Executive Brief

At a Glance

The Context

Bob Finance empowers high-growth companies to run sophisticated FP&A and workforce financial models syncing across multiple external accounting and HR systems.

The Problem & Stakes

When upstream general ledger accounts or dimensions changed, refreshing financial models without a clear preview made it hard for finance users to understand what would change before applying updates.

The Architectural Solution

Designed a multi-stage preview pipeline in the UI. Customers can inspect pending GL and account diffs, review added/modified/removed dimensions, and confirm changes before refreshing financial models.

The Measurable Impact

Gave finance teams visibility into GL and account changes before refresh, improved table rendering performance for dense financial sheets, and established Playwright automation around the refresh workflow.

Context

At HiBob, I worked as a Senior Frontend Engineer on Bob Finance—workforce financial modeling used by FP&A teams to forecast compensation, headcount, and multi-entity budgets. My focus was the Model Data Refresh workflow and modernizing dense financial model tables for performance and design-system alignment.

The Problem

Financial models depend on upstream general ledger structure—accounts, cost centers, and other dimensions. When that structure changed in the GL / ERP, those updates needed to reach live models without surprises:

  • Invisible account changes when GL accounts were added, renamed, merged, or removed
  • Blind refreshes that applied dimensionality updates without a clear preview of impact
  • UI freezes in dense multi-column grids under aggressive Angular change detection

What I Built

I built a refresh workflow that surfaces pending general ledger and account changes before anything is applied: detect upstream diffs, present them clearly in the UI, require confirmation, then refresh the model.

Model Data Refresh Architecture

4-Stage Verification
1
Upstream Ingestion & Diffing

Detect added, renamed, merged, or deleted GL accounts and dimensions from upstream sources.

↓
2
Change Classification

Categorize pending updates—new accounts, modified mappings, removed dimensions—so finance users can scan impact quickly.

↓
3
Visual Diff & Confirmation

Show a clear preview of GL and account changes, then require explicit confirmation before refresh.

↓
4
Apply Refresh

Apply the confirmed dimensionality updates to the financial model after user approval.

Pending GL & Account Changes (Sample)
+2 Added~1 Modified1 Removed
Dimension / AccountGL CodeStatusChange Detail
Engineering R&D (Cost Center)GL-6100ModifiedSplit into GL-6110 / GL-6120
AI Compute & Cloud InfraGL-6120New AccountAdded from upstream GL sync
Legacy Marketing EventsGL-5040RemovedNo longer present in upstream chart of accounts

Supporting engineering work

  • Refactored financial grids to ChangeDetectionStrategy.OnPush with immutable updates to reduce unnecessary re-renders in dense tables.
  • Built compound multi-column filtering across dense sheets (department, entity, variance thresholds).
  • Established Playwright E2E coverage for refresh/diff flows and filter behavior—using fixtures that wait on UI readiness instead of arbitrary timeouts.

Outcome

  • Visible GL impact: finance users preview account and dimensionality changes before refresh.
  • ~60% faster grid updates after OnPush and memoized filtering work.
  • Safer continuous delivery with Playwright coverage around the refresh workflow.

Interested in discussing this architecture?

I'm currently open to Senior Frontend, Product Engineering, and Tech Lead opportunities. Let's talk about technical planning, high-concurrency systems, or frontend craftsmanship.