Selected workPCPatricio CalderonLinkedIn
P-05 / Publisher analytics & billingPrivate engagement

Selected case study

Insights

A full-stack platform that unifies advertising analytics, audience quality, consent signals, publisher operations, and invoicing in one interface.

  • Next.js
  • TypeScript
  • PostgreSQL
  • InfluxDB
  • Drizzle
  • Recharts
4
Analysis dimensions
2
Display + video
E2E
Analytics to invoices
01

Challenge

Combine high-volume time-series data, ad-server dimensions, display and video monetization, publisher configuration, and financial records without producing misleading aggregations or changing historical billing results.

02

Responsibility

Full-stack architecture and implementation across the dashboard, APIs, shared metric definitions, data access, authorization, revenue calculations, administrative workflows, and invoice generation.

03

Solution

Built a feature-oriented Next.js platform with centralized metric configuration, typed PostgreSQL access through Drizzle, InfluxDB time-series queries, shared analytics response formats, effective-dated revenue shares, and server-enforced role and domain authorization.

04

Outcome

A unified operational foundation for publisher reporting and billing, with responsive multi-dimensional analysis, reproducible financial calculations, approval workflows, and auditable PDF invoices.

Engineering decisionsD-01
01

Define metrics once

A centralized configuration layer owns labels, aggregation strategies, formats, supported dimensions, chart metadata, and derived dependencies so the API and interface share the same business rules.

02

Aggregate according to meaning

Additive, average-based, weighted, and derived metrics follow different calculation paths, with chart intervals adapting from hourly to daily as the selected period changes.

03

Preserve financial history

Effective-dated revenue-share periods keep historical dashboards and invoices reproducible even when publisher agreements change later.

Have a difficult product or system to build?

Message me on LinkedIn