Who works on what, day by day

Mon 3 Aug → Fri 28 Aug 2026 · four weeks · 20 working days each · 16 planned, 4 held back

The projects and their order are the plan. The day-level placement is indicative, not a commitment — move things around freely as long as the sequencing holds and the milestone dates still make sense. Every Friday is deliberately unassigned: things move, errors appear, and a timeline owned entirely by named projects is a timeline that breaks on contact.

Victoria · 16d
  • Backoffice ramp — 1.5
  • Ads Manager · Explorer client — 6.5
  • Ads Manager · Inspector panel — 1.5
  • E2E Automation · infrastructure — 3
  • Web Attribution · Meta relay — 1.5
  • Ad Monetization · live-test fixes — 2
The whole operator-facing surface, plus the CI that protects the app.
Dmytro · 16d
  • Ads Manager M1 · data layer — 4
  • Ads Manager · Explorer query layer — 3.5
  • Connector rollout to production — 1.5
  • Ads Manager M3 · write path — 3
  • Ad Monetization · AppLovin ops — 2
  • Ad Monetization · GrowthBook — 2
Every number the Ads Manager shows, and every service AppLovin touches.
Stefan · 16d
  • Ramp — 1
  • Promo Machine · the open batch — 12.75
  • Web Payments · checkout backend — 2.25
Promo Machine end to end, then into the payments backend.

The work, against 48 planned days

ProjectDaysWhenOwnerWhat it is
Ads Manager M1 — the data layer4 3 – 6 Augweek 1Dmytro The ClickHouse applier script, then the ads_unified slices: entity views, daily performance, and the three revenue lenses defined once. No screens — it is what makes everything else buildable.
Ads Manager · Explorer — query layer3.5 10 – 13 Augweek 2Dmytro The typed functions behind the table: rows, children, server totals, the count-only mode, the filter SQL compiler, and the country segment view. Everything that has to know grain rules and ratio-of-sums.
Ads Manager · Explorer — the client6.5 10 – 20 Augweeks 2–3Victoria The routes and the screen: tree and flat views, column picker, totals row, the condition-tree filter bar and panel, and the timeline. The filters are the hard part — per-condition timeframes, one level of OR nesting, live match count.
Ads Manager · Inspector1.5 20 Augweek 3Victoria The side panel that answers "what is this thing?" without losing your place in the table.
Connector rollout to production1.5 17 – 18 Augweek 3Dmytro The only ticket in the window that changes production. Swaps the Meta connector image and re-syncs a table Metabase also reads. Reversible, documented rollback — needs a second person on the call.needs a second pair of hands
Ads Manager M3 — write path3 26 – 27 Augweek 4Dmytro The generic architecture and the action ledger — one API and one interface serving Meta, Google, Snapchat and TikTok, multi-account. The per-provider integrations follow in September; this buys the part that is expensive to get wrong later.
Promo Machine — the open batch12.75 4 – 26 Augweeks 1–4Stefan Eleven tickets: multi-clip promos, per-locale dubbing, the ad-name panel, pulling source video from Mux as a static rendition, subtitles from the catalog, optional closure frames, a free-fill concept vocabulary, overlay anchors, and a Kafka upgrade.
Web Payments — checkout backend2.25 27 – 28 Augweek 4Stefan The first slice of the checkout endpoints. The refund-handling ticket stays blocked until there is a real payload to work from.
E2E Automation — infrastructure3 26 – 28 Augweek 4Victoria Maestro pinned and scaffolded, a smoke test green per platform, web CI on GitHub Actions, and the test-data foundation every flow suite depends on. The suites themselves are September.
Web Attribution — Meta relay1.5 5 – 6 Augweek 1Victoria Browser-side events relayed to Meta's conversions API, so the web funnel reports like the app funnel does.
Ad Monetization — AppLovin ops2 19 – 20 Augweek 3Dmytro The server-to-server callback signing and the rolling cap service. Gated on the AppLovin account approval, which is a calendar item, not an effort item.waits on AppLovin approval
Ad Monetization — GrowthBook2 24 – 25 Augweek 4Dmytro Experiment arms on the rewarded-ad limits, so the cap can be tuned on evidence rather than on a guess.
Ad Monetization — live-test fixes2 24 – 25 Augweek 4Victoria The rewarded-to-coins loop is roughly 80% built this week. What is left is what live testing finds once the account is approved — not new construction.waits on AppLovin approval
Ramp — Stefan, and the backoffice2.5 3 – 4 Augweek 1Stefan Victoria Stefan on repos, environments and a first merged PR. Victoria into the backoffice for the first time — setting it up, running it, and getting oriented before building in it.
Total planned483 – 28 Aug3 people × 16 daysPlus 12 buffer days — every Friday, unassigned.

Week 1

Mon 3 – Fri 7 AugustStefan's first week · M1 goes down
Victoriafrontend · web · app CI Dmytrobackend · Ads Manager Stefanbackend · Promo Machine
Mon3 Aug Ads Manager · ramp
Backoffice, first time in 1dSet it up, run it, click through every section. Building in a codebase you have never opened costs more than a day of orientation saves.
Ads Manager · M1 Foundation
The ClickHouse applier script ½dEvery SQL ticket in the project uses it, and its history table needs about a day of accrual before anything reads it. Day one, not later.
Capability registry + freshness views ½dOne point, and the highest-leverage ticket in the window — it creates the database everything else sits on.
Onboarding
Repos, environments, first PR 1dAlso: file the AppLovin account approval this morning. It gates two tickets three weeks out, and the waiting is the cost.
Tue4 Aug Ads Manager · M2
Section scaffold — nav, routes, flags 1dNothing blocks it and it touches no data. The natural second day in an unfamiliar codebase.
Ads Manager · M1 Foundation
Entity views — campaigns, ad sets, ads 1dThe canonical shape every screen reads. One model, four providers.
Promo Machine
Overlay anchors 1dSmall, self-contained, touches the render pipeline. A good first real ticket.
Wed5 Aug Web Attribution
Web event relay to Meta 1dBrowser-side events into the conversions API. Independent of everything else in her lane, so it fits before the Explorer data exists.
Ads Manager · M1 Foundation
Daily performance + the three lenses 1dThe hardest SQL in the milestone — a three-way outer join across platform, internal and AppsFlyer revenue, with a name-based fallback key on about one row in seven.
Promo Machine
Kafka client upgrade 1dNot the trivial version bump it looks like, and less trivial still for someone in their first week.
Thu6 Aug Web Attribution
Web event relay — validate live ½dEvents firing is not events arriving. Check Meta's events manager, not the browser console.
Ads Manager · M2Explorer — column registry ½dBuildable before the data exists; it is a list of metrics and their formatters.
Ads Manager · M1 Foundation
The data contract document 1dFrom here on it outranks every plan on column names, types and units. Every M2 screen is written against it.
Promo Machine
Missing subtitle kills the whole batch ¼dOne missing source subtitle currently fails every variant beside it.
Settle the Mux source-video question ¾dTwo routes exist and only one gets built. Answer it now, because the answer decides a later ticket.decision, then one route only
Fri7 Aug Unassigned — review, fixes, whatever week 1 turned up Unassigned — M1 is done or it is not, and this is where it finishes Unassigned — first-week friction always costs more than planned

Week 2

Mon 10 – Fri 14 AugustThe Explorer starts moving
Victoriafrontend · web · app CI Dmytrobackend · Ads Manager Stefanbackend · Promo Machine
Mon10 Aug Ads Manager · M2 Explorer
Routes + the table shell 1dTree view, flat views, the view switcher. The API routes are hers because an endpoint that matches the UI changes every time the UI does.
Ads Manager · M2 Explorer
Query modules — rows and children 1dTyped functions, no routes. The seam between the two lanes is an import, not an HTTP contract.
Promo Machine
Catalog subtitles usable by promos 1dThe bridge plus VTT conversion. More involved than it reads.
Tue11 Aug Ads Manager · M2 Explorer
Column picker + totals row 1dTotals are computed over the whole filtered set, not the page — and every ratio is a ratio of sums.
Ads Manager · M2 Explorer
Server totals + count-only mode 1dTwo contracts the UI depends on: the pre-built filter fragment, and the count the filter panel polls while you type.
Promo Machine
Pull episodes from Mux as 1080p 1dCross-repo across three services. This is the ticket everything else in his lane is sized against.
Wed12 Aug Ads Manager · M2 Explorer
Status and ROAS cells, URL state 1dA pasted link has to reproduce the screen exactly — view, filters, sort, expansion.
Ads Manager · M2 Explorer
The filter condition compiler 1dCompiles the condition tree to parameterised SQL. Deliberately free of React so the rules engine can import the same types later.
Promo Machine
Closure and end frame optional 1dNot every promo wants a tail. Right now every promo gets one.
Thu13 Aug Ads Manager · M2 Explorer
Filter bar — the pills 1dChips, condition pills, the bracketed any-group. Where the filter work starts getting expensive.
Ads Manager · M2 Explorer
Country segment view + the grain guard 1dDefines what a campaign-grain metric means when you filter ads by it. Nothing defined that before; it would have shipped as an undefined number.
Promo Machine
Concept as a free-fill vocabulary 1dConcepts stop being a fixed list and become something anyone can extend.
Fri14 Aug Unassigned Unassigned — the lens SQL is the likeliest thing to overrun Unassigned

Week 3

Mon 17 – Fri 21 AugustProduction change · the filters land
Victoriafrontend · web · app CI Dmytrobackend · Ads Manager Stefanbackend · Promo Machine
Mon17 Aug Ads Manager · M2 Explorer
Condition panel — the editor 1dPer-condition timeframes, one level of OR nesting, and a live match count while you type.
Ads Manager · M1 connector
Validate the overlay connector on staging 1dThe rehearsal before the only production change in the window.
Promo Machine
Multi-clip body 1dA promo assembled from several clips instead of one. The largest single piece in the batch.
Tue18 Aug Ads Manager · M2 Explorer
Filters — validate against real data 1dBuild the worked example, check the count matches the table, paste the URL into another browser.
Ads Manager · M1 connector
Production connector rollout 1dSwaps the production Meta connector and re-syncs a table Metabase also reads. Reversible, with the rollback written down — but have someone else on the call for the backfill.second person on the call
Promo Machine
Multi-clip body 1dContinues.
Wed19 Aug Ads Manager · M2 Explorer
Timeline panel 1dTop eight by spend plus an aggregated rest, so the lines add up to the visible total. Checking rows in the table emphasises their series.
Ad Monetization
AppLovin callback signing + rolling cap 1dConfirm whether the callback signs the event id or the whole payload before writing the verifier — AppLovin's own documentation contradicts itself.one decision to settle first
Promo Machine
Ad-name panel 1dNaming fields and a short id. Names are attribution join keys downstream, so this is less cosmetic than it sounds.
Thu20 Aug Ads Manager · M2
Inspector side panel 1dRow click opens a drawer. Completes the Explorer as something someone can actually run their morning on.
Ad Monetization
Rolling cap service 1dEnforces the per-user rewarded limit over a moving window.
Promo Machine
Ad-name panel 1dContinues.
Fri21 Aug Unassigned Unassigned — keep this one genuinely clear, the day after a production change Unassigned

Week 4

Mon 24 – Fri 28 AugustLive testing · CI · the write path begins
Victoriafrontend · web · app CI Dmytrobackend · Ads Manager Stefanbackend · Promo Machine
Mon24 Aug Ad Monetization
Rewarded loop — live test and fix 1dThe build is essentially done. This is finding out what breaks when a real ad network is on the other end.needs AppLovin approved by now
Ad Monetization
GrowthBook experiment arms 1dSo the rewarded limits get tuned on evidence rather than on a guess.
Promo Machine
Dub every clip into target locales 1dThe biggest ticket in the batch, and the one with the most moving parts outside our own code.
Tue25 Aug Ad Monetization
Rewarded loop — second pass 1dLive-test findings, not new construction.
Ad Monetization Promo Machine
Dubbing — validate output 1dListen to it. Automated checks do not catch a mistimed dub.
Wed26 Aug E2E Automation · M1
Scaffold Maestro, pin the version 1dOne smoke test per platform — iOS, Android, and the web build. Selector conventions documented so the suites that follow are consistent.
Ads Manager · M3 Controls
Write path — the architecture 1dOne API and one interface across four providers, multi-account. Getting the shape right now is what makes the provider integrations cheap in September.
Web Payments
Checkout endpoints — first slice 1dA clean handoff out of Promo Machine into the payments backend.
Thu27 Aug E2E Automation · M1
Web E2E on GitHub Actions ½dHeadless Chrome against the built web target, artifacts on failure. Non-blocking now; it becomes a required check in September.
Test-data foundation ½dFour user states and a reset between runs. Every flow suite depends on this, so it is worth getting right before authoring any of them.
Ads Manager · M3 Controls
Action ledger 1dWho did what, before and after, and whether it worked. The thing you want to already have the first time an action goes wrong.
Web Payments
Checkout endpoints 1dContinues. The refund-handling ticket stays blocked until there is a real payload to test against.
Fri28 Aug Unassigned — last day of the window Unassigned Unassigned

Rolls into September — owned, just past the window

WorkDaysGoes toWhy it moved
Ads Manager · the campaign deep-dive4VictoriaPage shell, Performance tab, Attribution and History, Breakdowns. It ships as one unit or not at all — a shell with two of its four tabs filled is worth less than none. The Explorer without it is still a complete, usable product.
E2E · the five flow suites and the flake gate5VictoriaAuth, browse, playback, paywall, coins — then driving flake under 1% and making E2E a required check. The infrastructure lands in August; the coverage needs a run of consecutive days to measure against.
Ads Manager M3 · provider integrations4DmytroThe architecture and the ledger land in August. Wiring Meta, Google, Snapchat and TikTok behind them is the part that scales with provider count rather than with design difficulty.
Web Payments · the rest of the backend5StefanEverything past the first slice of checkout endpoints, plus the refund handling that is waiting on a real payload.
Backoffice RBAC5DmytroWorkspace groups behind the access proxy, deployed dark first and rolled out in stages. The staged rollout adds calendar time that a four-week window cannot absorb.
Ads Manager M4 · CreationDmytroThe five-step wizard and the per-provider write adapters. No implementation plan exists yet; it starts with a planning ticket, not a build ticket.

Unassigned backlog — and who picks it up

WorkRoughGoes toNote
Popup Service · the remaining phases4–6DmytroPhase 1.5 is at 80% and the gateway route is serving production traffic cleanly. Several phases remain after it — considerably more than the two days it once looked like.
Web: Stabilize · the remainder2VictoriaThe anonymous-access controller is the critical-path root and is still unwritten. Domain provisioning is a real external blocker on part of it.
Quality & Stability sweep2VictoriaThe accumulated small things. Worth a named block rather than leaking into buffer days.
Store Promotions & Offers~8DmytroSegmentation-first, and adjacent to everything else happening on monetization. Currently sitting in review with nothing behind it.
Reliability — the two real ones½StefanA fleet-wide pool-timeout unit mismatch causing very long waits, and a daily run of 500s on the coin-spend path. Both small, both with a known fix. Good filler work between larger tickets.
SegmentationunsizedDmytroFoundational, and it blocks per-segment pricing. Needs sizing before it can be scheduled at all.