Skip to content

Work

Three problems worth writing down.

Client names and revenue figures are deliberately left out. What is described here is the shape of the problem and the shape of the fix.

80+
accounts orchestrated in parallel
3.000+
posts analysed for what actually travels
150
creator feeds tracked nightly
24/7
pipelines running unattended
01

A content machine that does not stall

Problem

Production was spread across a spreadsheet, a drive folder and a group chat. Nobody could say what had actually been published this week without asking three people.

Approach

One operational table as the single source of truth, a status gate that content has to pass before it can be scheduled, and a scheduled job that counts what shipped against what was planned and posts the gap into the team channel.

Result

The gap between planned and published became visible the same day instead of at the end of the month, and the daily check stopped being a person.

  • Coda
  • Scheduled jobs
  • Slack alerts
02

Finding what travels, on purpose

Problem

Copying whatever looked viral in the feed meant copying whatever big accounts posted. Reach was being confused with performance.

Approach

A nightly job that pulls recent posts from a tracked set of accounts and ranks them by engagement normalised for account size, weighted by how fast they got there. Outliers go into an analysis queue that extracts the mechanic, not the surface.

Result

A steady backlog of validated formats with the reason attached, instead of a screenshot folder nobody opens.

  • Python
  • Scoring model
  • LLM analysis
03

Rebuilding attribution after it broke

Problem

Spend lived in one system, revenue in another, and the identifiers connecting them disappeared whenever an ad account was shut down.

Approach

A naming convention that puts the immutable ad identifier into the tracking link itself, a mapping file written at launch time rather than reconstructed later, and a cohort view that separates when a customer was acquired from when they paid.

Result

Attribution survives an account ban, and the question "did this channel pay for itself" has an answer that holds up when someone checks it.

  • UTM convention
  • Cohorts
  • Bank-statement reconciliation