Avatar
🧠

Organizations

  • Weekly Report β€” Mar 9 – Mar 13, 2026 (friday mode)

    Pull Request: #7 and #8

    • Work

      Internal

    • (done) Code review MRR PR #812 β€” completed 4 review rounds on customer identity resolution refactor (DAT-471). Decomposition of itg_mappings__customer_identities into 5 sub-models. Identified critical issues: Zoho-only rows silently dropped by WHERE clause, NULL domain NOT IN semantics, Zendesk fan-out risk. PR merged Mar 10. (PR #812)

    • (done) Continue commenting DE-201 (PR Workflow enhancement) β€” completed review and documentation of CI/CD gaps in internal-aml-project repo. Proposed tiered roadmap: quick wins (PR templates, CODEOWNERS), expanded test coverage, new automation (lineage diff, impact analysis). (Notion)

    page Created Mon, 25 May 2026 00:00:00 +0000
  • Weekly Report β€” Mar 16 – Mar 22, 2026 (friday mode)

    Work

    Internal

    • DONE Migrate Census to Fivetran β€” Completed migration of reverse-ETL syncs (BigQuery β†’ HubSpot) from Census to Fivetran Activations before the April 1 deadline. Two syncs migrated: dim_contacts β†’ HubSpot Contact and fct_customer_stats β†’ HubSpot Company. Validated MAR stays within free tier limits (~1,215 records/month vs 3,500 limit). Follow-up noted for next week: check Census usage estimate to confirm free tier eligibility.
    • DONE Review monitoring dashboard DE-187 β€” Reviewed PR #60: “Add subscription monitoring dataset and dashboard for customer identity tracking” (merged).
    • DONE Check #data-ops-bot on viz_settings from PR #842 β€” Fixed duplicate snapshot names for viz_settings (PR merged Mar 17).
    • DONE Continue commenting the project DE-201 (PR Workflow enhancement) β€” Finished laying comments on the PR Workflow spec. Focus was on things needed during PR preview to facilitate reviewing; anything that doesn’t help confidence in approving a PR is out of scope.
    • DONE 1-on-1 meeting with manager (anh Triet) β€” Key concerns discussed: (1) integrating AI into the data team’s development experience, (2) current data infra/pipeline complexity and trust issues, (3) PR Workflow adoption. Wrote up 1-on-1 report.
    • DONE Understand the MRR data flow β€” Clarified that the revenue planning logic is produced from DTS100 and DTS106. Confirmed it is adequate to reproduce these sheets inside Holistics, but will temporarily defer in favor of adding a sales motion dimension first. Next step: ingest Calendly data into the warehouse.
    • IN-PROGRESS Check failed dbt tests & create Linear issues β€” DAT-554 fixed (Elementary dbt test n_records column missing, PR #841). DAT-555 still open: fct_job_queue_performance model is stale and likely to be removed; mart_product__dataset_datamodel_dimensions also under review. Several skipped downstream models identified: itg_customer_support__organizations, mart_customer_support__organizations, mart_product__activities, and others.
    • IN-PROGRESS Think about applying AI into resolving #data-ops-bot issues β€” Drafted an approach: pick a task β†’ resolve manually β†’ write detailed guide β†’ let agent attempt β†’ iterate. Then materialize as a reusable skill. Delegation strategy: routine dbt test fixes can go to juniors (Thuan) or agents.
    • TODO Prepare for phase 2 MRR problem β€” Upcoming. First step: ingest Calendly data.
    • TODO Ingest Calendly data β€” New task, supports the MRR analysis.
    • TODO Think about how a normal data team would adopt a BI chatbot β€” Exploring candidates (e.g., nao).

    Presales

    • DONE Onboarding call with Showbie β€” Completed Mar 13.
    • DONE Debrief the last call with Showbie β€” Key learnings: try out Calculation Builder for immediate use in calls; identified need to improve call quality by studying past calls led by Huy/Vincent.
    • DONE Showbie use case β€” embedded dashboard QA β€” Scoped requirements: Showbie PM needs a staging/approval workflow for embedded dashboards. Discussed with team (anh Tai / Huy) and decided on the approach: PM previews via Development β†’ Embed Portal link; dashboard changes on a branch reflect in the embed preview without needing a second tenant (saves ~50% cost). Solution documented and shared.
    • TODO Onboarding call 3 with Basata β€” Scheduled.

    Duty Support

    • TODO Support Sasha mybacs β€” New support request.

    Personal / Tooling

    • DONE Smartclass v0.2.4 release β€” Fixed 6 bugs from code review: non-contiguous question ID validation, missing FK cascades, non-atomic exercise writes, test isolation (isolatedStorage: true), R2 stream consumption, and schema docs. (Release)
    • DONE Add shadcn/ui skills β€” Integrated shadcn/ui skill from the official repo into the agent-skills system. Synced remote skill files and created symlink. (PR #13)
    • DONE Add 1-on-1 automation report in Logseq β€” Set up the 1on1-report.sh automation for generating retrospective reports from Logseq notes.
    • IN-PROGRESS Complete Brazilian dashboard on Metabase for Yen β€” Dash 1 (Sales Overview) done; Dash 2 (Shipping Overview) and demo video still TODO.

    Learning & Notes

    • Risk-based testing in dbt β€” Read Vinted Engineering article on tagging dbt models with high/low risk and frequency, then running tests selectively based on those tags.
    • Claude Skill Building Guide β€” Read Anthropic’s guide. Key takeaway: skill description should cover what it does, when to use, when not to use.
    • AI and labor β€” Reflected on the Oxygen Not Included DLC analogy: bionic dupes (robots) consume less oxygen and survive harsh environments but require lots of power. Like AI in our era β€” not ideal for early/simple work, but excellent for extending reach. When AI handles its strengths well, humans should double down on theirs.
    • 1-on-1 meetings β€” Read notes from The Manager’s Path: 1-on-1s are a chance to nurture the team/organization’s human resource.
    • Work ownership β€” “LΓ m việc bαΊ±ng cΓ‘i tΓ’m” β€” treating company work as your own leads to better responsibility, empathy, and quality in everything.
    • Presales self-reflection β€” Calls are not yet at expected quality. Plan: replay past calls led by Huy/Vincent, pause at prospect questions, answer first, then watch how they handled it, and take learning points.

    Next Week

    • P1 Onboarding call 3 with Basata β€” Presales, scheduled.
    • P1 Support Sasha mybacs β€” Duty Support, new request.
    • P2 Ingest Calendly data β€” Internal, prerequisite for phase 2 MRR analysis.
    • P2 Prepare for phase 2 MRR problem β€” Internal, depends on Calendly ingestion.
    • P2 Review and make a plan for MRR lead funnel / sales motion dimension β€” Internal, carry-over.
    • P2 Check back Census usage estimate (free tier confirmation) β€” Internal, noted for Mar 26.
    • P2 DAT-555 resolution β€” Internal, carry-over. Decide whether to remove fct_job_queue_performance and write Notion doc for team review.
    • P2 Fix excluding internal testing Zoho accounts β€” Internal, backlog item (DAT-524).
    • P2 Document Medenterprises performance use case β€” Duty Support, backlog (was due Feb 5).
    • P2 Brazilian dashboard Dash 2 + demo video for Yen β€” Teaching, carry-over.
    • P3 Search for a YouTube summarizer tool β€” Personal, backlog.

    Career & Personal Consulting

    • High output on infrastructure and process work: Census migration, PR #842 fix, dbt test triage, PR Workflow comments, and 1-on-1 report automation β€” all completed this week. This is solid foundational work, but it’s predominantly maintenance/infra. The MRR analysis (the higher-leverage, revenue-impacting project) progressed only on understanding the data flow. Next week, carve out focused time for the Calendly ingestion and phase 2 planning.
    • Presales is growing: You handled the Showbie embedded dashboard QA use case end-to-end β€” from scoping requirements to discussing with the team and arriving at a cost-effective solution. That’s a full presales cycle for a technical use case. Keep building this muscle.
    • Delegation thinking is maturing: The AI-for-data-ops-bot idea and the explicit framework (pick task β†’ resolve β†’ document β†’ let agent/junior try β†’ iterate) shows good leadership instinct. Follow through by picking one DAT issue next week and running the first cycle with Thuan or an agent skill.
    • Self-awareness on call quality: Identifying that your presales calls aren’t at expected quality and devising a concrete practice plan (replay + pause + compare) is a strong move. Prioritize doing this for at least one past call before the Basata onboarding.
    • Context switches remain high: This week touched Internal, Presales, Duty Support, Personal, Teaching, and Smartclass. The 1-on-1 with anh Triet also surfaced concerns about pipeline complexity and PR Workflow adoption β€” both requiring sustained attention. Consider limiting to 2–3 project contexts per day next week.
    page Created Mon, 25 May 2026 00:00:00 +0000
    • Weekly Report β€” Mar 23 – Mar 28, 2026 (friday mode)

    • Work

    • Internal

    • DONE Investigate failed dbt assets in #data-ops-bot (DAT-569)

      • Triggered by bot alert in #data-ops-bot: 4 not-null tests failing (24 + 9 null rows across mart_event__drill_down and mart_event__view_underlying_data).
      • Root cause: dbt Mart Snowplow Events job ran before dbt Mart Product (which builds dim_users), causing null tenant/user IDs. Secondary bug: LEFT JOIN to internal_tenants incorrectly passed internal events when user was missing from dim_users.
      • Fix: refactored SQL to pre-extract IDs from Snowplow event properties with coalesce fallback. Wrote Notion investigation doc (DE-207) with debugging guide for juniors.
      • LEARNING The bigquery agent skill often gets trouble mapping logical (dbt) and physical table names (BigQuery). Improvement: use dynamic mapping from INFORMATION_SCHEMA (excluding dev_* in prod).
    • DONE Review Thuan’s work on DE-208 / mart_product__dataset_datamodel_dimensions (PR #845 β€” OPEN)

    page Created Mon, 25 May 2026 00:00:00 +0000
  • Weekly Report β€” Mar 30 – Apr 5, 2026 (friday mode)

    Work

    Add2Cart

    • DONE Eliminate bridge table (bridge_product_retailer) from Redshift pipeline and Holistics AML layer
      • Completed all 5 phases of the migration plan (Slack thread):
        • Phase 0: Snapshot baseline tables (_migration_baseline, _bridge_backup) created on Redshift.
        • Phase 1: Added retailer_id + retailer_current_pricing_skey columns to atc_price_history, backfilled ~27M rows (75.7% coverage). Known gap: 8,713 keys from Chemist Discount Center slug mismatch β€” documented.
        • Phase 2: Deployed 5 updated SPs (sp_refresh_daily_prices, sp_refresh_atc_price_history_enrich, sp_run_all, sp_refresh_price_history_from_s3, sp_validate). Ran sp_run_all() β€” enriched table validated at 12.1M rows, join path works without bridge.
        • Phase 3: 7 commits on feat/eliminate-bridge-aml β€” removed bridge from all 4 datasets + market_price_rank model, added direct rcp_skey relationships, deleted agg_retailer_product_price model. Pushed to Holistics, dashboards verified.
        • Phase 4 (soak): Monitored dashboards end-to-end through bridgeless path β€” no issues.
        • Phase 5 (cleanup): Dropped bridge/agg tables + SPs, deleted bridge AML model, cleaned up migration artifacts. PR #2 merged. Shared completion summary with Anurag in Slack. Bridge kept as _bridge_product_retailer_backup (frozen, 222K rows) for reference. Remaining data quality items (near-miss slugs, missing retailers, history-only) handed off to Anurag.
      • Impact: Simplified join path from master_product β†’ retailer_current_pricing β†’ bridge β†’ atc_price_history to master_product β†’ retailer_current_pricing β†’ atc_price_history (one fewer hop), improving query performance.
    • WAITING Guidance for countries-level data ingestion (Notion D4 doc)
      • Investigated multi-country retailer ingestion from 6 RDS databases (airbyte_schema_*). Found critical price_history_skey collision: 2,774 keys collide across countries (39,710 rows), mainly Watsons across SG/ID/MY.
      • Decision: Holistics will not implement the ingestion. Created D4 guidance document with two approaches evaluated: (1) Dynamic Schema (separate Redshift schemas per country, switch via User Attributes) β€” recommended for Add2Cart; (2) Consolidated Schema (UNION ALL + RLP). Added Mermaid diagrams, comparison table, collision detection SQL, SP impact matrix, and AML examples.
      • Feedback: initial version was too detailed on implementation. Rewrote to lead with “what needs to be done” and high-level approaches first. Waiting for anh Huy to review.
      • Aligned with Anurag on Slack: he ingested retailers for all countries into Redshift.

    Presales

    • DONE Study Jonas Chorum onboarding call 1 (Notion prep note)
      • Hotel PMS company (~1,000 properties), non-multi-tenant (each customer = separate DB on self-hosted SQL Server). Key use cases: natural language querying over reservations, embedded analytics as paid add-on, dynamic data source for per-hotel routing.
      • Answered tunnel/bastion server question in Slack β€” they ran Windows script instead of Linux, connection error escalated to support team (Tien).
      • anh Huy led the call, I sat aside to assist. Decision from team review: known limitation on cross-database aggregation, need to clarify further with customer.
    • DONE Refactor Erin (Showbie) dashboard β€” Chukwudi had a fever, asked for help via Slack to refactor from query models to decoupled AQL metrics. Huddled with anh Dong, then handed over to him for the call.
    • DONE Onboarding call 2 with Basata (Taha) (ReadAI transcript, Slack debrief)
      • Good sentiment with Taha. Key feedback: creating single dashboard + embed portal flow isn’t seamless, needs to be easier to understand. Question: “any best practices to make the embedded dataset easier for business users to use?” β€” introduced Custom View feature. Embed Portal vs Single Dashboard distinction remains a point of confusion.
      • Embed portal tutorial already delivered: Notion guide, shared in #presales-sa Slack. Taha’s backend colleague to begin portal embedding.
    • TODO Onboarding call 1 with Jonas Chorum β€” vibe-coding a dynamic data source demo. Built POC showing data_source_name in AML routing per-hotel queries via JWT user attributes. Limitation identified: cross-database aggregation (50-60 DBs) requires a data mart. Moved to Apr 6.
    • TODO Polish embedding documentation β€” formalized as P2 backlog item. Will ask anh Tai and anh Huy next week to clarify scope and whether to own this. Friction observed across Showbie, Superbexperience, Basata, and Jonas Chorum.
    • NOTE Presales capacity: anh Huy is deliberately stepping back from leading calls, delegating to team (me, anh Dong, Chukwudi, Mario) to build team capacity. The expectation is thorough preparation before every call.
    • NOTE Presales load continues to increase: Jonas Chorum, Showbie, Basata active this week. The embedding use case is becoming the dominant pattern β€” 4 of last 5 customers need embedded analytics.

    Internal

    • DONE Thuan’s PR #845 (DE-208 / mart_product__dataset_datamodel_dimensions) β€” MERGED. Fix for PARSE_JSON syntax error. All CI checks passed after review rounds in W13.
    • DONE Review DE-206 for anh Hieu β€” exchange rate document review completed. Notion doc and Slack thread.
    • DONE Visualize schedule of all data lineage (Notion: Data Pipelines Schedules)
      • Created full Mermaid flowchart of the entire pipeline: Extract & Load (21:30–23:55 VNT) β†’ Domain Transforms (00:20–00:55) β†’ Mart Transforms (00:15–01:35) β†’ Post-Transform (01:35–08:00). Mapped all cron schedules from prefect.yaml, dbt model dependencies via ref() calls, and Airbyte sync frequencies.
      • Key finding: mart_event depends on mart_product (specifically mart_product__users and mart_product__dashboard_widgets), but runs weekly on Monday 00:15 before the daily product mart at 01:10. Safe because mart_event doesn’t use the + prefix (reads existing BigQuery data, no upstream rebuild).
    • DONE Check Zendesk tenant Inovonics (DAT-571)
      • Investigated why tenant US-1099511640417 wasn’t mapped to Zendesk org in analytics. Traced through itg_mappings__zendesk_tenant β†’ HubSpot domain mapping β†’ Zendesk organizations table.
      • Root cause: Airbyte Zendesk source connector (source-zendesk-support:0.2.6) has a pagination bug capping ingestion at 10,000 records. The raw organizations table had exactly 10,000 rows; 680 of 911 org IDs in tickets were missing.
      • Recommendation: Upgrade Airbyte Zendesk connector to fix pagination.
    • DONE Add CI to validate Holistics AML project (PR #67 β€” MERGED)
      • Triggered by a silent semantic conflict: PR #63 (Hieu) added a dashboard depending on domain_hubspot_companies, and PR #64 (Thuan) deleted that model. Git didn’t flag it because they touched different files.
      • Implemented GitHub Actions workflow using Holistics Validation API to validate AML syntax and references on every push.
    • DONE Attended Product Office Hours P1 and P2 (Notion newsletter)
      • Noted: AI theme builder tool at holistics.h-theme-builder.pages.dev/theme-builder β€” will try with more prospects.
      • New dataset exploration UI looks promising.
      • Data team should contribute to Holistics skills and internal-skills repos.
    • TODO Create agent skill for fixing dbt data pipelines for #data-ops-bot β€” carry-over from W13, not started.
    • TODO Fix excluding internal testing Zoho accounts (DAT-524) β€” carry-over since W7, not started.
    • TODO Calendly data pipeline (DAT-283) β€” carry-over, not started.

    Docs

    • TODO Polish embedding documentation β€” increasing embedding leads make this urgent. Same item tracked under Presales.
    • WAITING Add demo video for local development docs β€” waiting for team to trigger.

    Logseq

    • DONE Add project glossary (PR #13) β€” created canonical project list in pages/Projects.md.
    • DONE Improve backlog structure and automation query pre-processing (PR #12).

    Personal / Tooling

    • DONE Changed to a more professional work avatar.
    • DONE Edit video last Hue Trip β€” completed on Saturday.
    • DONE Sao kΓͺ (personal finance task).
    • DONE Settled on mochi.cards as Flashcard app for learning English words.
    • Installed Annotate β€” free on-screen annotation tool for customer demos and screen recordings. Lightweight alternative to paid tools.
    • Discovered Pebble Index 01 β€” smart ring for quick voice notes. Interesting for capturing ideas on the go.
    • Found Vietnam Real Estate Dataset on HuggingFace β€” potential hobby data analysis project.
    • Note: Logseq automation is compounding β€” helps retain historical context across projects, improving performance in sync calls and connecting dots. The second reason for feeling productive this week.

    Learning & Notes

    • Watched How to Present a MIND-BLOWING Software Demo β€” key takeaways: recap slides (fact β†’ problems β†’ criteria β†’ new findings), speak customer’s language (airline = passengers, SaaS = users), confirm what they care about before demo, use cases > features, have an assist person, send personalized recap to each audience member. Applied learning to Jonas Chorum call prep.
    • Read How to teach technical concepts with cartoons by Julia Evans β€” guide on visual teaching. Potential application for Kindle Scribe. Follow-up from W13 recommended resource on “implementation challenges.”
    • Read Details aren’t the problem. The problem is too many of the wrong details by Wes Kao β€” levels of detail in communication. Completed from W13 recommended resources backlog.
    • LEARNING Single-tenant vs Multi-tenant architecture patterns β€” relevant context for Jonas Chorum (single-tenant: infra duplicated per tenant) vs most other customers (multi-tenant: shared infra, logical isolation). Understanding this distinction is critical for presales scoping.
    • LEARNING Country names follow a people + land pattern: Iceland, Greenland, England, Switzerland, Finland, Kazakhstan, Uzbekistan (stan = land).
    • NOTE Good observation from anh Huy: “If I just stay in the call, everyone can’t improve. The only thing that makes sense now is to force the team to prepare very well before the call.” Leadership by stepping back.
    • NOTE Increase Calendly pipeline task to top priority next week β€” noted on Thu.

    Next Week

    • P1 β€” Add2Cart: Project retro with anh Dong β€” review the full bridge elimination + countries guidance work.
    • P1 β€” Presales: Onboarding call 1 with Jonas Chorum β€” finalize dynamic data source demo, address cross-database aggregation limitation.
    • P1 β€” Internal: Calendly data pipeline (DAT-283) β€” elevated to P1 per Thu note. Standardize source pipeline and build unified dbt models.
    • P2 β€” Internal: Create agent skill for fixing dbt data pipelines in #data-ops-bot β€” carry-over from W13.
    • P2 β€” Internal: Fix excluding internal testing Zoho accounts (DAT-524) β€” lingering since W7. Timebox 2h or explicitly deprioritize.
    • P2 β€” Internal: Follow up on DAT-571 (Zendesk Airbyte connector upgrade) β€” ensure pagination fix is scheduled.
    • P2 β€” Docs: Polish embedding documentation β€” ask anh Tai and anh Huy to clarify scope. Write step-by-step embed portal setup guide.
    • P2 β€” Add2Cart: Get anh Huy’s review on the D4 countries guidance document.
    • P3 β€” Presales: Read Modeling Patterns docs.
    • P3 β€” Personal: Self reflection and update CV.

    Career & Personal Consulting

    Progress Review (Start/Stop/Keep):

    page Created Mon, 25 May 2026 00:00:00 +0000
    • Weekly Report β€” Apr 6 – Apr 12, 2026 (friday mode)

    • Work

    • Internal

    • DONE Fix failed dbt tests β€” snowplow events (DAT-569)

    • DONE Check Zendesk β€” Tenant Inovonics (DAT-571)

      • Triggered by Vincent’s Slack message: Zendesk Customer Support dashboard showed 0 for Inovonics. Traced full lineage from fct_zendesk_tickets β†’ itg_mappings__zendesk_tenant β†’ stg_zendesk__organizations β†’ _airbyte_raw_organizations and found org 13430326317849 missing entirely.
      • Root cause: Airbyte Zendesk connector v0.2.6 uses offset-based pagination capped at 10K records by Zendesk API. Raw table had exactly 10,000 rows; 680 of 911 org IDs in tickets were missing. Entire downstream lineage from staging to mart was broken.
      • Wrote upgrade plan evaluating 3 options: (1) Upgrade Airbyte platform v0.35 β†’ v2.0 (fixes root cause for all connectors, but high DevOps effort + risk to HubSpot syncs during migration), (2) Rebuild in Prefect (data-team-only, orgs-only β‰ˆ 2–3 days), (3) Use Fivetran (managed SaaS, β‰ˆ 2–3 days, requires refactoring all stg_zendesk__*.sql models). Waiting for review.
      • Interim fix applied: manually upgraded connector in Airbyte UI to v2.6.6. Vincent confirmed dashboard now shows data. Long-term Airbyte upgrade tracked as a Linear project.
    • WAITING DAT-555 β€” Fix fct_job_queue_performance BigQuery resource limit (DAT-565)

    page Created Mon, 25 May 2026 00:00:00 +0000
    • Weekly Report β€” Apr 13 – Apr 19, 2026 (friday mode)

    • Work

    • Internal

    • DONE Transfer MRR and exchange rate project with anh Hieu β€” completed Apr 14
      • Walked through DE-187. Two main blockers: (1) customer identity resolution β€” dbt logic refactored but domain mapping remains unreliable; (2) exchange rates β€” Zoho uses static rates set at plan creation time, finance team pivoting to bi.holistics.io as MRR source of truth.
      • Decision: use USD as reporting currency with live exchange rates (Option 2). Recommendation to move toward period-average constant currency (Option 3) for trend analysis.
      • Created dedicated knowledge page [[[Internal] Customers’ MRR (Exchange Rate)]] with data architecture diagram, ER diagram (dbdiagram.io), 9 identified problems, edge cases (Datacubed multi-tenant, Kognity multi-region, Vector AI domain mismatch), and technical fixes (PR #812, PR #852).
      • Next steps: build dim_exchange_rates table (DAT-576), implement dual metrics (constant_currency_mrr + reported_mrr), implement canonical customer_skey for long-term identity resolution.
      • Related: dbt monitoring flow DE-176 suspended (low priority), impersonation lookup frequency increase (DAT-499) pending.
    • DONE Investigate Zoho Events sync 403 failure (DAT-574) β€” completed Apr 14
      • Prefect flow Sync Zoho Events failed Apr 12 with HTTP 403 (Zoho error code 104003) β€” OAuth token lacked ZohoSubscriptions.events.READ scope after Finance (Vincent, Sriram) adjusted admin permissions for Janice’s account.
      • Root cause: permission/scope issue, not a code bug. Coordinated with Quinn (Growth) who updated read permission. Flow re-ran and backfilled successfully.
    • DONE Write 1-on-1 report β€” completed Apr 15, PR #16. 1-on-1 meeting held Apr 15.
      • Manager’s priorities for Internal (in order): (1) data quality/reliability β€” MRR identity + exchange rates; (2) bi.holistics.io cleanup; (3) increase data freshness (e.g., impersonation lookup); (4) product tracking; (5) development workflow.
      • Embed demo app proposal: not the right timing. Mentoring Thuan: ask open questions, force him to think.
    • DONE Fix fct_job_queue_performance BigQuery resource limit (DAT-555)
      • PR dbt #854 approved by marcusle02 and merged Apr 15. Capped incremental lookback to 7 days.
      • PR review done. Backfill completed. Now proceed to clean up BI layer.
      • Dashboard cleanup decision: delete [WIP] Job Queue Performance 3.0 (unused), keep v2 and Report Job Queue Performance Monitoring (migrate to 4.0).
      • Related sub-tasks DAT-567 (delegated to Thuan, done) and DAT-575 also completed.
    • IN-PROGRESS Calendly data pipeline (DAT-283)
      • PR dbt #853 approved by marcusle02 on Apr 17 after multiple review rounds. PR is mergeable, awaiting final merge.
      • Answered all review comments from anh Dong (marcusle02). Key feedback addressed: enable deprecated wrapper models for transition, avoid SELECT * in CTEs, fix tracking_utm_content data type.
      • Re-modeled into fact bookings and dim event, with grain = event Γ— invitee Γ— rep.
      • Lineage analysis completed: 2 domain + 3 redundant mart models consolidated into 1 domain (dom_calendly__events) + 1 mart (fct_calendly_events). Source migrated from Google Sheets to Fivetran. Bug fix: fct_sales_leads was dropping 88% of call-booking leads due to NULL UUIDs in Google Sheets β€” now joining on invitee_email_domain from Fivetran source. Impacts 10+ downstream dashboards (Leads Analytics, Sales Performance, Deal Activity, etc.).
      • Next: merge PR, run dbt models, validate data in Holistics BI, then fix downstream fct_sales_leads join.
    • DONE Guidance for countries level data (Add2Cart) β€” closed Apr 17
      • Add2Cart won’t engage further. Closed task per Slack thread update.
    • TODO Handle multi-currency exchange rates for MRR (DAT-576) β€” new backlog item from MRR transfer. P2. Scope per Linear: ingest live exchange rates (source TBD: ECB, Google Finance, or Zoho live rates), replace static rate logic in fct_mrr, handle FX noise in historical growth metrics (pin to end-of-month rate), validate against Zoho totals. Notion doc: MRR discrepancy ~30,000 SGD between Zoho (340K SGD) and bi.h (243K USD Γ— 1.28 = 311K SGD).
    • TODO Lead Funnel by Sales Motion (DAT-560) β€” blocked on Calendly pipeline completion. Carry-over.
    • WAITING Create agent skill for fixing dbt data pipelines in #data-ops-bot β€” demoted to P3 per anh Triet’s direction to let Thuan handle data-ops-bot for training. Revisit in 3-6 months.
    • BACKLOG Fix excluding internal testing Zoho accounts (DAT-524) β€” carry-over since W7 (10 weeks). Deprioritized: waiting for more important tasks (MRR exchange rate, Calendly) to be done first. Small task, will pick up later.
    • TODO Review PR Circle CI for anh Dong (DAT-579) β€” new. PR prefect #397: expand CircleCI test metadata ingestion (success + failed jobs), add branch fallback logic, add 60-day backfill flow. Part of DAT-578 (CircleCI pipeline revamp). Notion: DE-214 β€” current state uses a bash script β†’ SQLite β†’ report; this PR moves it to Prefect + BigQuery.
    • TODO Review AI sharing dashboard for Aurora β€” new. Enterprise customer, high priority. Slack.
      • Context from Slack: Nam (Account Manager) proposed upselling Aurora a “Usage and AI Data Monitoring Transfer” package at $10,200/year. Internal debate: Phuong (Product) argued basic AI usage monitoring should be free (AI squad is building in-app dashboard); Vincent (Growth) clarified the upsell is for data sync to customer’s own systems (not in-app viewing), targeting enterprise compliance needs (e.g., 7-year log retention). Triet agreed β€” put it behind SCS paywall.
      • Data from ClickHouse: conversation time/ID, user ID, messages (prompts + replies), token usage per user. Dashboard created by Hieu: Aurora AI Conversations.
      • My action: review the dashboard quality before sharing. Confirm delivery format (Google Sheets or S3) and daily schedule.
    • Presales

    • TODO Basata follow up on light/dark theme β€” new. Enterprise customer, high priority. Slack.
      • Context from Slack: Basata (Taha) has dark mode in their app and needs embedded dashboards to match. Current Holistics limitation: theme is set globally, not per-embed payload. Anh Huy proposed adding theme: 'light_theme' | 'dark_theme' to the embed payload. Also, Sankey chart labels don’t convert to light colors in dark theme (color palette not tied to theme). Basata says this is urgent β€” already rolled out embed to 3 clients, wants dark mode by end of next week.
      • I told them we’ll reach out Monday with an internal plan.
    • DONE Onboarding call 2 with Jonas Chorum β€” completed Apr 17
      • Feedback: (1) need Select All & Clear All in dataset; (2) make dashboard interactivity features (VUD, DD, BD) available for Explore too.
      • Debriefed the call, brought feedbacks to the team.
      • EAV lookup table pattern discussed during call: Tony’s one_letter_codes table is a multi-purpose lookup where same code means different things per category (e.g., ‘C’ = ‘Cancelled’ for StayStatus, ‘City’ for Ledger). Proposed 3 approaches; decided on Approach 1 (SQL Query Models with inline joins) β€” most reliable, avoids bloating diagram view.
    • DONE Presales sync β€” completed Apr 16
      • Pivot prioritization to tutorial videos for local development docs.
    • WAITING Polish embedding documentation β€” deprioritized per 1-on-1. Not the right timing. Continue maintaining holistics-embed-demo informally.
    • Add2Cart

    • CLOSED All Add2Cart tasks closed β€” customer won’t engage.
      • Guidance for countries level data β€” closed Apr 17.
      • Project retro with anh Dong β€” canceled. Deal not progressing. Per Slack: Vincent reached out multiple times but Simon has not responded. Vincent suggests stopping service and treating remaining 50% unrecovered sprint work as an internal lesson on scoping and early commitment.
    • Docs

    • TODO Add demo video for local development docs β€” elevated to P1 per presales sync. Draft scenario, discuss with anh Huy Vu/Dat.
    • NOTE DataHub integration (holistics/datahub-holistics) β€” built for customer MoneySmart. Anh Triet flagged concern: data team needs to be prepared for support if customer reports an issue.
    • Personal / Tooling

    • Explored ReactFlow for vibe-coding data lineage with high-quality canvas. Also applicable for knowledge graph visualization from Logseq.
    • Found docglow as dbt docs alternative β€” prettier UI, supports column-level lineage.
    • Found meta-sql β€” data lineage graph with dependency visualization, useful inspiration for [[dblineage]].
    • Read articles on dbt incremental models (lookback windows, _dbt_max_partition gaps), dbt Cloud Canvas, and data ingestion tool comparison.
    • Considered downgrading Google One (no longer using Gemini chatbot regularly).
    • Reflected on context-switching cost across projects (Internal, Presales, Docs, Personal, Teaching). Considering Focus Days approach to reduce overhead.
    • Learning & Notes

    • Read “Protect Your Shed” β€” personal projects keep you an engineer while enterprise work teaches scale. Resonated with how side projects (like Logseq automation) maintain motivation.
    • Read “My AI Adoption Journey” by Mitchell Hashimoto (co-founder of HashiCorp, creator of Ghostty).
      • Key concept: Harness Engineering β€” design better feedback loops so AI agents know when they’re wrong. The simplest form is adding rules to AGENTS.md. Already practicing this with Logseq automation.
      • 6-step framework: (1) drop the chatbot, use agents; (2) reproduce your own work to learn edges; (3) end-of-day agents for warm starts; (4) outsource slam dunks while doing deep work; (5) engineer the harness; (6) always have an agent running.
      • Key insight: “Turn off desktop notifications. Context switching is expensive.” Validates experience with multi-project context overhead.
      • On skill formation: “discovering it yourself resulted in a stronger fundamental understanding” β€” applies beyond AI.
    • Read dbt incremental model articles: strategies (merge, insert_overwrite, append), lookback windows for late-arriving data, _dbt_max_partition gaps. Directly applied to DAT-555 fix.
    • Next Week

    • P1 β€” Must Do
      • Duty Support: Review AI sharing dashboard for Aurora (enterprise customer). Slack. Monday priority.
      • Presales: Basata follow up on light/dark theme (enterprise customer). Slack. Monday priority.
      • Internal: Merge Calendly PR #853 (approved, ready to merge), run dbt models, validate data in Holistics BI. Then fix downstream fct_sales_leads join.
      • Internal: Review anh Dong’s CircleCI PR prefect #397 (DAT-579).
      • Internal: Start MRR exchange rate work (DAT-576) β€” build dim_exchange_rates with live rate ingestion. Manager priority #1.
      • Docs: Add demo video for local development docs β€” draft scenario, discuss with anh Huy Vu/Dat.
    • P2 β€” Should Do
      • Internal: Clean up BI layer for job queue dashboards (delete WIP 3.0, migrate v2 to 4.0).
      • Internal: Increase data freshness β€” impersonation lookup more frequent than daily (DAT-499). Manager priority #3.
      • Internal: Lead Funnel by Sales Motion (DAT-560) β€” review and plan after Calendly pipeline stabilizes.
      • Teaching: Find a football dataset for Duc Anh.
    • P3 β€” Nice to Have
    • Backlog (deprioritized, pick up after MRR/Calendly)
      • Internal: DAT-524 Fix excluding internal Zoho accounts β€” small task, 10 weeks carry-over.
    • Career & Personal Consulting

    • Progress Review (Start/Stop/Keep)
      • Keep: Thorough knowledge transfer documentation (MRR page with architecture diagrams, ER diagrams, problem taxonomy). This is a strong practice that makes handoffs durable. Also keep the pattern of debriefing presales calls and bringing structured feedback to the team.
      • Start: Decisively backlogging low-impact carry-over items. DAT-524 formally backlogged β€” small task that doesn’t warrant 10 weeks of cognitive overhead. Good precedent.
      • Stop: Holding onto tasks that external parties have deprioritized. Good move closing all Add2Cart tasks when it became clear the customer won’t engage. Apply this pattern to other WAITING items proactively.
    • Workload Observations: This week was well-balanced between deep work (MRR transfer, Calendly PR reviews) and collaborative work (presales calls, 1-on-1). The MRR knowledge page creation shows growing ownership of a complex domain. DAT-555 being merged is a solid win β€” one fewer carry-over.
    • Skill Development: The intersection of data engineering and presales (e.g., Jonas Chorum call with EAV lookup tables) is a differentiating skill. Few people in the industry can both design data models and demo them to customers. This is worth leaning into.
    • Harness Engineering observation: You’re already practicing what Mitchell Hashimoto describes β€” iterating on AGENTS.md, building automation scripts that learn from mistakes. This is a genuine competitive advantage in the AI-first era. Continue investing in it.
    • Context switching: You flagged this yourself β€” many projects are “always on” (Internal, Presales, Docs, Personal, Teaching). The Focus Days approach is worth a trial run next week: e.g., Mon/Wed = deep Internal work, Tue/Thu = presales + reviews, Fri = wrap-up.
    • Mitchell Hashimoto’s “My AI Adoption Journey” β€” already read, but worth revisiting Step 5 (Harness Engineering) as you build more automation. Share with team?
    • dbt discourse: Multi-currency reporting patterns β€” search for “exchange rate” and “multi-currency” threads. Community patterns for dim_exchange_rates and constant-currency MRR will shortcut your DAT-576 implementation.
    • Ghostty AGENTS.md example β€” referenced in Hashimoto’s article. Good reference for structuring AGENTS.md for different subdirectories.
    • YouTube: Analytics Engineering with dbt β€” Incremental Models Deep Dive β€” reinforces the lookback window patterns you applied to DAT-555.
    • Book: “The Staff Engineer’s Path” by Tanya Reilly β€” relevant for your growing ownership of cross-team projects (MRR, Calendly, presales tooling). Good framework for “glue work” and technical leadership.
    page Created Mon, 25 May 2026 00:00:00 +0000
    • 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.md covering Source / Staging / Domain / Mart / Deprecated / Fixed layers.
      • New canonical mart: mart_growth__calendly_bookings (view β†’ fct_calendly_bookings, grain = event Γ— attendee Γ— rep) and mart_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_leads now joins dom_calendly__bookings directly on attendee_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).
    • WAITING Review PR CircleCI for anh Dong (prefect #397 / DAT-579 β€” sub-task of DAT-578 CircleCI pipeline revamp)
    • NOTE DAT-556 dbt test failure root cause analysis (Ampcode)
      • Failing test: unique_map_identities_zendesk_hubspot_zendesk_organization_id. Zendesk org 900032617243 (1win.pro) maps to 2 HubSpot companies because 1win.pro appears in all_domain_names of both HubSpot 5855457913 and 18891852445.
      • Root cause: IN UNNEST(all_domain_names) join in itg_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_skey work). Not yet actioned due to sick leave.
    • NOTE dbt deprecation policy clarified (Ampcode thread)
      • Phase 1: deprecate in code. Phase 2: remove the .sql file. Phase 3: drop the table.
      • Don’t sit between phase 2 and 3 β€” AML models reference BQ physical names; removing the .sql only stops refresh, leaving the table with stale data and silently misleading consumers. Either keep the wrapper alive or drop the table entirely.
    • 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.
    • 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.
    • 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_rates with 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).
    • 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.
    • 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.
    page Created Mon, 25 May 2026 00:00:00 +0000
  • Weekly Report β€” Apr 27 – May 3, 2026 (friday mode)

    Two-holiday short week (Thu Apr 30 Reunification Day + Fri May 1 Labour Day). Effective workdays = Mon/Tue/Wed for Holistics work; Sat/Sun spent on Smartclass releases and reading. Net: shipped Calendly BI rollout + tenant-lookup fix on the Holistics side, and two Smartclass releases (v0.4, v0.4.5) on personal side. Next week’s MRR exchange-rate work is still zero-progress (3-week carry-over).

    page Created Mon, 25 May 2026 00:00:00 +0000
  • Weekly Report β€” Apr 29 – May 8, 2026 (friday mode)

    First full 5-workday week after W18 holidays. Big internal closure: Lead Funnel by Sales Motion (DAT-560) shipped β€” DAT-561/562/563/564 all closed May 8, ending a 5-week carry-over that had been blocked on Calendly. Big presales loss: [[Showbie]] went to Omni; learning synthesis captured. MRR exchange rate (DAT-576) still NOT STARTED β€” now 4-week carry-over and being treated as a restart in W20: Hieu left and most implementation context is gone, so W20 Mon AM is recovery + scoping (not implementation), with a Wed-EOD escalation gate to anh Triet. CircleCI dbt PR #858 still open (cherry-pick dbt#861 merged). DAT-555 closed for real this week. Tooling week was strong: Holistics MCP, amp plugin for MCP error logging, slackcli, caveman skill, RTK install.

    page Created Mon, 25 May 2026 00:00:00 +0000
  • Weekly Report β€” May 11 – May 17, 2026 (friday mode)

    Steady throughput week. Big wins: CircleCI PR review marathon finished (rounds 2–4, prefect#400 + dbt#858 closed), [[BuyCo]] custom theme rolled out on Volumes dashboard, Power BI playbook draft started for BuyCo onboarding (Tue May 19). Khai To’s 2-way sync CLI shipped β€” unblocks the local-dev demo video (4-week WAITING cleared). MRR exchange rate (DAT-576) still NOT STARTED β€” now 5-week carry-over: Mon AM recovery slot lost again to CircleCI close-out, week absorbed by BuyCo theme + Datacubed dashboard fix + Power BI prep. Honest call: needs hard escalation in next 1-on-1. Tooling: rg/grep + rtk fix, personal finance app rental-affordability simulation. Weekend = VCT Pacific watching + travel (no H1 self-reflection done β€” sliding W21).

    page Created Mon, 25 May 2026 00:00:00 +0000