Skip to content
All projects

Internal portals · Financial markets

Offshore investment portals

Internal portals for BTG Pactual's offshore investment areas, used 24/7 by hundreds of internal users, with zero freezes in the accounting applications that received 9,000+ records per request

Client
BTG Pactual · via Exadel Financial Services
Role
Software Engineer (Front-end Specialist)
Technologies
  • Angular 20
  • Signals
  • TypeScript
  • RxJS
  • NgRx
  • Tailwind CSS
  • Jest
  • Jasmine
  • REST APIs
  • GenAI
  • MCP
Confidential projectScreens are under a non-disclosure agreement (NDA). What is described here is what can be shared.Offshore investmentsAccountingJava and Calypso

Context

Internal portals for BTG Pactual's offshore investment areas, in projects delivered through Exadel Financial Services. Every feature is used daily, 24/7, by hundreds of internal users and processes tens of thousands of records, with data coming from Java services and the Calypso platform.

Challenge

Run 5 concurrent projects per quarter, each from specification to production observability, while legacy accounting applications froze in production when receiving 9,000+ records in a single request and Angular 14 and 16 applications had to move to Angular 20.

Results

production freezes after chunking the requests with 9,000+ records
0
faster accounting applications after chunking
~70%
less time to build front-end applications with AI and internal MCPs
75–80%
faster builds after the migration to Angular 20
30–40%

Key deliverables

  1. 01Led 5 concurrent front-end projects per quarter and delivered 12–15 new ones to date, plus Angular version migrations and performance fixes, owning each end to end: specification, prototyping, integration, deployment and production observability.
  2. 02Built Angular features (standalone components, TypeScript, RxJS and NgRx) used 24/7 by hundreds of internal users, and helped implement the bank's internal standardized styling tool, built on Tailwind CSS.
  3. 03Eliminated production freezes and made the accounting applications that received 9,000+ records in a single request about 70% faster, by implementing chunked (batch) processing of the calls.
  4. 04Migrated legacy applications from Angular 14 and 16 to Angular 20, with 30–40% faster builds, 20–30% smaller bundles and 20–30% better load times, adopting Signals, built-in control flow, @defer and the esbuild builder.
  5. 05Integrated the Angular front-end with Java services and the Calypso platform.
  6. 06Cut front-end application build-out time by 75–80% with generative AI, MCP (Model Context Protocol) servers for internal libraries and automated feature tests (Jest and Jasmine), while keeping the project's architectural standards.

Features and the pains they solve

Every feature was born from a real operational problem.

  1. 01

    Chunked processing

    Pain
    Accounting applications received 9,000+ records in a single request and froze in production.
    Solution
    The calls are now processed in batches (chunks): instead of receiving and processing the whole volume at once, the application works batch by batch without blocking the UI.

    Impact: 0 production freezes and ~70% faster

  2. 02

    Migration to Angular 20

    Pain
    Legacy Angular 14 and 16 applications were several major versions behind Angular 20.
    Solution
    The applications were migrated to Angular 20 with Signals (signal, computed, effect, linkedSignal, toSignal), built-in control flow (@if, @for), on-demand loading with @defer and the esbuild builder.

    Impact: 30–40% faster builds, 20–30% smaller bundles and 20–30% better load times

  3. 03

    Java and Calypso integration

    Pain
    The data on screen comes from Java services and the Calypso platform, and the front-end has to integrate them.
    Solution
    The Angular front-end was integrated with the Java services and Calypso on the screens used by the offshore areas.
  4. 04

    Application creation with AI and MCPs

    Pain
    With 5 concurrent projects per quarter, each new front-end application had to follow the architectural standards in little time.
    Solution
    Generative AI connected to MCP (Model Context Protocol) servers for the internal libraries now generates front-end applications that already follow the project's architectural standards.

    Impact: 75–80% less build-out time

  5. 05

    Automated feature tests

    Pain
    Features used 24/7 by hundreds of internal users must reach production tested.
    Solution
    Feature tests were automated with Jest and Jasmine as part of the AI-assisted creation flow.
  6. 06

    Specification to production with observability

    Pain
    5 concurrent projects per quarter need a technical owner from start to finish, not just during coding.
    Solution
    Each project was owned end to end: specification, prototyping, integration, deployment and production observability, to track real behavior after delivery.

    Impact: 12–15 new projects delivered to date

  7. 07

    24/7 high-volume operation

    Pain
    Hundreds of internal users rely on the portals every day, 24/7, and each feature must process tens of thousands of records without freezing.
    Solution
    The features were built in Angular (standalone components, TypeScript, RxJS and NgRx) for daily 24/7 use by hundreds of internal users, with tens of thousands of records processed.

    Impact: Used 24/7 by hundreds of internal users