Overview
This platform ingests competitor pricing and sales data for millions of products via internal web crawlers, stores it in PostgreSQL, and powers analytical workflows for major retailers. My focus was correctness of business-critical matching and index calculation logic, configurable tenant experiences, and high-throughput Excel export pipelines across three repositories: a React frontend, an Express.js main backend, and a dedicated multithreaded export service.
Architecture
flowchart TB
User(["Retail analyst"])
subgraph frontendRepo ["Frontend repo"]
UI["React + React Query + MUI"]
end
subgraph backendRepo ["Main backend repo"]
direction TB
API["Express.js TypeScript API"]
Logic["Matching + sales index logic"]
Filters["Tenant / user filters and layouts"]
end
subgraph dataLayer ["Data"]
direction LR
Crawlers["Internal web crawlers"]
DB[(PostgreSQL)]
end
subgraph exportRepo ["Export service repo"]
direction TB
ExportAPI["Export service"]
Workers["Worker threads"]
Chunks["Chunked fetch + Excel/CSV generate"]
Merge["Merge temporary files"]
end
User --> UI
UI -->|"API requests"| API
API --> Logic
API --> Filters
API --> DB
Crawlers --> DB
UI -->|"Export request"| API
API -->|"Delegates export job"| ExportAPI
ExportAPI --> Workers
Workers --> Chunks
Chunks --> DB
Chunks --> Merge
Merge -->|"Excel / CSV file"| UISummary
A multi-tenant retail analytics platform that calculates sales indices for large retailers across Germany, Austria, Bulgaria and Italy, processing competitor pricing and sales data for millions of products.
What I worked on
- Fixed and improved business-critical logic for matching client articles with competitor products and calculating weekly sales indices.
- Designed and implemented configurable filtering systems for tenant- and user-specific page layouts, data views, and column configurations.
- Independently developed a high-performance export service generating Excel files from large PostgreSQL result sets.
- Wrote test suites covering critical business logic.
- Optimized export performance with worker threads: parallel data fetching, chunked file generation, and merge into a final Excel output.
- Implemented dynamic export configurations so users can export the currently viewed dataset or custom column selections.
- Delivered multiple tenant-specific custom export formats for client reporting requirements.
Results
- Reliable weekly sales index calculations across multiple European markets
- Tenant- and user-specific layouts, filters, and table configurations
- Excel exports from hundreds of thousands of database records
- Parallelized export pipeline using Node.js worker threads
- Custom export formats tailored to client analytics workflows