Case study / enterprise AdTech
From ~2 minutes to ~10 seconds.
Improving a slow, complex GraphQL reporting query while helping build reliable data pipelines across more than 20 advertising networks.
The problem
Reporting that takes minutes breaks an otherwise useful product.
A complex GraphQL report had accumulated N+1 query patterns and expensive data access paths. At the same time, reporting data arrived from a growing collection of external advertising APIs, each with its own format and operational quirks.
What I changed
- Investigated and removed critical N+1 access patterns.
- Refactored legacy data tasks into a reusable importer framework.
- Worked across reporting data sourced from Google Ads, TikTok, GAM, Mintegral, Liftoff, and more.
Impact
The most complex report fell from approximately two minutes to approximately ten seconds—making the reporting workflow substantially more usable while giving future integrations a clearer foundation.
Engineering context
Performance work connected to product infrastructure.
PythonGraphQL / StrawberryBigQueryGCPGKE
The work sat at the intersection of API design, data modelling, background ingestion, and production infrastructure—so the solution needed to improve speed without making integrations more brittle.
Takeaway
Measure the expensive path, then make the successful pattern reusable.
The durable result was not only a faster report. It was an importer approach that made additional data sources less costly to add and maintain.
Talk about performance work →