Back to case studies

Backend Engineer

Designing Multi-Currency Analytics for Global Merchant Dashboards

Built the exchange-rate and conversion architecture behind comparable cross-currency merchant reporting at high transaction volume.

Details are intentionally generalized to respect confidentiality.

AnalyticsCurrency ConversionData PipelinesClickHouseQuery Optimization
Timeline
2025
Domain
Analytics pipelines, currency normalization, dashboard APIs
Impact
Designed analytics behavior for an Express Checkout product processing roughly 20M transactions per day.

Architecture

System boundary map

The diagram preserves the major responsibilities and handoffs while omitting proprietary implementation details.

Multi-Currency Merchant Analytics

Designed scheduled exchange-rate ingestion, query-time conversion wrappers, schema extensions, and database and memory optimizations for gigabyte-scale datasets.

1Exchange Rates
2Transaction Data
3Normalization
4Analytics Store
5Conversion API
6Dashboard

Context

Global merchants need analytics that remain meaningful across countries, currencies, and reporting windows.

The surrounding Express Checkout product processes roughly 20M transactions per day, so dashboard correctness and query cost both matter.

Problem

Raw amounts in different currencies made aggregate metrics difficult to compare and forced manual reporting work.

The system needed consistent conversion behavior without losing original transaction context or locking dashboards to one presentation currency.

Constraints

Exchange-rate ingestion had to be scheduled and resilient.

Queries needed to remain responsive over gigabyte-scale analytical datasets.

Schema changes had to preserve historical correctness and original transaction values.

Conversion APIs needed consistent semantics across reporting surfaces.

My Role

Designed and implemented the backend architecture for exchange-rate ingestion and query-time currency conversion.

Optimized database access, in-memory processing, schema shape, and dashboard-facing contracts around real analytical workloads.

Technical Design

Introduced scheduled rate ingestion with explicit source and effective-time semantics.

Designed a conversion wrapper for merchant-selected display currencies while retaining original transaction context.

Extended analytical schemas and optimized queries around dashboard access patterns rather than one-off reports.

Reduced database and memory pressure for gigabyte-scale processing paths.

Tradeoffs

Query-time conversion preserved dashboard flexibility but required consistent rate selection and caching behavior.

Additional stored context increased schema responsibility while keeping totals explainable and historically traceable.

Impact

Created the multi-currency analytics architecture for a product operating at roughly 20M transactions per day.

Reduced manual reporting overhead and established a scalable basis for cross-currency dashboard comparisons.

What I learned

Analytics correctness is a trust feature; users need to understand why a total has a particular value.

Currency systems require explicit time, source, precision, and normalization semantics.