Lender Price PPE
Re-architecting an enterprise Product & Pricing Engine (PPE) for banks and wholesale lenders, serving major clients like JPMorgan Chase.
The Challenge & Context
Lender Price is a cloud-native SaaS platform that automates pricing, rules, eligibility, and lock workflows for the mortgage industry. Loan secondary market teams rely on it to manage granular margin guidelines.
The core challenge centered on a critical calculation query returning up to 13,000 active rates. The API request took 9 minutes to resolve, generating a massive 240MB raw payload. This volume saturated network bandwidth and caused client-side browsers to freeze during table render and sorting workflows.
Key Metrics
- Response Latency:9m → ~1m (89% speedup)
- Payload Size:240MB → ~3MB (99% cut)
- Bundle Size:-48% peak reduction
- Workflow Responsive:+35% render efficiency
Core Architecture Redesign (STAR)
Solving data payload bottlenecks without breaking user query UX
Standard table pagination was rejected by business requirements: loan officers needed to filter and compare against the entire result set of 13,000 rates simultaneously. Rendering the raw array froze browser threads.
Re-engineer the data retrieval pipeline across the Angular client and Kotlin APIs to shrink payload sizes and improve rendering speeds, while maintaining global filtering capabilities.
I proposed and co-designed a **Server-Side Grouping contract**. Instead of returning raw rate rows, the backend aggregated results by unique mortgage rate groups, shrinking the root array from 13,000 to ~250–300 groups. The detailed rows within each group were lazy-loaded on-demand when clicked.
API latency fell from 9 minutes to 1 minute, and the payload shrank by 99% (from 240MB down to ~3MB). Client-side table rendering became instantaneous, completely eliminating thread freezes.
Technical Optimization Details
O(1) Fractional Indexing
Reordering rate rule priorities used O(N) integer array rewrites, causing database locks. By implementing fractional indexing, we calculate float boundaries between adjacent rows, resolving drag-and-drop operations in a single O(1) database update with zero concurrency write conflicts.
Webpack Bundle Optimization
Identified import bloating via Webpack Bundle Analyzer. Reduced Angular bundle size by 48% by pruning monolithic library imports, adopting tree-shakeable ES module syntax, and setting up route-level lazy loading for auxiliary lending sub-modules.
Change Detection & Memoization
Tuned UI sluggishness by switching dynamic pricing templates from default dirty-checking to `OnPush` change detection. Added explicit `trackBy` keys to loops and eliminated re-renders on immutable object identity checks.
Cross-Stack Debugging
Acting as a cross-stack engineer, diagnosed database and integration bugs directly within Spring Boot and Kotlin API modules. Maintained SonarQube quality gates, enforcing an 80% code coverage threshold on calculation logic.
Live Platform
Note: Lender Price is a secure enterprise mortgage system. The link below navigates to the corporate gateway; access is restricted behind active business credentials.