Custom Credit Emulator: QA Testing 2-3x Faster in 3 Months
80%
Faster transaction search90%
Lower data update latency2-3x
More testing throughput
Client Overview

Business Problem
Situation Before
Core Pain
Risks
- Slow QA cycles delayed new credit provider integrations, slowing the time-to-market for new lending products.
- A lack of real-time data in QA resulted in inaccurate test results due to outdated data.
- Manual backend testing was difficult for non-technical QA team members and increased the risk of configuration errors.
Constraints
- Complex business logic: hierarchical configuration inheritance and numerous transaction processing scenarios
- High performance requirements: large paginated tables, real-time updates and complex forms all in one interface
- Iterative delivery: QA needed to start using the system before all features were complete
Project Goals
- Give QA engineers and developers a unified UI for managing test credit service scenarios, eliminating direct backend and database dependency
- Accelerate integration testing cycles to speed up credit provider onboarding
- Ensure consistent reproduction of complex edge cases through a purpose-built emulation environment
- Design a modular SPA using Feature-Sliced Design architecture (React/TS/Vite)
- Establish clear separation between server state (TanStack Query) and UI state (Zustand)
- Deliver real-time interface updates via WebSocket and SSE
- Build a dual-ID search system (external ID and MongoDB ObjectId)
- Implement hierarchical configuration management with parameter inheritance across four levels
- Implement hierarchical configuration management with parameter inheritance across four levels
- Transaction search became noticeably faster for QA workflows
- Real-time data updates appear within seconds after system events
- Hierarchical configurations can be managed in the UI without backend help
- The interface stays responsive with large tables and live updates at the same time
- New modules can be added without rewriting the architecture
Solution
The frontend is a modular admin SPA built with Feature-Sliced Design. The codebase is split into independent functional slices, keeping it maintainable by a single developer despite constant API changes. TanStack Query manages server state and backend synchronization, while Zustand handles UI state, including modals, filters, and local logic. WebSocket and SSE deliver real-time events, with TanStack Query cache invalidation updating the UI without page reloads. Server-side pagination, React.memo, and useMemo keep tables and forms responsive under heavy data loads.
There were 5 modules shipped. Module 1 gave QA full CRUD access to test apps and transactions, with server-level pagination and filtering through TanStack Table. The forms are validated with React Hook Form and Zod. Module 2 introduced a four-layered configuration hierarchy from Global to Transaction with inheritance and override capabilities. Module 3 provided real-time event streaming over WebSocket and SSE along with an Activity Log with deep-linking to relevant entities. Module 4 provided dual-ID search with external ID and MongoDB ObjectId. Module 5 covered CSV export for QA.
GitHub Actions runs CI/CD and Vite handles the build, so deployment stays the same for every merge. The source code is managed at GitHub, and a pull request process is maintained so that every code change must pass through code review before getting merged. ESLint and CI are checked on every merge, which keeps up the quality of the code as the codebase grows, even with only one developer on the frontend. MSW mocks the APIs for tests, so the frontend is testable without a live backend. The whole app runs on AWS.
Platform access is based on OAuth single sign-on. There is a single Axios layer where all the calls to the API are performed, reducing the risk of receiving malformed or unauthorized requests. The role-based access control is implemented by means of conditional rendering and route protection, making sure that each role has access only to its relevant part of the interface. TypeScript strict typing reduces the surface area for runtime security issues across the codebase.
Key Steps
In October 2025 the team set up the project, designed the architecture, scaffolded the Feature-Sliced Design structure and aligned the API contract with the backend team. This groundwork let modules land later without rework.
Through November 2025 the team built application and transaction management and the configuration hierarchy and added a typed Axios layer so backend contract changes stayed contained in one central place.
Across December 2025 the team delivered the WebSocket and SSE real-time layer, the Activity Log, dual-ID search and performance tuning, which together removed manual refreshes and slow crosssystem lookups.
From January 2026 the team added CSV export and reporting, ran final QA and set up CI/CD for delivery. The MVP shipped inside the planned three-month scope, and work then continued with new emulation scenarios.

Results & Impact
Project Snapshot
See Other Works
Secure LLM Gateway for a 63,000-Person Enterprise
Secure enterprise AI access with centralized governance, lower latency, content controls, and full token usage visibility

Bond Settlement Cut from 2 Days to 30 Minutes
End-to-end capital markets platform automating bond issuance, trading, settlement, and investor servicing

API Response Time Down 80% for a Bloomberg Rival
Financial analytics platform delivering real-time market data, news processing, and scalable backend services for fintech

