Weekly Report — Apr 20 – Apr 26, 2026 (friday mode)
Work
Internal
- DONE Calendly data pipeline reporting layer scoped (DAT-283)
- Following the merge of dbt #853 (approved last week), captured the full reporting-layer plan in
journals/2026_03_19.mdcovering Source / Staging / Domain / Mart / Deprecated / Fixed layers. - New canonical mart:
mart_growth__calendly_bookings(view →fct_calendly_bookings, grain = event × attendee × rep) andmart_growth__calendly_events(table →dim_calendly_events). - Deprecated (
enabled: false):mart_growth__demo_calls,mart_growth__onboarding_calls,mart_core_business__demo_call_bookings,dom_calendly__demo_call_bookings,dom_calendly__onboarding_call_bookings. - Fixed:
mart_core_business__sales_leadsnow joinsdom_calendly__bookingsdirectly onattendee_email_domain(resolves the 88% drop in call-booking leads found last week). - Next: update Holistics BI Model / Dataset / Dashboard to align with the new layer (Ampcode thread).
- Following the merge of dbt #853 (approved last week), captured the full reporting-layer plan in
- WAITING Review PR CircleCI for anh Dong (prefect #397 / DAT-579 — sub-task of DAT-578 CircleCI pipeline revamp)
- Round 1 review done. Used Ampcode (code review) and Ampcode (PR 858) to scaffold review.
- Now waiting on anh Dong’s response. Notion DE-214.
- NOTE DAT-556 dbt test failure root cause analysis (Ampcode)
- Failing test:
unique_map_identities_zendesk_hubspot_zendesk_organization_id. Zendesk org900032617243(1win.pro) maps to 2 HubSpot companies because1win.proappears inall_domain_namesof both HubSpot5855457913and18891852445. - Root cause:
IN UNNEST(all_domain_names)join initg_mappings__zendesk_tenant.sql(and similar integration-layer joins) creates fan-out whenever a domain appears in multiple HubSpot companies. Originated from DE-187 phase 1 (PR #812). - Impact: 16 tenants across ~10 companies; affected customers: Correlation Risk Partners, Cruisebound, 1win.
- Decision: leave the test failing for now and address as part of the broader DE-187 resolution (canonical
customer_skeywork). Not yet actioned due to sick leave.
- Failing test:
- NOTE dbt deprecation policy clarified (Ampcode thread)
- Phase 1: deprecate in code. Phase 2: remove the
.sqlfile. Phase 3: drop the table. - Don’t sit between phase 2 and 3 — AML models reference BQ physical names; removing the
.sqlonly stops refresh, leaving the table with stale data and silently misleading consumers. Either keep the wrapper alive or drop the table entirely.
- Phase 1: deprecate in code. Phase 2: remove the
- NOT STARTED (carry-over) MRR exchange rate work (DAT-576) — manager P1 from W16 1-on-1; not started due to sick leave + holiday week. Will pick up next week.
- NOT STARTED (carry-over) Lead Funnel by Sales Motion (DAT-560) — added Ampcode (Holistics PR) reference; still blocked on Calendly BI rollout.
Presales
- DONE Basata follow up on light/dark theme — completed Apr 21 (Slack, Ampcode)
- anh Huy posted the consolidated workaround to Taha (Basata) on Apr 21:
- Gap 1 (no theme context in embed payload): Basata duplicates the dashboard into 2 versions (light + dark); Basata app reads the user’s theme preference and renders the matching embed.
- Gap 2 (Sankey + dynamic markdown don’t adapt): standard charts via per-theme color palettes; Sankey via custom CSS; dynamic markdown gets per-theme CSS in each dashboard. anh Huy offered to impersonate and apply the Sankey fix.
- Caveat communicated: dashboard header + zoom section can’t be customized via CSS yet (rendered at the Holistics layer); use case forwarded to PMs for the longer-term embed-payload theme support.
- anh Huy posted the consolidated workaround to Taha (Basata) on Apr 21:
- NOTE Communication observation: in two recent enterprise conversations I offered to do hands-on work and got silence in return.
- Showbie (Slack thread): Harsha asked about parent-child filtering, Param Fields, and pivot-by-question for a Looker → Holistics rebuild. I confirmed all three are supported, sent doc links, and offered to log in and build the pivot example for him. No reply.
- Basata (Slack thread): anh Huy proposed the dual-dashboard workaround and offered to apply the Sankey CSS fix via impersonation. No reply yet.
- I don’t know how to best communicate with these kinds of users — possibly the offer of “I’ll do it for you” reads as too forward, or they need time to absorb. Worth raising in next 1-on-1.
Duty Support
- DONE Review AI sharing dashboard for Aurora — completed Apr 23 (moved to Backlog/Done)
- Confirmed Hieu’s dashboard is feasible to share as spreadsheet but not yet ready to consume — needs polishing before delivery.
- Aligned with the commercial decision: Vincent (CEO) clarified the in-app AI usage dashboard is free for all customers; what’s being sold is data sync/export to Aurora’s own systems (S3 preferred, Google Sheets secondary). Targeting enterprise compliance, security auditing, 7+ year retention.
- Final delivery format pending Nam’s email to Aurora. AI team (Phuong/Tien/Dat) owns separate in-app monitoring; data team scope is bounded to current ClickHouse data.
- Prior art: SweetSpot Slack thread — same pattern.
- UPDATE — deal deferred Email thread between Nam (Holistics) and Weiping (Aurora), Apr 20–23 (Slack file):
- Nam pitched the $10,200/year “Usage and AI Data Monitoring Transfer Sync” (S3 delivery, scope: conversation time/ID, user ID, prompts + AI replies, token usage per user).
- Aurora pushed back: hard to justify $10,200/year given the in-app AI usage analytics is on the Holistics roadmap for the next 1–2 quarters. Counter-proposals: monthly manual data dumps OR a read-only user on a read-only replica of the backend DB.
- Both sides agreed to revisit when Holistics has more concrete AI usage data.
- Implication for data team: no immediate delivery work needed. The Aurora-specific AI conversation dashboard (Hieu’s) can stay on hold; focus shifts to AI team’s in-app analytics rollout. Keep the dashboard ready in case the conversation reopens.
Docs
- NOT STARTED (carry-over) Add demo video for local development docs — moved to
journals/2026_05_25.md(will scope after the holiday). Slack 1, Slack 2.- NOTE Follow-up DM with Khai To on Apr 23–24 (Slack DM):
- Demo direction: lead with the outcome demo (like lightdash does — show power first); push step-by-step setup into the docs.
- Khai’s MCP for local metric queries is on staging13, not yet prod. He’ll demo it (skill + MCP combo) once I’m back from holiday.
- Estimated cadence: “probably 2 weeks after holiday” — aligns with the demo-video scoping push to mid-May.
- NOTE Follow-up DM with Khai To on Apr 23–24 (Slack DM):
Personal / Tooling
- DONE Set up Drata and remove Vanta — Apr 23 (Slack, Notion guide).
- Triet announced the Vanta → Drata migration to all engineering on Apr 23. Required steps: acknowledge all policies, install + register Drata agent, complete Security Awareness Training and HIPAA Training. Keep Vanta installed until further notice. Two-week deadline.
- DONE Tax checking — Apr 23 (Slack).
- HR (Nhu Nhu) asked everyone to install Etax Mobile and check 2025 PIT finalization status before her leave. Verified own status: single-source income at Holistics → finalization successful, no follow-up needed.
- DONE Set up CLI client for Cloudflare R2 upload — Apr 27 (Ampcode). Closes the loop on the auto-upload-to-R2 setup for Logseq media.
- NOTE Considering migrating emergency savings out of 1Long — no longer trust its reliability for emergency funds.
- DECIDED Google One downgrade: keep current plan. Linh and my younger brother still rely on it, so the per-user value justifies the cost. Closes the W16 open question.
Learning & Notes
- LEARNING Don’t play games at night after 6PM — they always extend into late-night sessions. Restrict to morning / early afternoon. Caused the cold that wiped out Mon–Wed.
- READ “Ask for no, don’t ask for yes”
- Instead of “Hey boss, can we install action X?”, say “Hey boss, I’m going to install action X to solve XYZ. Will take care of it Monday unless I hear differently.”
- Shifts cognitive load: gives the manager an opt-out window without blocking your progress, while you still own the framing of the problem and the solution.
- Tone matters — needs to be calibrated to the person and what they actually want to know (e.g., size of the problem, downstream risks). Worth practicing on smaller decisions first.
- The tips category on mooreds.com reads like a senior engineer sharing small craft-level tips that LLM searches don’t surface — reminder to keep cultivating non-LLM reading sources.
- NOTE Need to deliberately seek out blogs / RSS feeds rather than defaulting to LLM search inside Logseq. The signal/noise from a curated human writer is different from an aggregated answer.
- NOTE Trip to [[Trip - Bàu Sấu 04/2026]] — Ghibli-like landscape, dry-season trail (no mosquitoes/floods), good leg training (~6km/day) and digital detox (no signal). Will return next year, possibly during rainy season for a different experience.
Next Week
- P1 — Must Do
- Internal: Start MRR exchange rate work (DAT-576) — build
dim_exchange_rateswith live rate ingestion. Carry-over, manager P1. - Internal: Pick up DAT-555 follow-up captured in
journals/2026_04_27.md. - Internal: Update Holistics BI Model / Dataset / Dashboard for the new Calendly mart layer (DAT-283).
- Internal: Resolve DAT-556 dbt test failure (root cause already analysed Apr 22).
- Internal: Close out CircleCI PR review feedback loop with anh Dong (prefect #397 / DAT-579).
- Internal: Start MRR exchange rate work (DAT-576) — build
- P2 — Should Do
- Internal: Lead Funnel by Sales Motion (DAT-560) — unblock once Calendly BI layer is rolled out. Carry-over since W14 (4 weeks).
- Internal: Clean up BI layer for job queue dashboards (delete WIP 3.0, migrate v2 / Report Monitoring to 4.0).
- Internal: Increase data freshness — impersonation lookup more frequent than daily (DAT-499). Manager P3.
- Docs: Draft scenario for local development demo video, then sync with anh Huy Vu / Dat. Carry-over.
- Teaching: Find a football dataset for Duc Anh.
- P3 — Nice to Have
- Internal: Contribute to Holistics skills and internal-skills repos.
- Presales: Read Modeling Patterns docs.
- Personal: Self-reflection + CV update. Research alternatives to 1Long for emergency savings.
- Holiday note: Thu Apr 30 and Fri May 1 are public holidays in Vietnam (Reunification Day + Labour Day) — plan light work Mon–Wed and rest/play Thu–Fri.
Career & Personal Consulting
- Progress Review (Start / Stop / Keep)
- Keep: When energy was low, you still chose the highest-leverage tasks (Basata follow-up, Aurora dashboard review, CircleCI review round 1) and let the rest slip rather than dragging everything to half-done. That’s healthy triage.
- Keep: Capturing the dbt deprecation policy as a reusable note (3-phase rule). These small principles compound — they prevent future “stale table” landmines and give you something concrete to teach Thuan / juniors.
- Start: Treat illness as a hard stop, not a soft pause. You felt off from Monday and pushed until Wednesday before resting. Sleep + early stop on Mon would likely have salvaged Tue/Wed. Build a rule: if you feel off two days in a row, stop on day two.
- Stop: Late-night gaming on weeknights — you already self-identified this as the root cause. The LEARNING note is good; pair it with a concrete trigger (e.g., laptop closes at 22:00 on weeknights).
- Workload observations
- This was a low-output work week by design (illness + trip), and that’s fine. The bigger risk is that two of last week’s manager-priority items (MRR exchange rate, BI cleanup) are now zero-progress carry-overs. Next week is also short (2 holidays); be realistic about scope.
- The “Ask for no, don’t ask for yes” article is timely — your carry-over list is growing, and proactive framing (“I’ll start MRR Mon, will course-correct based on Friday review”) would reduce review-cycle latency.
- Personal well-being
- Trip to Bàu Sấu was a real reset — physical movement (6km/day) + no signal + nature is the right antidote to context-switching fatigue you flagged in W16.
- Health: the cold is a signal. Sleep > productivity. Seven days of recovery cost roughly the same time as four nights of better sleep would have prevented.
- Career development
- Carry-over is becoming a pattern (MRR, Demo video, DAT-560, DAT-524). Consider a hard rule next week: any item carried over 3+ weeks gets a forcing function — either start it on a specific day, or formally backlog it. Avoid the “always-on but never-done” zone.
- Customer communication signal (Showbie + Basata)
- Both threads end with us volunteering hands-on work (“I can build the example”, “we’ll apply the CSS via impersonation”) and the customer going quiet. Two non-mutually-exclusive hypotheses worth testing:
- (a) Decision delay — they need time to socialize internally; silence is “not yet”, not “no”. Action: send a soft check-in 3–5 days later instead of waiting indefinitely.
- (b) Perceived push — “I’ll do it for you” can feel like over-reach for users who want autonomy. Action: try framing as a self-serve doc + offer (“here’s the recipe; happy to pair if helpful”) rather than “I’ll do it”.
- Either way, a follow-up cadence rule (e.g., 3-day silent → ping; 7-day silent → close loop with PM) prevents these from becoming permanent open loops.
- Both threads end with us volunteering hands-on work (“I can build the example”, “we’ll apply the CSS via impersonation”) and the customer going quiet. Two non-mutually-exclusive hypotheses worth testing:
Recommended resources to learn
- Maximize Your Recovery: Sleep, Stress, and Illness — Huberman Lab episodes on sleep and recovery. Useful given this week’s illness pattern; pair with the gaming-curfew commitment.
- How to Write a One Pager — Wes Kao. Good companion to “Ask for no, don’t ask for yes” — both are about framing decisions for busy stakeholders. Applies to your MRR / Calendly status updates.
- dbt deprecation patterns discussion — search “deprecate model” / “remove model”; community patterns confirm the 3-phase rule you derived this week.
- Atomic Habits — environment design chapters — relevant for the no-late-night-gaming rule. Behaviour change is easier with environment changes (e.g., move console out of bedroom) than willpower.
- Cal Newport — Deep Work / time-blocking — supports the Focus Days experiment from W16. With 3 effective workdays next week (Mon–Wed before holiday), time-blocking matters more than usual.
- “Never Split the Difference” by Chris Voss — relevant for the Showbie/Basata “silence after offer” pattern. Specifically chapter on calibrated questions and the “no” answer bias (links nicely with the “Ask for no, don’t ask for yes” article).
- Wait But Why — “How to do battle with the procrastination monster” — pair with the carry-over forcing-function rule. Long carry-overs often have a procrastination root, not a priority root.
/ Weekly Report - 2026-W17
Created Mon, 25 May 2026 00:00:00 +0000
Modified Mon, 25 May 2026 06:02:25 +0000