Skip to main content

Exhibit F · Campaign systems

Campaign infrastructure: approval pipeline, donor CRM, social ETL, multilingual sites

An auditable post-approval pipeline, a donor CRM on Cloud SQL and BigQuery, a social ETL for eight candidates, and a six-language campaign site.

Client
a campaign consulting firm
Role
Lead engineer
Dates
January 2026 to present
  • Cloud SQL Postgres
  • BigQuery
  • Pub/Sub
  • Cloud Storage
  • Cloud Scheduler
  • Cloud Functions (Python 3.12)
  • Looker Studio
  • Next.js 15
  • next-intl
  • Firestore
roles, 1 audit trail
3
candidates
8
locales
6
token rotation
60-day
01Approval Pipeline

Approval pipeline

Media Creator drafts, Admin reviews, Candidate reviews, approved or killed; three roles with scoped permissions; one auditable trail replacing screenshots and text messages.

Media Creator drafts, Admin reviews, Candidate reviews; a post ends approved or killed. Every hand-off writes to one auditable trail.
02Donor CRM

Donor CRM

Cloud SQL Postgres for operations, BigQuery for reporting, Pub/Sub for normalization, Cloud Storage for raw webhook archives, live donation intake from payment-processor webhooks, admin-generated short-lived candidate call-time access.

Hover or focus a node to trace its lineage.

  • Payment-processor webhooks feeds Pub/Sub
  • Payment-processor webhooks feeds Cloud Storage
  • Pub/Sub feeds Cloud SQL Postgres
  • Pub/Sub feeds BigQuery
  • Cloud SQL Postgres feeds Call-time access
Payment-processor webhooks feed Pub/Sub and Cloud Storage. Pub/Sub feeds Cloud SQL Postgres and BigQuery. Cloud SQL Postgres feeds admin-generated call-time access.
03Social ETL

Social ETL

Cloud Scheduler to a Python 3.12 Cloud Function pulling ad, page, and account metrics from two social platforms into BigQuery with MERGE upserts, per-candidate Looker Studio dashboards, eight candidates, token rotation on a 60-day cycle.

Hover or focus a node to trace its lineage.

  • Cloud Scheduler feeds Cloud Function
  • 2 social platforms feeds Cloud Function
  • Cloud Function feeds BigQuery
  • BigQuery feeds Looker Studio

Looker Studio · per candidate

  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
Cloud Scheduler triggers a Python 3.12 Cloud Function, which pulls metrics from two social platforms into BigQuery with MERGE upserts; Looker Studio reads BigQuery for eight per-candidate dashboards. Tokens rotate every 60 days.
04Multilingual Site

Multilingual campaign site

Next.js 15, next-intl, six locales (en, es, ko, vi, zh, hi), Firestore content, catalog-parity tests that fail the build on key drift, a binding language policy for every public string.

  • en (English)
  • es (Spanish)
  • ko (Korean)
  • vi (Vietnamese)
  • zh (Chinese)
  • hi (Hindi)
Buildrunning parity testsfails on key drift
Six locale catalogs, en, es, ko, vi, zh, hi. Catalog-parity tests run in the build and fail it when a key drifts.