<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Page on lelouvincx's second brain</title><link>https://secondbrain.lelouvincx.com/tags/page/</link><description>Recent content in Page on lelouvincx's second brain</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 25 May 2026 06:02:25 +0000</lastBuildDate><atom:link href="https://secondbrain.lelouvincx.com/tags/page/index.xml" rel="self" type="application/rss+xml"/><item><title>[dblineage] Gathering User Data</title><link>https://secondbrain.lelouvincx.com/post/pages/dblineage-gathering-user-data/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/dblineage-gathering-user-data/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://www.reddit.com/r/dataengineering/comments/1hq9dwl/complexity_of_data_transformations_and_lineage">https://www.reddit.com/r/dataengineering/comments/1hq9dwl/complexity_of_data_transformations_and_lineage&lt;/a>
&lt;ul>
&lt;li>If you’re working with data as a primary focus, part of the job (a big one) is documenting what you’re doing and validating what you touch before shipping it.&lt;/li>
&lt;li>I’m confident that my systems are and remain correct because I confirm the state of things before starting new work and document what I did, it adds like an hour to a project.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.reddit.com/r/dataengineering/comments/10usa5i/looking_for_an_opensource_data_lineage_app_where/">https://www.reddit.com/r/dataengineering/comments/10usa5i/looking_for_an_opensource_data_lineage_app_where/&lt;/a>
&lt;ul>
&lt;li>Context: company has been documenting all its data objects manually and has a large csv explicitly showing each data object and its predescessor/s. These aren&amp;rsquo;t just the standard database/workflow/dashboard objects; these include things like power automate scripts. I&amp;rsquo;m just &lt;strong>looking for a good way to show everything in a map, visualize them, and navigate through their connections properly&lt;/strong>) At this point, I&amp;rsquo;ll even be happy with a pure visualization engine, like for instance if I can repurpose &lt;a href="https://github.com/kedro-org/kedro-viz">kedro-viz&lt;/a> or &lt;a href="https://docs.getdbt.com/docs/build/python-models">dbt&amp;rsquo;s&lt;/a> lineage visualizer so that it can take a csv or json of object relationships as an input. Or even a custom power BI visualization or python graph frontend would be fine, but I can&amp;rsquo;t seem to see one that works. I&amp;rsquo;d also be happy if any of the aforementioned lineage tools I mentioned above have this functionality and I just missed it.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.reddit.com/r/dataengineering/comments/1ba4g7v/how_to_diagram_sql_queries/">https://www.reddit.com/r/dataengineering/comments/1ba4g7v/how_to_diagram_sql_queries/&lt;/a>
&lt;ul>
&lt;li>Love dbdiagram :) I’m also using dbdocs as a light-weight data catalog instead of plain dbt docs. While I do find dbt docs useful for data lineage, I&amp;rsquo;ve discovered that I can achieve the same functionality through my dbt core setup using the dbt Power User VSCode extension. And dbdocs fill in the gaps: ERD, table metadata, easy to deploy, shareable,… almost cover 90% of my needs
&lt;ul>
&lt;li>=&amp;gt; implying dbdocs isn’t the lineage surface&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.reddit.com/r/SQL/comments/nxbtxb/tools_to_draw_data_lineage/">https://www.reddit.com/r/SQL/comments/nxbtxb/tools_to_draw_data_lineage/&lt;/a>
&lt;ul>
&lt;li>Good for data models and showing direct relationships between tables, but it doesn&amp;rsquo;t show data flows. When you visualize data flows, you want to see data from which table ends up where, it&amp;rsquo;s different than &amp;ldquo;Column X is an FK to Column Y&amp;rdquo;&lt;/li>
&lt;li>Will dbdiagram be possible to show how several columns are being transformed to one column?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.reddit.com/r/dataengineering/comments/1kyi6hx/what_do_you_use_for_lineage_and_why">https://www.reddit.com/r/dataengineering/comments/1kyi6hx/what_do_you_use_for_lineage_and_why&lt;/a>
&lt;ul>
&lt;li>i&amp;rsquo;ve used a bunch of these. real talk: data lineage is overrated at early stages &amp;amp; often overcomplicated. when ur team is &amp;lt; 10, physical lineage diagrams on a whiteboard + good dbt docs get you 80% there. we started with DBT lineage for our first year which did the job, then built custom lineage in Preswald when we needed more flexibility (needed to include non-dbt systems). the problem with most enterprise lineage tools is they force you into their ecosystem - great for huge teams with dedicated resources, massive overkill for startups. your investment should match your problems - if ur just trying to debug why a dashboard broke, dbt docs are prob fine. if ur trying to comply with SOX, yea get OpenLineage or something heavy duty.&lt;/li>
&lt;li>Hey , i also want an open source tool for automated data lineage for my company which we can integrate in our product which is a data security product . I am going through openmetadata , but finding it difficult . Can you suggest any lightweight and easy to use tool which is open source ? and which can be used for automated lineage . I went through many tools online like DataHub , Collate , Informatica , etc . Most sites and GPTs suggested to use OpenMetaData. WHat is your recommendation .&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.reddit.com/r/dataengineering/comments/1ijr4jd/what_data_lineage_tools_do_you_use_and_what_makes/">https://www.reddit.com/r/dataengineering/comments/1ijr4jd/what_data_lineage_tools_do_you_use_and_what_makes/&lt;/a>
&lt;ul>
&lt;li>I&amp;rsquo;ve been working with OpenLineage lately and I like it a lot. It&amp;rsquo;s an open standard for collecting lineage data. Great community and they are very open to PRs and new features. Not a ton of integrations right now, but they have most of the big ones.&lt;/li>
&lt;li>I&amp;rsquo;ve been looking closely at DataHub for awhile now, and I think I&amp;rsquo;ll be using in coming projects. It&amp;rsquo;s an open-source tool with a managed version by Acryl. It does a bit more than just data lineage too, so may be overkill for what you&amp;rsquo;re after.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>What are the short comes of current data lineage tools?
&lt;ul>
&lt;li>Do the current lineage tools address data audit needs?&lt;/li>
&lt;li>&lt;a href="https://www.reddit.com/r/dataengineering/comments/1gjzsu7/what_are_the_short_comes_of_current_data_lineage/">https://www.reddit.com/r/dataengineering/comments/1gjzsu7/what_are_the_short_comes_of_current_data_lineage/&lt;/a>&lt;/li>
&lt;li>The field is pretty crowded and most of the data platforms are already providing lineage out of the box.&lt;/li>
&lt;li>Make it our own, with thst said 90% of our platform is custom pyspark code running on aws, databriks or azure. No comercial offer does cover that , but they could :). We hocked the backend into our internal llm bot, so not user can just slack into it. No commercial would letvyou do that, they would sell it to you as a addon. Plus we are global brand and we shared our code with other sister brands and we all exchange internal features.&lt;/li>
&lt;li>Bugs everywhere.&lt;/li>
&lt;li>We use Collibra for snowflake lineage. Coverage of sql syntax is ok but it’s very buggy and hard to manage. No proper APIs for lineage means manual management. Other issue is it works on scraping the query logs in snowflake for a period of time so it can produce confusing results after code changes.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Is data lineage one of the most underrated thing in DE?
&lt;ul>
&lt;li>&lt;a href="https://www.reddit.com/r/dataengineering/comments/1g8k2h5/is_data_lineage_one_of_the_most_underrated_thing/">https://www.reddit.com/r/dataengineering/comments/1g8k2h5/is_data_lineage_one_of_the_most_underrated_thing/&lt;/a>&lt;/li>
&lt;li>I worked for multiple companies as a DE and zero of them applied anything related to data lineage. Whenever my team mentions it would be important to do this it gets ignored.&lt;/li>
&lt;li>If they don&amp;rsquo;t do documentation, I wouldn&amp;rsquo;t even expect have of them to know what data lineage even is.&lt;/li>
&lt;li>Data lineage is one of those things no one thinks they need&amp;hellip; until they do. Like when you are debugging why a multi-system process or ETL isn&amp;rsquo;t working. The question of, &amp;ldquo;where did this data come from&amp;rdquo; comes up and now you are wasting time trying to find that out. It really sucks if it passes through multiple systems or multiple formats. (ODBC and JDBC are really sneaky like that.)
Be the person that documents their stuff and allocate time for it. It will be an uphill battle because documentation is one of the first things thrown overboard when the inevitable money/time crunch shows up.&lt;/li>
&lt;li>This question keeps me up at night, since I’m in the process of building a POC database engine that has cell-level data lineage, forwards and backwards.
I’ve been in data over 20 years. Most in DE supporting analytics. I’ve NEVER been somewhere that had robust data lineage. It drove me nuts enough to spend years dreaming up a robust solution.
Why don’t places care? As someone who wants to open source something and launch a business around it, it drives me nuts. Am I crazy for finding data lineage fundamental?
I don’t think the current gen of tools are there. I don’t think OpenLineage is good enough. It’s progress. (I guess that’s why I’m building my own.) I haven’t used Dagster but anything that doesn’t preserve transaction logs in a way that syncs up with time travel in a consistent way, to me, just isn’t good enough.
The major downside of my approach is you only get lineage inside my engine. That’s probably a non-starter for many places, especially those big enough to be early adopters. IDK.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.reddit.com/r/dataengineering/comments/1g3e20y/data_lineage/">https://www.reddit.com/r/dataengineering/comments/1g3e20y/data_lineage/&lt;/a>
&lt;ul>
&lt;li>How do you all like to track dataset lineages? Dependencies between tables, sources/sinks per job, something like Kafka to a Spark written Iceberg table joined with another table to eventually landing in Snowflake… etc?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.reddit.com/r/dataengineering/comments/1cvmerf/data_lineage_tools/">https://www.reddit.com/r/dataengineering/comments/1cvmerf/data_lineage_tools/&lt;/a>
&lt;ul>
&lt;li>OP is describing the exact use case for OpenLineage, but it&amp;rsquo;s hard to estimate how complete their lineage graph would be without knowing more about their tooling. OL will give you column lineage for Spark and Airflow jobs. Dbt is supported, as well.&lt;/li>
&lt;li>There are open source catalogs, like DataHub, but data lineage in it is extremely limited. So they do exist, but most likely will not suit your needs. Then you have paid products like Informaticas data catalog, which is out of scope. They support more or less everything.&lt;/li>
&lt;li>Use SQLMesh, it has lineage, diffs, etc.&lt;/li>
&lt;li>I was pushing for OpenMetadata at my last job, lineage being one of the selling points. I never got it deployed.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.reddit.com/r/dataengineering/comments/1iddujm/data_lineage_and_quality_tool/">https://www.reddit.com/r/dataengineering/comments/1iddujm/data_lineage_and_quality_tool/&lt;/a>
&lt;ul>
&lt;li>I&amp;rsquo;m exploring OpenMetadata for data quality, governance, and lineage. While I&amp;rsquo;m not necessarily opposed to containerized deployments, I&amp;rsquo;m prioritizing ease of use, especially when it comes to automated data lineage and quality testing. I&amp;rsquo;m looking for alternative tools that might be more convenient to work with in these specific areas. Are there any tools that are considered &amp;ldquo;better&amp;rdquo; than OpenMetadata in terms of simplifying the process of setting up and managing automated data lineage and quality tests? Any recommendations would be greatly appreciated!&lt;/li>
&lt;li>SQLMesh is a solid tool for managing transformations, plus you get column level lineage of your models as a part of the open source offering.&lt;/li>
&lt;li>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>[Internal] Customers' MRR (Exchange Rate)</title><link>https://secondbrain.lelouvincx.com/post/pages/internal-customers-mrr-exchange-rate/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/internal-customers-mrr-exchange-rate/</guid><description>&lt;ul>
&lt;li>
&lt;h2 id="goal">Goal&lt;/h2>
&lt;ul>
&lt;li>Resolve discrepancies between MRR (Monthly Recurring Revenue) numbers on &lt;strong>bi.holistics.io&lt;/strong> and &lt;strong>Zoho Billing&lt;/strong>, and establish a single source of truth for customer MRR.&lt;/li>
&lt;li>Stakeholders: Data Team, RevOps (Quinn, Arden, Vincent), Finance (Sriram).&lt;/li>
&lt;li>&lt;strong>Why it matters&lt;/strong>: MRR is the core metric for revenue planning (see [[Lead Funnel by Sales Motion]]&amp;rsquo;s $330K target). If the number is wrong, every downstream decision — pricing analysis, churn measurement, forecasting — is wrong.&lt;/li>
&lt;li>&lt;strong>Decision-making questions&lt;/strong>:
&lt;ul>
&lt;li>Why does MRR on bi.holistics.io differ from Zoho Billing?&lt;/li>
&lt;li>Which exchange rate methodology should we use for multi-currency subscriptions?&lt;/li>
&lt;li>How do we handle customers with multiple tenants or multi-region setups?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="mrr-definition">MRR Definition&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>MRR&lt;/strong> = sum of all active subscriptions&amp;rsquo; &lt;strong>monthly recurring revenue&lt;/strong>.&lt;/li>
&lt;li>Zoho&amp;rsquo;s base currency: Singapore Dollar (SGD).&lt;/li>
&lt;li>Per-subscription calculation: &lt;code>subscription.mrr / subscription.exchange_rate&lt;/code>&lt;/li>
&lt;li>&lt;strong>Customer&lt;/strong> = a HubSpot Company (one company can have multiple Holistics tenants and multiple Zoho subscriptions).&lt;/li>
&lt;li>&lt;strong>Primary Tenant&lt;/strong>: for customers with multi-region or multi-tenant setups, the pipeline must select one primary tenant. This is the core identity resolution challenge.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="data-architecture">Data Architecture&lt;/h2>
&lt;ul>
&lt;li>
&lt;pre tabindex="0">&lt;code class="language-mermaid" data-lang="mermaid">flowchart TD
 subgraph Sources[&amp;#34;Data Sources&amp;#34;]
 Holistics[&amp;#34;Holistics Backend DB\n(Tenants, Users, Trial Submissions)&amp;#34;]
 Zoho[&amp;#34;Zoho Billing\n(Subscriptions, Invoices, Exchange Rates)&amp;#34;]
 HubSpot[&amp;#34;HubSpot CRM\n(Companies)&amp;#34;]
 end

 subgraph Pipeline[&amp;#34;dbt Pipeline&amp;#34;]
 stg_tenants[&amp;#34;stg_holistics__tenants&amp;#34;]
 stg_users[&amp;#34;stg_holistics__users&amp;#34;]
 stg_trials[&amp;#34;stg_holistics__trial_submissions&amp;#34;]
 stg_zoho[&amp;#34;stg_zoho__subscriptions&amp;#34;]
 stg_hs[&amp;#34;stg_hubspot__companies&amp;#34;]

 domain[&amp;#34;Domain Mapping\n(tenant → domain_name)&amp;#34;]
 customer_id[&amp;#34;itg_mappings__customer_identities\n(Holistics ↔ Zoho ↔ HubSpot)&amp;#34;]
 dim_customer[&amp;#34;dim_customers\n(primary tenant selection)&amp;#34;]
 fct_mrr[&amp;#34;fct_mrr\n(MRR calculation)&amp;#34;]
 end

 subgraph Issues[&amp;#34;🔴 Known Issues (9 problems)&amp;#34;]
 I1[&amp;#34;1.1/1.2: Exchange Rate Errors\n(static rate, multi-step conversion)&amp;#34;]
 I2[&amp;#34;2.1-2.4: Wrong Tenant↔Company Mapping\n(region bug, domain mismatch,\nduplicates, multi-domain)&amp;#34;]
 I3[&amp;#34;3.1/3.2: Wrong Tenant↔Zoho Mapping\n(manual errors, multi-tenant sub)&amp;#34;]
 I4[&amp;#34;4: Active but Unpaid Customers\n(Zoho subscription logic bug)&amp;#34;]
 end

 subgraph Output[&amp;#34;Reports&amp;#34;]
 bi_h[&amp;#34;bi.holistics.io\nMRR Overview Dashboard&amp;#34;]
 monitor[&amp;#34;Customer Identity\nMonitoring Dashboard&amp;#34;]
 end

 Holistics --&amp;gt; stg_tenants &amp;amp; stg_users &amp;amp; stg_trials
 Zoho --&amp;gt; stg_zoho
 HubSpot --&amp;gt; stg_hs

 stg_tenants &amp;amp; stg_users &amp;amp; stg_trials --&amp;gt; domain
 domain --&amp;gt; customer_id
 stg_hs --&amp;gt; customer_id
 stg_zoho --&amp;gt; customer_id
 customer_id --&amp;gt; dim_customer
 dim_customer --&amp;gt; fct_mrr
 fct_mrr --&amp;gt; bi_h
 customer_id --&amp;gt; monitor

 I1 -.-&amp;gt;|affects| fct_mrr
 I2 -.-&amp;gt;|affects| customer_id
 I3 -.-&amp;gt;|affects| customer_id
 I4 -.-&amp;gt;|affects| stg_zoho
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;h3 id="data-sources">Data Sources&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>HubSpot CRM&lt;/strong>: Companies.&lt;/li>
&lt;li>&lt;strong>Holistics Backend DB&lt;/strong>: Tenants, Users, Trial Submissions.&lt;/li>
&lt;li>&lt;strong>Zoho Billing&lt;/strong>: Zoho Customers, Subscriptions, Payments, Invoices, Exchange Rates.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="dbt-pipeline-flow">dbt Pipeline Flow&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Staging&lt;/strong>: &lt;code>stg_holistics__tenants&lt;/code>, &lt;code>stg_holistics__users&lt;/code>, &lt;code>stg_zoho__subscriptions&lt;/code>, &lt;code>stg_hubspot__companies&lt;/code>&lt;/li>
&lt;li>&lt;strong>Mapping&lt;/strong>: &lt;code>itg_mappings__customer_identities&lt;/code> (Holistics ↔ Zoho ↔ HubSpot)&lt;/li>
&lt;li>&lt;strong>Dimensions&lt;/strong>: &lt;code>dim_customers&lt;/code> (primary tenant selection logic)&lt;/li>
&lt;li>&lt;strong>Facts&lt;/strong>: &lt;code>fct_mrr&lt;/code> (final MRR calculation)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="identity-resolution">Identity Resolution&lt;/h3>
&lt;ul>
&lt;li>Currently relies on &lt;code>domain_name&lt;/code> (extracted from tenant uname or email). This is fragile.&lt;/li>
&lt;li>Proposed long-term fix: a &lt;strong>canonical &lt;code>customer_skey&lt;/code>&lt;/strong> shared across HubSpot and Zoho.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="er-diagram">ER Diagram&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://dbdiagram.io/d/Concepts-691ab0786735e111701b0ab4">dbdiagram.io — Concepts&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="key-datasets--dashboards">Key Datasets &amp;amp; Dashboards&lt;/h3>
&lt;ul>
&lt;li>Datasets:
&lt;ul>
&lt;li>&lt;a href="https://bi.holistics.io/datasets/21384-dts-100-customer-and-revenue">DTS 100: Customer and Revenue&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Dashboards:
&lt;ul>
&lt;li>MRR Overview: &lt;a href="https://bi.holistics.io/dashboards/v4/28300-0-mrr-overview">https://bi.holistics.io/dashboards/v4/28300-0-mrr-overview&lt;/a>&lt;/li>
&lt;li>Customer Identity Monitoring: &lt;a href="https://bi.holistics.io/dashboards/v4/45480-customer-identity-monitoring">https://bi.holistics.io/dashboards/v4/45480-customer-identity-monitoring&lt;/a>&lt;/li>
&lt;li>MRR Bucket Breakdown: &lt;a href="https://bi.holistics.io/dashboards/v4/41188-adhoc-mrr-bucket-breakdown">https://bi.holistics.io/dashboards/v4/41188-adhoc-mrr-bucket-breakdown&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="exchange-rate-decision">Exchange Rate Decision&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Base currency&lt;/strong>: SGD (Zoho uses only 1).&lt;/li>
&lt;li>&lt;strong>Reporting currency&lt;/strong>: USD (agreed upon, &amp;gt;40% of revenue is in USD, USD is more recognizable and comparable).&lt;/li>
&lt;li>&lt;strong>Problem&lt;/strong>: pipeline previously used static rates; Zoho uses per-transaction rates set at plan creation time.&lt;/li>
&lt;li>&lt;strong>Agreed approach&lt;/strong> (Option 2): use &lt;strong>live rates&lt;/strong> (e.g., Google Finance / ECB) — specifically the current/today&amp;rsquo;s rate for a &amp;ldquo;what is it worth now&amp;rdquo; view.&lt;/li>
&lt;li>&lt;strong>Caveat&lt;/strong>: requires careful handling to avoid FX noise in historical growth metrics.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="identified-problems--root-causes">Identified Problems &amp;amp; Root Causes&lt;/h2>
&lt;ul>
&lt;li>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">Category&lt;/th>
 &lt;th style="text-align: left">Problem&lt;/th>
 &lt;th style="text-align: left">Root Cause&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">&lt;strong>Exchange Rate&lt;/strong>&lt;/td>
 &lt;td style="text-align: left">1.1/1.2: Inaccuracies&lt;/td>
 &lt;td style="text-align: left">Pipeline uses static rates; Zoho uses per-transaction rates set at plan creation&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;strong>HubSpot Mapping&lt;/strong>&lt;/td>
 &lt;td style="text-align: left">2.1–2.4: Mapping Bugs&lt;/td>
 &lt;td style="text-align: left">Missing regions, domain mismatches (e.g., &lt;code>raft.ai&lt;/code> vs &lt;code>vector.ai&lt;/code>), duplicate HubSpot companies&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;strong>Zoho Mapping&lt;/strong>&lt;/td>
 &lt;td style="text-align: left">3.1/3.2: Link Errors&lt;/td>
 &lt;td style="text-align: left">Manual errors and system inability to handle multi-tenant subscriptions&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;strong>Subscription Logic&lt;/strong>&lt;/td>
 &lt;td style="text-align: left">4: Unpaid Actives&lt;/td>
 &lt;td style="text-align: left">Zoho fails to re-activate tenants after past-due payments are settled&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="edge-cases">Edge Cases&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Multi-tenant customers&lt;/strong>: Datacubed — one Zoho account for two tenants.&lt;/li>
&lt;li>&lt;strong>Multi-region conflicts&lt;/strong>: Kognity — SG database shows expired trial while US database shows active paying status.&lt;/li>
&lt;li>&lt;strong>Domain mismatches&lt;/strong>: Vector AI — HubSpot uses &lt;code>vector.ai&lt;/code>, app uses &lt;code>raft.ai&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="technical-fixes">Technical Fixes&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>PR #812&lt;/strong>: Fixed missing regions in manual mapping.&lt;/li>
&lt;li>&lt;strong>PR #852&lt;/strong>: Implemented hard-coded patches for edge cases:
&lt;ul>
&lt;li>&lt;code>map_holistics_zoho.csv&lt;/code>: maps specific tenants (e.g., Datacubed) to shared Zoho accounts.&lt;/li>
&lt;li>&lt;code>partner_programs.csv&lt;/code>: excludes freemium plan IDs from MRR.&lt;/li>
&lt;li>&lt;code>dom_holistics__internal_tenants.sql&lt;/code>: filters out internal Holistics testing tenants.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="progress">Progress&lt;/h2>
&lt;ul>
&lt;li>DONE Identify root causes of MRR discrepancies&lt;/li>
&lt;li>DONE Agree on exchange rate methodology (Option 2 — live rates)&lt;/li>
&lt;li>DONE Fix missing regions in manual mapping (PR #812)&lt;/li>
&lt;li>DONE Implement hard-coded patches for edge cases (PR #852)&lt;/li>
&lt;li>DONE Set up Customer Identity Monitoring dashboard&lt;/li>
&lt;li>TODO Replace static exchange rates with live rate ingestion — &lt;a href="https://linear.app/holistics/issue/DAT-576">DAT-576&lt;/a> (for quick win)&lt;/li>
&lt;li>TODO Implement canonical &lt;code>customer_skey&lt;/code> for long-term identity resolution&lt;/li>
&lt;li>TODO Handle Zoho re-activation bug for past-due subscriptions&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="references">References&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://ampcode.com/threads/T-019d8662-df11-70df-8b23-67a21a7cc848">1-Ampcode (DE-187 investigation)&lt;/a> &lt;a href="https://www.notion.so/holistics/326f89dc7e49800ebdd3e0f282391746">2-Notion (Data alignment)&lt;/a> &lt;a href="https://dbdiagram.io/d/Concepts-691ab0786735e111701b0ab4">3-ER Diagram&lt;/a> &lt;a href="https://bi.holistics.io/dashboards/v4/28300-0-mrr-overview">4-Dashboard MRR Overview&lt;/a> &lt;a href="https://bi.holistics.io/dashboards/v4/45480-customer-identity-monitoring">5-Dashboard Identity Monitoring&lt;/a> &lt;a href="https://linear.app/holistics/issue/DAT-177">6-Linear&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>[Internal] Identity Resolution</title><link>https://secondbrain.lelouvincx.com/post/pages/internal-identity-resolution/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/internal-identity-resolution/</guid><description>&lt;ul>
&lt;li>TOGA case:
&lt;ul>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/05/b9dc56ec029f34bc9c15156003755c85.png">https://media.secondbrain.lelouvincx.com/2026/05/b9dc56ec029f34bc9c15156003755c85.png&lt;/a>&lt;/li>
&lt;li>&lt;a href="T-019e3e3f-896e-769c-b8da-f52a061492e1">Ampcode&lt;/a>&lt;/li>
&lt;li>2 HubSpot companies map to one tenant (&lt;code>SG-2163&lt;/code>)&lt;/li>
&lt;li>
&lt;pre tabindex="0">&lt;code>[{&amp;#39;hubspot_company_id&amp;#39;: 4018874875, &amp;#39;all_domain_names&amp;#39;: [togltechnology.com, togalimited.com]}, {&amp;#39;hubspot_company_id&amp;#39;: 10207389977, &amp;#39;all_domain_names&amp;#39;: [togalimited.com]}]
&lt;/code>&lt;/pre>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>1-on-1 Planning - 2026-04-13</title><link>https://secondbrain.lelouvincx.com/post/pages/1-on-1-planning---2026-04-13/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/1-on-1-planning---2026-04-13/</guid><description>&lt;h2 id="plan-for-next-1-on-1">Plan for Next 1-on-1&lt;/h2>
&lt;h3 id="key-topics-to-discuss-with-manager">Key topics to discuss with manager&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>MRR project transfer&lt;/strong> — status update after handoff from anh Hieu (due Apr 15). Any open questions or risks from the transfer.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Presales capacity &amp;amp; portfolio review&lt;/strong> — currently active on 5+ customer accounts (Showbie, Jonas Chorum, Basata, Innerspace, Superbexperience). Request alignment on which accounts to prioritize vs. hand off. Discuss whether the embed demo app should become an official presales tool.&lt;/p></description></item><item><title>1-on-1 Planning - 2026-Apr 13, 2026 – May 20, 2026</title><link>https://secondbrain.lelouvincx.com/post/pages/1-on-1-planning---2026-apr-13-2026--may-20-2026/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/1-on-1-planning---2026-apr-13-2026--may-20-2026/</guid><description>&lt;h3 id="plan-for-next-1-on-1-covering-apr-13--may-20-2026">Plan for Next 1-on-1 (covering Apr 13 – May 20, 2026)&lt;/h3>
&lt;blockquote>
&lt;p>Meeting context: anh Hieu left this period; presales surged to dominant project; DAT-576 MRR exchange rate is 5-week carry-over. Two backlog drops on the table. Bring 3 prioritization options for DAT-576 — this is a &lt;strong>prioritization&lt;/strong> ask, not a scheduling ask.&lt;/p>&lt;/blockquote>
&lt;ul>
&lt;li>&lt;strong>P1 &amp;ndash; Must Discuss&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>DAT-576 MRR exchange rate — re-scope or re-assign.&lt;/strong> 5-week carry-over. Anh Hieu left → context lost → restart. Bring 3 options: (a) re-scope to 1-week-effort presales-compatible version, (b) hand off to teammate whose week isn&amp;rsquo;t presales-loaded, (c) formally de-prioritize until presales calms post-BuyCo close. &lt;strong>Decision needed in this meeting&lt;/strong> — do not commit a 6th week of &amp;ldquo;Mon AM blocks.&amp;rdquo; &lt;a href="https://linear.app/holistics/issue/DAT-576">Linear DAT-576&lt;/a>.&lt;/li>
&lt;li>&lt;strong>Formally drop DAT-524&lt;/strong> Fix excluding internal Zoho test accounts — 14-week carry-over. &lt;strong>Fix scope is trivial&lt;/strong> — add &lt;code>const_zoho_internal_customers&lt;/code> filter to &lt;code>stg_zoho__events&lt;/code> (other Zoho staging models already apply it). Arden already confirmed Quinn US test + Holistics SGD test accounts are the missing ones. Owner: nobody since W7. &lt;strong>Decision: do it now (~30 min) or drop formally.&lt;/strong> &lt;a href="https://linear.app/holistics/issue/DAT-524">Linear DAT-524&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales / Career&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Career lane check-in&lt;/strong> — IC engineering vs solutions/presales hybrid vs tech lead. Performance review feedback (Mar) validated the hybrid direction. Anh Thanh (chief engineer) approaching me re: AI-AQL = solutions-engineering signal. BuyCo onboarding 4 solo = trust cashed. Want to confirm the current lane is intentional, not drift.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 &amp;ndash; Should Discuss&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Showbie loss synthesis&lt;/strong> — first lost deal. Lost to Omni (HubSpot Closed Lost recorded, Erin reply). Erin cited &amp;ldquo;overall functionality within the tool&amp;rdquo; before message truncated. &lt;strong>Action&lt;/strong>: re-pull full Slack thread, then chase Harsha for personal feedback (apply &lt;em>The Mom Test&lt;/em> — ask about specific past PoC moments, not abstract pain points). Share 1-page learning note focused on Looker-migration moat + security risk perception. Owe this for the team&amp;rsquo;s next deal.&lt;/li>
&lt;li>&lt;strong>BuyCo onboarding 4 follow-ups owed by me&lt;/strong> (from May 19 debrief): share PBI migration documentation publicly, publish migration skill as customer-facing package, send HTML action button samples to Rodolphe. Decision timeline tight — Xairo + Luc evaluating next week, GoodData competing.&lt;/li>
&lt;li>&lt;strong>Power BI playbook → &amp;ldquo;presales-owned reusable artifact&amp;rdquo; template?&lt;/strong> BuyCo onboarding 4 used &lt;code>conceptual-differences.md&lt;/code> + &lt;code>migration-overview.md&lt;/code>. Reusable. Should it become the template for future migration-flavored deals (Tableau, Looker, Sigma)?&lt;/li>
&lt;li>&lt;strong>Presales team shared status board&lt;/strong> — me + anh Dong + Chukwudi + Mario have no shared customer-status surface. Context scattered across Slack threads + individual notes. Propose Notion DB or Linear project.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Heuristics upstream to team docs&lt;/strong> — &lt;code>dbt deprecation 3-phase rule&lt;/code> should land in holistics/dbt contributing guide. &lt;code>Customer-comms recipe pattern&lt;/code> should land in presales/CS onboarding doc. Ask: is this welcome, or noise?&lt;/li>
&lt;li>&lt;strong>Backlog drop as standing 1-on-1 agenda item&lt;/strong> — &amp;ldquo;what&amp;rsquo;s the oldest item in my backlog, and should it still be there?&amp;rdquo; Process suggestion.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 &amp;ndash; Nice to Discuss&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Health Rules + Principles pages&lt;/strong> — converted W17 sick week + W20 badminton signal into rules. Sharing the pattern in case useful for team retros.&lt;/li>
&lt;li>&lt;strong>Personal Finance RFC-0002&lt;/strong> — used Personal Finance app to make data-driven house-move decision. Side-project ROI signal worth sharing.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>AI tooling&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Harness Engineering&lt;/strong> (Mitchell Hashimoto) — built &lt;a href="file:///Users/lelouvincx/.config/amp/logs/holistics-mcp-errors.jsonl">amp plugin for Holistics MCP error logging&lt;/a>. Plan: monthly harness audit. Worth doing as team practice?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Decision-class items (manager input required)&lt;/strong>
&lt;ul>
&lt;li>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Item&lt;/th>
 &lt;th>Question&lt;/th>
 &lt;th>Default if no decision&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>DAT-576 MRR&lt;/td>
 &lt;td>Re-scope, hand off, or de-prioritize?&lt;/td>
 &lt;td>Continue slipping — bad outcome&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DAT-524 Zoho&lt;/td>
 &lt;td>Drop or assign?&lt;/td>
 &lt;td>Drop&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Career lane&lt;/td>
 &lt;td>Confirm hybrid direction?&lt;/td>
 &lt;td>Continue current pattern&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Heuristics upstream&lt;/td>
 &lt;td>Welcome or noise?&lt;/td>
 &lt;td>Keep personal&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Focus topics if time permits&lt;/strong>
&lt;ul>
&lt;li>Mon: DAT-576 + DAT-524 (decision-class items first)&lt;/li>
&lt;li>Career lane check-in (10 min)&lt;/li>
&lt;li>Showbie synthesis sharing (5 min)&lt;/li>
&lt;li>Heuristics upstream (5 min)&lt;/li>
&lt;li>Personal: Health Rules pattern (skip if rushed)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Carry-over watch (since last 1-on-1)&lt;/strong>
&lt;ul>
&lt;li>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Item&lt;/th>
 &lt;th>Since&lt;/th>
 &lt;th>Weeks&lt;/th>
 &lt;th>Action&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>DAT-576 MRR exchange rate&lt;/td>
 &lt;td>W16 (Apr 13)&lt;/td>
 &lt;td>&lt;strong>5&lt;/strong>&lt;/td>
 &lt;td>Escalate as prioritization question&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DAT-524 exclude internal Zoho accounts&lt;/td>
 &lt;td>W7 (Feb 9)&lt;/td>
 &lt;td>&lt;strong>14&lt;/strong>&lt;/td>
 &lt;td>Drop formally&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Showbie loss synthesis&lt;/td>
 &lt;td>W19 (May 4)&lt;/td>
 &lt;td>2&lt;/td>
 &lt;td>Owed — close this week&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>H1 self-reflection + CV refresh&lt;/td>
 &lt;td>W19 (May 4)&lt;/td>
 &lt;td>2&lt;/td>
 &lt;td>Lock May 23–24&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Wamly onboarding&lt;/td>
 &lt;td>W18 (Apr 27)&lt;/td>
 &lt;td>3&lt;/td>
 &lt;td>Customer-side block — Chukwudi re-engaging&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Metrics to bring (period Apr 13 – May 20)&lt;/strong>
&lt;ul>
&lt;li>Customer interactions: 8+ across BuyCo, Jonas Chorum, Basata, Bicycle Transit, Enhance Fitness, PatientsKnowBest, Showbie, Wamly&lt;/li>
&lt;li>PRs merged: Calendly &lt;code>dbt #853&lt;/code>, &lt;code>internal-aml-project #78&lt;/code>, &lt;code>dbt #854&lt;/code>, &lt;code>dbt #858&lt;/code>, &lt;code>prefect #400&lt;/code>, &lt;code>dbt #860&lt;/code>, &lt;code>dbt #864&lt;/code>, &lt;code>dbt #867&lt;/code>, &lt;code>internal-aml-project #77&lt;/code>&lt;/li>
&lt;li>Carry-overs resolved: DAT-560 (Lead Funnel by Sales Motion, 5w), DAT-555 (&lt;code>fct_job_queue_performance&lt;/code>, 4w), DAT-283 (Calendly, 8w)&lt;/li>
&lt;li>Carry-overs lingering: DAT-576 (5w), DAT-524 (14w), demo video for local dev (5w, now unblocked)&lt;/li>
&lt;li>New artifacts: [[Health Rules]], [[Principles]], Power BI playbook (&lt;code>conceptual-differences.md&lt;/code> + &lt;code>migration-overview.md&lt;/code>), &lt;a href="https://holistics-embed-demo.pages.dev/">holistics-embed-demo&lt;/a> continuing&lt;/li>
&lt;li>Onboarding calls led: Jonas Chorum #2, BuyCo #4 (solo)&lt;/li>
&lt;li>Lost: Showbie → Omni&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Accessories That Make My Life Better</title><link>https://secondbrain.lelouvincx.com/post/pages/accessories-that-make-my-life-better/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/accessories-that-make-my-life-better/</guid><description>&lt;h3 id="gears">Gears&lt;/h3>
&lt;ul>
&lt;li>Keyboard: MelGeek O2 or Nuphy Air75&lt;/li>
&lt;li>Laptop: Macbook&lt;/li>
&lt;li>Mouse: Attach Shark X3&lt;/li>
&lt;li>Headphone: SkullCandy Hesh ANC&lt;/li>
&lt;li>Reading &amp;amp; Note: Kindle Scribe 2022&lt;/li>
&lt;li>
&lt;h3 id="softwares">Softwares&lt;/h3>
&lt;ul>
&lt;li>Alcove&lt;/li>
&lt;li>Better Display&lt;/li>
&lt;li>AlDente&lt;/li>
&lt;li>CleanShot X&lt;/li>
&lt;li>Youtube Premium (+ Youtube Music)&lt;/li>
&lt;li>Gemini&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="misc">Misc&lt;/h3>
&lt;ul>
&lt;li>Sleep Fold&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Add2Cart</title><link>https://secondbrain.lelouvincx.com/post/pages/add2cart/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/add2cart/</guid><description>&lt;h1 id="noticeable-calls">Noticeable calls&lt;/h1>
&lt;ul>
&lt;li>&lt;a href="https://copilot.clari.com/call/11644b50-8a66-4c36-a91b-e0ed635d3211">https://copilot.clari.com/call/11644b50-8a66-4c36-a91b-e0ed635d3211&lt;/a>&lt;/li>
&lt;li>
&lt;h1 id="metric-catalogue">Metric Catalogue&lt;/h1>
&lt;ul>
&lt;li>Base measures
&lt;ul>
&lt;li>&lt;strong>Recommended Retail Price&lt;/strong> (or RRP; synonym - Manufacturer Suggested Retail Price, MSRP): The price suggested by the manufacturer for retailers to sell a product.&lt;/li>
&lt;li>&lt;strong>Total SKUs&lt;/strong> (or Total Products): Count of SKUs.&lt;/li>
&lt;li>&lt;strong>Total Features&lt;/strong> (or Total Ad Items): Count of Features.&lt;/li>
&lt;li>&lt;strong>Retailer Price&lt;/strong> (or Selling Price): The retailer’s non-promotional shelf price for a product (within that retailer).&lt;/li>
&lt;li>&lt;strong>Promotional Price&lt;/strong>: The temporary, reduced price offered by a retailer for a product in a promotion.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Metrics (are built from measures)
&lt;ul>
&lt;li>&lt;strong>Current Price&lt;/strong>: If promo applied, &lt;code>current_price = promotional_price&lt;/code>, else &lt;code>current_price = rrp&lt;/code>
&lt;ul>
&lt;li>Current Price must track the Shelf Price because in mature retail markets (like Australia/UK/US), the &amp;ldquo;Standard Shelf Price&amp;rdquo; is often lower than RRP. If you default to RRP when no promo exists, you will artificially inflate the &amp;ldquo;Was Price,&amp;rdquo; making discounts look deeper than they are. The &lt;code>current_price&lt;/code> should always track the &lt;strong>Shelf Price&lt;/strong>, not the RRP, unless they happen to be identical.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Was Price&lt;/strong>: &lt;code>retailer_price&lt;/code>&lt;/li>
&lt;li>&lt;strong>Discount Percentage&lt;/strong>: Logic: &lt;code>1 - (current_price / NULLIF(was_price, 0))&lt;/code>&lt;/li>
&lt;li>&lt;strong>Discount Amount&lt;/strong>: &lt;code>was_price - current_price&lt;/code>&lt;/li>
&lt;li>&lt;strong>Retailer Lowest Price&lt;/strong>: The lowest single price point detected for a Retailer within the specific Start Date and End Date of the selected Advertisement. Logic: &lt;code>MIN(current_price)&lt;/code>&lt;/li>
&lt;li>&lt;strong>Average Discount Percentage&lt;/strong>: Logic: &lt;code>AVG(discount_pct)&lt;/code>&lt;/li>
&lt;li>&lt;strong>Average RRP&lt;/strong>: &lt;code>AVG(rrp)&lt;/code>&lt;/li>
&lt;li>&lt;strong>Average Promotional Price&lt;/strong>: &lt;code>AVG(promotional_price)&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Backlog</title><link>https://secondbrain.lelouvincx.com/post/pages/backlog/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/backlog/</guid><description>&lt;h1 id="a-work">A. Work&lt;/h1>
&lt;ul>
&lt;li>
&lt;h2 id="internal">Internal&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>TODO Handle multi-currency exchange rates for MRR&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Current pricing setup&lt;/p>
&lt;ul>
&lt;li>Zoho&amp;rsquo;s base currency = SGD. Plans are priced in SGD, exchange rate is hardcoded in Zoho (example, 1 EUR = 1.4 SGD).
&lt;ul>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/04/010ee2b4db27a9bc68da91d54a03a681.png">https://media.secondbrain.lelouvincx.com/2026/04/010ee2b4db27a9bc68da91d54a03a681.png&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Plans are created in Zoho Billing with prices in SGD (base currency). Zoho doesn&amp;rsquo;t allow creating products in EUR/USD directly.&lt;/li>
&lt;li>A manual exchange rate is set in Zoho (e.g., 1 EUR = 1.4 SGD).
&lt;ul>
&lt;li>Why? To prevent customers&amp;rsquo; purchase amount can potentially fluctuate over time, the team &lt;strong>does not use live rate in Zoho&lt;/strong>.&lt;/li>
&lt;li>Customers see stable local currency prices on their subscription.&lt;/li>
&lt;li>This is updated periodically (~yearly) to stay close to market rates.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The same plans are mirrored in Holistics App&amp;rsquo;s Tenant Admin.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Customer payment flow:&lt;/p></description></item><item><title>Backlog / Done</title><link>https://secondbrain.lelouvincx.com/post/pages/backlog___done/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/backlog___done/</guid><description>&lt;h1 id="done">Done&lt;/h1>
&lt;ul>
&lt;li>
&lt;p>DONE Unsub Contabo VPS due to unused&lt;/p>
&lt;/li>
&lt;li>
&lt;p>DONE Continue Cross-Model Calculation&lt;/p>
&lt;ul>
&lt;li>This may not be a good timing to do this. Should wait for the docs revamping project being in progress more than now (as of #2026-01-03 ).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>DONE Review AI sharing dashboard for Aurora&lt;/p>
&lt;ul>
&lt;li>Timeline:
&lt;ul>
&lt;li>Aurora&amp;rsquo;s request came in via support. Phuong (AI team) looped in the data team.&lt;/li>
&lt;li>Hieu investigated and found AI data lives in ClickHouse (logs + &lt;code>user_id&lt;/code> only), &lt;strong>NOT the production DB&lt;/strong>. This means user-friendly info (names, emails) and dashboard/dataset-level tracking aren&amp;rsquo;t directly available.&lt;/li>
&lt;li>Tien (AI team) confirmed: user_id mapping is possible via prod DB, token usage exists in HOtel, but dashboard/dataset AI activity tracking is hard.&lt;/li>
&lt;li>Triet advised: only answer what&amp;rsquo;s currently feasible, treat the rest as feature requests.&lt;/li>
&lt;li>Hieu drafted a reply to Aurora listing what&amp;rsquo;s available (conversation ID, user ID, messages, token usage) and limitations (no usernames, no asset tracking, only MCP data).&lt;/li>
&lt;li>Aurora accepted — said &lt;code>user_id&lt;/code> is fine, they&amp;rsquo;ll map it themselves.&lt;/li>
&lt;li>Hieu built a dashboard at &lt;a href="https://us.holistics.io/dashboards/v4/1099511684352-aurora-ai-conversations">https://us.holistics.io/dashboards/v4/1099511684352-aurora-ai-conversations&lt;/a> and proposed Google Sheets delivery. &lt;strong>Aurora also suggested S3 export as an alternative.&lt;/strong>&lt;/li>
&lt;li>Nam asked Hieu to wait before sharing — he wanted to discuss commercially first.&lt;/li>
&lt;li>Nam proposed turning this into a paid upsell package at $10,200/year (&amp;ldquo;Usage and AI Data Monitoring Transfer&amp;rdquo;).&lt;/li>
&lt;li>Chinh (me) reviewed and said the data is feasible to share as spreadsheet, but noted Hieu&amp;rsquo;s dashboard is &lt;strong>not ready to consume right now&lt;/strong>.&lt;/li>
&lt;li>Chinh and Phuong questioned charging for AI usage data since the AI team is already building an in-app AI usage monitoring dashboard for all customers.&lt;/li>
&lt;li>Vincent (CEO) clarified the monetization rationale: the in-app dashboard is free for all; &lt;strong>what&amp;rsquo;s being sold is data sync/export to their own systems (S3/ETL)&lt;/strong>. This targets enterprise needs: compliance, security auditing, long retention (7+ years), and custom analytics.&lt;/li>
&lt;li>Triet and Vincent discussed delivery method — S3 vs Google Sheets vs ETL to their data warehouse. Vincent prefers S3 since Aurora mentioned it and it&amp;rsquo;s more scalable for a paid add-on.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>For myself (data team):
&lt;ul>
&lt;li>Data source: AI conversation data is in ClickHouse (not prod DB). It has: conversation timestamps, conversation IDs, user IDs, messages (prompts + replies), token usage. User info (email/name) requires joining with a production DB mapping table.&lt;/li>
&lt;li>Dashboard exists: Hieu built a dashboard at us.holistics.io/dashboards/v4/1099511684352 but currently not ready to share now.&lt;/li>
&lt;li>NOTE I need to review the data in dashboard. But not now. Let&amp;rsquo;s wait for Aurora&amp;rsquo;s response and the team initialize a project about this. Not sure who will be main owner btw.&lt;/li>
&lt;li>Prior art: I did similar work for SweetSpot before: &lt;a href="https://holistics.slack.com/archives/C09GURCKQV8/p1772181645114809?thread_ts=1770132838.858979&amp;amp;cid=C09GURCKQV8">https://holistics.slack.com/archives/C09GURCKQV8/p1772181645114809?thread_ts=1770132838.858979&amp;amp;cid=C09GURCKQV8&lt;/a>&lt;/li>
&lt;li>Delivery format is undecided: The current preference is S3 export (Aurora offered to share an S3 bucket). Google Sheets with scheduled delivery was the original plan because we can reuse the Google Sheets Delivery feature. Final decision pending Nam&amp;rsquo;s email to Aurora.&lt;/li>
&lt;li>&lt;strong>This is now a paid add-on ($10,200/year) — so quality and reliability matter. It&amp;rsquo;s not ad-hoc anymore.&lt;/strong>&lt;/li>
&lt;li>Scope boundaries: Only provide what&amp;rsquo;s currently available. Don&amp;rsquo;t try to solve missing data (dashboard/dataset AI activity, feature-specific breakdown beyond MCP). The AI team will build in-app monitoring separately.&lt;/li>
&lt;li>Stakeholders: Nam (commercial timing), Chinh (me) (data review/quality), and Phuong/Tien/Dat (AI team).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>((69bcb599-a91e-49ea-bc3d-6a5a651f03df))&lt;/p></description></item><item><title>Book - How To Solve It</title><link>https://secondbrain.lelouvincx.com/post/pages/book---how-to-solve-it/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/book---how-to-solve-it/</guid><description>&lt;ul>
&lt;li>Author: [[George Polya]]&lt;/li>
&lt;li>I just bought the book. It&amp;rsquo;s $10. Not expensive. But the value it brings is huge. Worth it.&lt;/li>
&lt;li>
&lt;h1 id="key-notes">Key notes&lt;/h1>
&lt;ul>
&lt;li>
&lt;h2 id="chap-1">Chap 1&lt;/h2>
&lt;ul>
&lt;li>Problem solving is a muscle. The more we practice solving problems, the better we are.&lt;/li>
&lt;li>Problem solving is like swimming. We learn by imitating and practicing.&lt;/li>
&lt;li>The teacher who wishes to develop his students&amp;rsquo; ability to do problems must &lt;strong>instill some interest into their mind&lt;/strong> and give them &lt;strong>plenty of opportunity&lt;/strong> for imitation and practice.&lt;/li>
&lt;li>4 steps of problem solving:
&lt;ul>
&lt;li>Understand the problem
logseq.order-list-type:: number
&lt;ul>
&lt;li>What is the unknown?
logseq.order-list-type:: number&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Devise a plan - connect the data, the condition, the unknown
logseq.order-list-type:: number
&lt;ul>
&lt;li>Have you solve a similar problem before?
logseq.order-list-type:: number&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Carry out the plan
logseq.order-list-type:: number
&lt;ul>
&lt;li>Can you prove it&amp;rsquo;s correct?
logseq.order-list-type:: number&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Look back
logseq.order-list-type:: number
&lt;ul>
&lt;li>What have you done good and bad?
logseq.order-list-type:: number&lt;/li>
&lt;li>Can you derive the result differently and extend this problem?
logseq.order-list-type:: number&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The teacher should be in his student&amp;rsquo;s shoe, to help him understand and devise the plan better.&lt;/li>
&lt;li>Do by example.&lt;/li>
&lt;li>Could you restate the problem?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h1 id="quotes">Quotes&lt;/h1>
&lt;ul>
&lt;li>&amp;ldquo;If you cannot solve a problem, there is an easier problem that you cannot solve.&amp;rdquo;&lt;/li>
&lt;li>&amp;ldquo;The main danger is that the student forgets his plan. This may easily happen if the student &lt;strong>received this plan from outside&lt;/strong>, and accepted it &lt;strong>on the authority of the teacher&lt;/strong>, but if he worked for it himself, even with some help, and conceived the final idea with satisfaction, he will not lose this idea easily.&amp;rdquo;&lt;/li>
&lt;li>&amp;ldquo;The teacher may ask:
Can you see clearly that the triangle with sides x, y, c is a right triangle?
To this question, the student may answer honestly &amp;ldquo;yes&amp;rdquo;, but he could be much embarrassed if the teacher be not satisfied with the intuitive conviction, then go on asking:
&lt;strong>But can you prove that this triangle is a right triangle?&lt;/strong>
Thus, the teacher should suppress this question for now.&amp;rdquo;
&lt;ul>
&lt;li>Reflect on myself, sometimes I ask questions that dive very deep into one side of the problem, and it goes beyond my initial intention - just want to provide more knowledge to the student. Most cases it&amp;rsquo;s not good.&lt;/li>
&lt;li>Because it kills the interest.&lt;/li>
&lt;li>&lt;strong>Don&amp;rsquo;t dive deep too much, just enough to get the student&amp;rsquo;s interest. This is more important.&lt;/strong>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&amp;ldquo;It is better to solve one problem in five ways, rather than solve five problems in one way.&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>contents</title><link>https://secondbrain.lelouvincx.com/post/pages/contents/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/contents/</guid><description>&lt;ul>
&lt;li>&lt;/li>
&lt;/ul></description></item><item><title>Data Modeling</title><link>https://secondbrain.lelouvincx.com/post/pages/data-modeling/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/data-modeling/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://www.1keydata.com/datawarehousing/datawarehouse.html">https://www.1keydata.com/datawarehousing/datawarehouse.html&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/kimball-data-warehouse-bus-architecture/">https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/kimball-data-warehouse-bus-architecture/&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>data-ops-bot</title><link>https://secondbrain.lelouvincx.com/post/pages/data-ops-bot/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/data-ops-bot/</guid><description>&lt;ul>
&lt;li>j&lt;/li>
&lt;/ul></description></item><item><title>dblineage</title><link>https://secondbrain.lelouvincx.com/post/pages/dblineage/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/dblineage/</guid><description>&lt;h2 id="job-to-be-done--job-map">Job To Be Done &amp;amp; Job Map&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>[[[dblineage] Gathering User Data]]&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>JTBD:&lt;/strong> Bridge the knowledge gap between business users and team data&lt;/p>
&lt;ul>
&lt;li>When I&amp;rsquo;m a data engineer work with business users to build a ETL pipeline&lt;/li>
&lt;li>I want to close the gap for business users who need to understand the fine-grained logic within those transformations.&lt;/li>
&lt;li>They&amp;rsquo;re left wondering, &amp;ldquo;Okay, I see this column came from that column or that table, but how was it calculated? If so, can I trust?&amp;rdquo;&lt;/li>
&lt;li>So that I and data team can brainstorm, design, discuss, and align on the same business logic&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Job Map&lt;/strong>&lt;/p></description></item><item><title>DIKW Pyramid</title><link>https://secondbrain.lelouvincx.com/post/pages/dikw-pyramid/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/dikw-pyramid/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/02/7ba1920a32ca2377371db8243f9adbdc.png">https://media.secondbrain.lelouvincx.com/2026/02/7ba1920a32ca2377371db8243f9adbdc.png&lt;/a>&lt;/li>
&lt;li>A mental model from Data - Information - Knowledge - Wisdom. By always being curious (asking why) and actively seeking for answers, connecting the dots and understanding the core / foundation / concept of things.&lt;/li>
&lt;li>Inspired by this article: &lt;a href="https://campedersen.com/ownership-mindset">https://campedersen.com/ownership-mindset&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Dimensional Modeling</title><link>https://secondbrain.lelouvincx.com/post/pages/dimensional-modeling/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/dimensional-modeling/</guid><description>&lt;h2 id="keynotes">Keynotes&lt;/h2>
&lt;ul>
&lt;li>Dimensional modeling structures data in the way business people think about it, rather than how softwares store it&lt;/li>
&lt;/ul></description></item><item><title>Docs</title><link>https://secondbrain.lelouvincx.com/post/pages/docs/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/docs/</guid><description>&lt;h2 id="resources">Resources&lt;/h2>
&lt;ul>
&lt;li>Figma: &lt;a href="https://www.figma.com/design/1mU3qmVzCvjm2CXve978I0/Docs-Graphics">https://www.figma.com/design/1mU3qmVzCvjm2CXve978I0/Docs-Graphics&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Down The Rabbit Hole</title><link>https://secondbrain.lelouvincx.com/post/pages/down-the-rabbit-hole/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/down-the-rabbit-hole/</guid><description>&lt;ul>
&lt;li>
&lt;p>Gemini: &lt;a href="https://gemini.google.com/app/786f401ad9ba4ae8">https://gemini.google.com/app/786f401ad9ba4ae8&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>I realize when doing a task, I often become too over-engineer, lag, time-consuming and not focusing into the main task.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>This happens very often.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Symtomps&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Over-engineering: Spending hours writing perfect things that could have been a simpler one.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Yak shaving: When I want to fix a dashboard, but first I decide to update my &lt;code>dotfiles&lt;/code> configuration, which leads to debugging neovim issue, and suddenly 3 hours have passed without touching the dashboard.&lt;/p></description></item><item><title>Economix</title><link>https://secondbrain.lelouvincx.com/post/pages/economix/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/economix/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/03/4c39491a1814c0e767c359321242ad2d.png">https://media.secondbrain.lelouvincx.com/2026/03/4c39491a1814c0e767c359321242ad2d.png&lt;/a>&lt;/li>
&lt;li>Lý thuyết bàn tay vô hình
&lt;ul>
&lt;li>Giá của một mặt hàng đúng với giá hợp lý của xã hội đặt cho nó&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Mình nhận ra lịch sử ảnh hưởng rất nhiều vào kinh tế của một nước
&lt;ul>
&lt;li>Trong chương đầu, học về cách mạng Mỹ, cách mạng Pháp, Napoleon&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Mối quan hệ giữa lợi nhuận và tiền lương là một trò chơi có tổng bằng không
&lt;ul>
&lt;li>Nếu tỉ lệ lợi nhuận của chủ doanh nghiệp tăng lên thì phần dành cho tiền lương của người lao động tất yếu phải giảm xuống và ngược lại&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Thị trường tự do là một assumption các nhà kinh tế học đặt ra để tính toán trên đó dễ dàng hơn
&lt;ul>
&lt;li>Ngoài đời thì khác hơn nhiều, một thị trường khó có thể tự do vì tồn tại rất nhiều kinh doanh độc quyền&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Gaps and Islands</title><link>https://secondbrain.lelouvincx.com/post/pages/gaps-and-islands/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/gaps-and-islands/</guid><description>&lt;ul>
&lt;li>Gemini: &lt;a href="https://gemini.google.com/u/3/app/42485fec923a41e1">https://gemini.google.com/u/3/app/42485fec923a41e1&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Google Data Portability API</title><link>https://secondbrain.lelouvincx.com/post/pages/google-data-portability-api/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/google-data-portability-api/</guid><description>&lt;ul>
&lt;li>Gemini: &lt;a href="https://gemini.google.com/app/2f98df4376f23aeb">https://gemini.google.com/app/2f98df4376f23aeb&lt;/a>&lt;/li>
&lt;li>The service to get some personal data such as Maps, Youtube, Search, etc.&lt;/li>
&lt;li>Which aligns with the goal at &lt;a href="https://github.com/lelouvincx/personal-finance">https://github.com/lelouvincx/personal-finance&lt;/a>
&lt;ul>
&lt;li>&amp;ldquo;In the future, be able to connect different data sources such as Logseq, Calendar, Maps to give me a more holistic view of my life and finances.&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Available services (&lt;a href="https://developers.google.com/data-portability/user-guide/scopes)">https://developers.google.com/data-portability/user-guide/scopes)&lt;/a>:
&lt;ul>
&lt;li>Chrome&lt;/li>
&lt;li>Discover (?)&lt;/li>
&lt;li>Maps&lt;/li>
&lt;li>My Activity&lt;/li>
&lt;li>Play&lt;/li>
&lt;li>Search&lt;/li>
&lt;li>Youtube&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>NOTE Unlike the manual Google Takeout process, this API supports &lt;strong>one-time&lt;/strong> or &lt;strong>time-based&lt;/strong> (ongoing for 30–180 days) data transfers directly between servers.&lt;/li>
&lt;/ul></description></item><item><title>Health Rules</title><link>https://secondbrain.lelouvincx.com/post/pages/health-rules/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/health-rules/</guid><description>&lt;ul>
&lt;li>
&lt;h1 id="health-rules">Health Rules&lt;/h1>
&lt;ul>
&lt;li>A living set of personal rules for protecting energy, sleep, and overall well-being. Improve incrementally — add a new bullet whenever a friction point shows up.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="sleep--evenings">Sleep &amp;amp; evenings&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>No gaming after 6PM on weeknights.&lt;/strong> Late-night sessions always extend longer than planned and break sleep. Restrict gaming to morning / early afternoon, or weekends.&lt;/li>
&lt;li>Sleep &amp;gt; productivity. A &amp;ldquo;lost&amp;rdquo; hour of sleep typically costs more than the hour it appears to save.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="illness">Illness&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Treat illness as a hard stop, not a soft pause.&lt;/strong> If feeling off two days in a row → full stop on day 2. Don&amp;rsquo;t push to day 3 hoping it improves.&lt;/li>
&lt;li>Recovery cost compounds: a few days of forced rest is cheaper than a week of dragging through.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="movement--environment">Movement &amp;amp; environment&lt;/h2>
&lt;ul>
&lt;li>Walking / nature / no-signal time are real resets — schedule them deliberately, not only when sick.&lt;/li>
&lt;li>&lt;strong>3x short night jogs per week&lt;/strong> (post-work, lower-temp window). Morning slots conflict with deep work and high temperature; evening cools down and decompresses the day. Added W18 after the Sat May 3 badminton breathlessness signal.&lt;/li>
&lt;li>&lt;strong>Eat before exercise.&lt;/strong> No empty-stomach badminton or jogging — Sat May 3 session degraded fast because no food since morning.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="weekend-discipline">Weekend discipline&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Default to one full off-day per weekend&lt;/strong> — no Smartclass commits, no Holistics work. Two consecutive non-rest weekends is a yellow flag.&lt;/li>
&lt;li>When the weekend is booked for deep work (e.g., H1 self-reflection + CV refresh), keep at least the Saturday morning slow.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="notes">Notes&lt;/h2>
&lt;ul>
&lt;li>Re-read this page during weekly planning (Friday wrap-up) and after any sick day or low-energy week.&lt;/li>
&lt;li>When a rule causes friction in practice, capture the friction here as a new bullet, then iterate.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>How to do an internal data tracking project?</title><link>https://secondbrain.lelouvincx.com/post/pages/how-to-do-an-internal-data-tracking-project%3f/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/how-to-do-an-internal-data-tracking-project%3f/</guid><description>&lt;h1 id="process">Process&lt;/h1>
&lt;ul>
&lt;li>Start with definitions
logseq.order-list-type:: number
&lt;ul>
&lt;li>Goal: Avoid 3 versions of MRR floating around everyone.&lt;/li>
&lt;li>Sit with stakeholders (finance, rev ops, product) and nail down the definitions.&lt;/li>
&lt;li>Common pitfalls:
&lt;ul>
&lt;li>(1) &lt;strong>Entity Resolution&lt;/strong> issue:
&lt;ul>
&lt;li>&lt;strong>Zoho Billing&lt;/strong> is the source of truth for &lt;strong>Finance&lt;/strong> (MRR/Revenue). Salespeople often enter aspirational data in Hubspot (deal size $10k), but the actual invoice might be $9k due to a last-minute discount.&lt;/li>
&lt;li>&lt;strong>Hubspot&lt;/strong> is the source of truth for &lt;strong>Dimensions&lt;/strong>. Zoho knows how much they paid, but Hubspot knows who they are (company, lead, customer/prospect)&lt;/li>
&lt;li>&lt;strong>Application DB&lt;/strong> is the source of truth for &lt;strong>Engagement&lt;/strong>. This is the leading indicator of churn.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>(2) &lt;strong>Reconciliation&lt;/strong> issue:
&lt;ul>
&lt;li>Finance likely has a spreadsheet they use to report numbers to the board. If your SQL logic differs even by $10 from their manual sheet, &lt;strong>they will trust the sheet, not your dashboard&lt;/strong>.&lt;/li>
&lt;li>You must replicate their logic &lt;em>exactly&lt;/em> before you can improve it.&lt;/li>
&lt;li>Means, answer this question: &amp;ldquo;How can I trust the numbers?&amp;rdquo;.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Deliverables:
&lt;ul>
&lt;li>&lt;strong>Metric Glossary&lt;/strong>: an evergreen documentation defining business terms, processes, metrics&lt;/li>
&lt;li>&lt;strong>ERD&lt;/strong> shows how a &lt;code>Company&lt;/code> in Hubspot maps to a &lt;code>Customer&lt;/code> in Zoho and a &lt;code>Tenant&lt;/code> in the app&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Inmon - Data Warehousing</title><link>https://secondbrain.lelouvincx.com/post/pages/inmon---data-warehousing/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/inmon---data-warehousing/</guid><description>&lt;h2 id="keynote">Keynote&lt;/h2>
&lt;ul>
&lt;li>Approach: top-down&lt;/li>
&lt;li>The philosophy is having a centralized, high quality data warehouse
&lt;ul>
&lt;li>By maintaining an EDW - Enterprise Data Warehouse, storing all data as 3NF, aim for data quality and intergrity&lt;/li>
&lt;li>Then so the star schema - dimensional modelling for each specific reporting topic (dataset)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>2-step process
&lt;ul>
&lt;li>
&lt;ol>
&lt;li>You model the data warehouse using 3NF to ensure truth, quality and consistency&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>
&lt;ol start="2">
&lt;li>Then feed that data into &lt;strong>data marts&lt;/strong> which use dimensional modeling for the actual BI reporting to consume&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>input</title><link>https://secondbrain.lelouvincx.com/post/pages/input/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/input/</guid><description>&lt;ul>
&lt;li>&lt;/li>
&lt;/ul></description></item><item><title>Internal</title><link>https://secondbrain.lelouvincx.com/post/pages/internal/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/internal/</guid><description>&lt;ul>
&lt;li>If I had to start the core business metrics from scratch
&lt;ul>
&lt;li>[[How to do an internal data tracking project?]]&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Journals</title><link>https://secondbrain.lelouvincx.com/post/pages/journals/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/journals/</guid><description>&lt;h3 id="tasks">Tasks&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>TODO Review hooli&lt;/p>
&lt;/li>
&lt;li>
&lt;h3 id="done">Done&lt;/h3>
&lt;/li>
&lt;/ul></description></item><item><title>Just Enough Automation</title><link>https://secondbrain.lelouvincx.com/post/pages/just-enough-automation/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/just-enough-automation/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://bevel.work/blog/just-enough-automation/">https://bevel.work/blog/just-enough-automation/&lt;/a>&lt;/li>
&lt;li>A #Triet advice: &lt;a href="https://www.explainxkcd.com/wiki/index.php/1205">https://www.explainxkcd.com/wiki/index.php/1205&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Kimball - Data Warehousing</title><link>https://secondbrain.lelouvincx.com/post/pages/kimball---data-warehousing/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/kimball---data-warehousing/</guid><description>&lt;h2 id="keynotes">Keynotes&lt;/h2>
&lt;ul>
&lt;li>Fact: the verbs&lt;/li>
&lt;li>Dimension: the nouns&lt;/li>
&lt;li>Addictive facts: can sum them up across any dimensions&lt;/li>
&lt;/ul></description></item><item><title>Lead Funnel by Sales Motion</title><link>https://secondbrain.lelouvincx.com/post/pages/lead-funnel-by-sales-motion/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/lead-funnel-by-sales-motion/</guid><description>&lt;ul>
&lt;li>
&lt;h2 id="goal">Goal&lt;/h2>
&lt;ul>
&lt;li>BizOps (Vincent, Sriram) is doing 2026 revenue planning: setting an MRR target ($330K) and working backwards to determine how many leads they need at each stage to hit it.
&lt;ul>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/03/9b7d19a1a916c3868a43f25c1b3939c0.png">https://media.secondbrain.lelouvincx.com/2026/03/9b7d19a1a916c3868a43f25c1b3939c0.png&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/03/daf21e663f6916c8cec1a4c418167e6e.png">https://media.secondbrain.lelouvincx.com/2026/03/daf21e663f6916c8cec1a4c418167e6e.png&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Conversion Rate By Sales Motion&lt;/strong>: for won deals, what % went through sales-assisted (call first =&amp;gt; trial) vs self-serve (trial first =&amp;gt; call).
&lt;ul>
&lt;li>Sriram and Vincent intuitively feel call-first has a higher win rate but don&amp;rsquo;t have data to prove it.&lt;/li>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/03/233fc4decf6a75e71f71ef06780ce53e.png">https://media.secondbrain.lelouvincx.com/2026/03/233fc4decf6a75e71f71ef06780ce53e.png&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Why it matters&lt;/strong>: assess which entry point produces better outcomes =&amp;gt; to invest more on.&lt;/li>
&lt;li>&lt;strong>Decision-making questions&lt;/strong>:
&lt;ul>
&lt;li>Given we need ~59 raw leads/month to hit 330K MRR, how should we allocate between call-first or trial-first deals?&lt;/li>
&lt;li>Should we consider removing self-serve trials if call-first converts significantly better?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="sales-motion-classification">Sales Motion Classification&lt;/h2>
&lt;ul>
&lt;li>Leads are classified based on timestamp ordering of first demo call vs first trial submission:
&lt;ul>
&lt;li>&lt;strong>call-first&lt;/strong>: &lt;code>first_call_at &amp;lt; submitted_at&lt;/code>&lt;/li>
&lt;li>&lt;strong>trial-first&lt;/strong>: &lt;code>submitted_at &amp;lt;= first_call_at&lt;/code>&lt;/li>
&lt;li>&lt;strong>trial-only&lt;/strong>: trial submitted, but &lt;code>first_call_at&lt;/code> is NULL&lt;/li>
&lt;li>&lt;strong>call-only&lt;/strong>: call booked, but &lt;code>trial_submission_skey&lt;/code> is NULL&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>For same-day events, uses exact UTC timestamps to determine sequence.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="data-model">Data Model&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>Main working dataset: &lt;a href="https://bi.holistics.io/datasets/27429">DTS106&lt;/a>&lt;/p></description></item><item><title>Leap of Faith</title><link>https://secondbrain.lelouvincx.com/post/pages/leap-of-faith/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/leap-of-faith/</guid><description>&lt;ul>
&lt;li>{{video &lt;a href="https://youtu.be/y7rWVhihlb8?si=3NL2Cnh4CQKxpk21%7D%7D">https://youtu.be/y7rWVhihlb8?si=3NL2Cnh4CQKxpk21}}&lt;/a>&lt;/li>
&lt;li>{{video &lt;a href="https://youtu.be/F2c1ORtkmuU?si=uEE403a6bAhP0ZBH%7D%7D">https://youtu.be/F2c1ORtkmuU?si=uEE403a6bAhP0ZBH}}&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Measuring Engineering Productivity</title><link>https://secondbrain.lelouvincx.com/post/pages/measuring-engineering-productivity/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/measuring-engineering-productivity/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://justoffbyone.com/posts/measuring-engineering-productivity/">https://justoffbyone.com/posts/measuring-engineering-productivity/&lt;/a>&lt;/li>
&lt;li>The system should work for your engineers, not against them.
&lt;ul>
&lt;li>If your measurement system makes engineers less productive, you&amp;rsquo;re failed.&lt;/li>
&lt;li>If it makes them feel surveilled and distrusted, you&amp;rsquo;re failed.&lt;/li>
&lt;li>If it becomes an end in itself rather than a mean to build better products, you&amp;rsquo;re failed.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Memory Decreasing</title><link>https://secondbrain.lelouvincx.com/post/pages/memory-decreasing/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/memory-decreasing/</guid><description>&lt;ul>
&lt;li>&lt;/li>
&lt;/ul></description></item><item><title>ngocyen99tb.lelouvincx.com</title><link>https://secondbrain.lelouvincx.com/post/pages/ngocyen99tb.lelouvincx.com/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/ngocyen99tb.lelouvincx.com/</guid><description>&lt;ul>
&lt;li>How does Olist work?&lt;/li>
&lt;li>How does Olist make money?&lt;/li>
&lt;li>
&lt;h3 id="tasks">Tasks&lt;/h3>
&lt;/li>
&lt;li>((691029d8-69c2-4627-b93c-7328fcebda27))&lt;/li>
&lt;/ul></description></item><item><title>Oxygen Not Included</title><link>https://secondbrain.lelouvincx.com/post/pages/oxygen-not-included/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/oxygen-not-included/</guid><description>&lt;ul>
&lt;li>Written guide
&lt;ul>
&lt;li>&lt;a href="https://steamcommunity.com/sharedfiles/filedetails/?id=1359110726">Surviving the Early Game&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://steamcommunity.com/sharedfiles/filedetails/?id=1362621368">Surviving the Mid-Game&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://steamcommunity.com/sharedfiles/filedetails/?id=1359728437">Useful Construction Patterns&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://steamcommunity.com/sharedfiles/filedetails/?id=1359123308">Dupe Builds&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://steamcommunity.com/sharedfiles/filedetails/?id=1836883700">Surviving the Late-Game&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>P2</title><link>https://secondbrain.lelouvincx.com/post/pages/p2/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/p2/</guid><description>&lt;ul>
&lt;li>wa&lt;/li>
&lt;/ul></description></item><item><title>Parquet</title><link>https://secondbrain.lelouvincx.com/post/pages/parquet/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/parquet/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://public.lelouvincx.com/parquet-how-it-works.png">https://public.lelouvincx.com/parquet-how-it-works.png&lt;/a>&lt;/li>
&lt;li>{{video &lt;a href="https://youtu.be/1j8SdS7s_NY?si=mBplsyA4pzArccsj%7D%7D">https://youtu.be/1j8SdS7s_NY?si=mBplsyA4pzArccsj}}&lt;/a>&lt;/li>
&lt;li>[[Predicate Pushdown]]&lt;/li>
&lt;li>Row Group&lt;/li>
&lt;li>Column Chunk&lt;/li>
&lt;li>Page&lt;/li>
&lt;li>[[Parquet Zone Maps]]&lt;/li>
&lt;li>And then there is Delta Lake, which is a storage layer sitting on top of parquet files. In short, we have Delta Lake to manage, provide database&amp;rsquo;s functionalities, and the files are stored as parquet.&lt;/li>
&lt;/ul></description></item><item><title>Parquet Zone Maps</title><link>https://secondbrain.lelouvincx.com/post/pages/parquet-zone-maps/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/parquet-zone-maps/</guid><description>&lt;ul>
&lt;li>Gemini: &lt;a href="https://gemini.google.com/app/c44f8c1670b8187a">https://gemini.google.com/app/c44f8c1670b8187a&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Performance Review - 2025H2</title><link>https://secondbrain.lelouvincx.com/post/pages/performance-review---2025h2/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/performance-review---2025h2/</guid><description>&lt;h1 id="notes">Notes&lt;/h1>
&lt;ul>
&lt;li>Section 4, Result Delivery &amp;amp; Reporting, L2 - &amp;ldquo;Can create an effective &lt;strong>story with data&lt;/strong>, maintaining objectivity in their analysis&amp;rdquo;
&lt;ul>
&lt;li>It&amp;rsquo;s possible not doing inside Holistics but with my side projects for [[Data Journalism]], [[Data Visualization]]&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Personal Context</title><link>https://secondbrain.lelouvincx.com/post/pages/personal-context/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/personal-context/</guid><description>&lt;h1 id="user-context--persona">User Context &amp;amp; Persona&lt;/h1>
&lt;ul>
&lt;li>
&lt;h2 id="professional-profile">Professional Profile&lt;/h2>
&lt;ul>
&lt;li>The user is a Data Analytics Engineer and Educator. They maintain a technical site at &lt;code>lelouvincx.com&lt;/code>.&lt;/li>
&lt;li>They are highly technical, preferring detailed, engineering-focused discussions over high-level overviews.&lt;/li>
&lt;li>They are working at &lt;code>holistics.io&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="technical-stack--expertise">Technical Stack &amp;amp; Expertise&lt;/h2>
&lt;ul>
&lt;li>Data Engineering: Expert in SQL optimization, data warehousing (Kimball/Inmon), and ETL/ELT pipelines. Frequently uses dbt, Dagster, DuckDB, PostgreSQL (RDS), and Redshift.&lt;/li>
&lt;li>BI &amp;amp; Visualization: Experienced with Holistics, Metabase.&lt;/li>
&lt;li>Infrastructure: Proponent of self-hosting and cost-optimization. Uses low-cost VPS providers (Contabo), Docker, Cloudflare.&lt;/li>
&lt;li>Workflow: Uses MacOS with a keyboard-driven workflow. Preferred editor is Neovim (LazyVim config) and uses Logseq for knowledge management.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="active-projects-current-context">Active Projects (Current Context)&lt;/h2>
&lt;ul>
&lt;li>
&lt;h3 id="1-duty-holistics-support">1. [Duty] Holistics Support&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Role:&lt;/strong> Customer Duty Support / Data Analytics Engineer at Holistics.&lt;/li>
&lt;li>&lt;strong>Key Context:&lt;/strong> Focuses on troubleshooting and scaling solutions for clients.&lt;/li>
&lt;li>&lt;strong>Recent Work:&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Client &amp;ldquo;Pencil&amp;rdquo;:&lt;/strong> Scaling customer dashboards and optimizing data models within the Holistics platform.&lt;/li>
&lt;li>&lt;strong>Workflow:&lt;/strong> Synthesizing support call transcripts and drafting technical follow-up communications.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="2-add2cart-data-consultancy-service">2. [Add2Cart] Data Consultancy Service&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Tech Stack:&lt;/strong> RDS (PostgreSQL), S3 (data lake), Redshift (data warehouse), Holistics (BI tool).&lt;/li>
&lt;li>&lt;strong>Current Status:&lt;/strong> configuring replication tasks and debugging connection/permission issues between the OLTP source and OLAP destination.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="3-teaching-data-analytics-educator">3. [Teaching] Data Analytics Educator&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Role:&lt;/strong> Instructor for a junior analyst and a junior engineer.&lt;/li>
&lt;li>&lt;strong>Curriculum:&lt;/strong> Developing a gamified analytics course based on the &lt;strong>Olist E-commerce dataset&lt;/strong>.&lt;/li>
&lt;li>&lt;strong>Resources:&lt;/strong> Creating a &amp;ldquo;Teacher&amp;rsquo;s Guide&amp;rdquo; and phased learning materials.&lt;/li>
&lt;li>&lt;strong>Infrastructure:&lt;/strong> Manages a self-hosted &lt;strong>Metabase&lt;/strong> instance for students, powered by &lt;strong>DuckDB&lt;/strong> and &lt;strong>Neon.tech&lt;/strong>, exposed via &lt;strong>Cloudflare Tunnels&lt;/strong>. Expose learning materials on public website at &lt;code>https://ngocyen99tb.lelouvincx.com&lt;/code>, written in &lt;strong>Docusaurus&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="4-personal-infrastructure--tools">4. [Personal] Infrastructure &amp;amp; Tools&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Blog/Docs:&lt;/strong> Revamping &lt;code>lelouvincx.com&lt;/code> (formerly hugo blowfish) (focus on themes, search plugins, and sitemaps).&lt;/li>
&lt;li>&lt;strong>Self-Hosting:&lt;/strong> Personal infrastructure includes &lt;strong>Contabo&lt;/strong> VPS&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="cultural-context">Cultural Context&lt;/h2>
&lt;ul>
&lt;li>The user is interested in Vietnamese language, culture, and technology (e.g., local banking, esports).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Personal Finance Manager App</title><link>https://secondbrain.lelouvincx.com/post/pages/personal-finance-manager-app/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/personal-finance-manager-app/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://gemini.google.com/app/87b8d4ee12216e39">https://gemini.google.com/app/87b8d4ee12216e39&lt;/a>&lt;/li>
&lt;li>TODO Conceptual Design
Priority: #P3&lt;/li>
&lt;li>TODO Techstack Design (after conceptual designing)
Priority: #P3&lt;/li>
&lt;/ul></description></item><item><title>Predicate Pushdown</title><link>https://secondbrain.lelouvincx.com/post/pages/predicate-pushdown/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/predicate-pushdown/</guid><description>&lt;ul>
&lt;li>Category: [[Database Optimization]]&lt;/li>
&lt;li>When filter some data, instead of loading all data into memory then filter, predicate pushdown allows filtering at the query execution layer/storage layer, in order to only load the filtered data into memory.&lt;/li>
&lt;li>Benefit:
&lt;ul>
&lt;li>Reduce I/O&lt;/li>
&lt;li>Reduce Time&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>How it works
&lt;ul>
&lt;li>Before (without predicate pushdown)
&lt;ul>
&lt;li>Read: The engine read 100% data from storage.
logseq.order-list-type:: number&lt;/li>
&lt;li>Transfer: The engine transfers all data over the network to the compute engine.
logseq.order-list-type:: number&lt;/li>
&lt;li>Filter: The compute engine loads data into memory and applies &lt;code>WHERE&lt;/code>.
logseq.order-list-type:: number&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>After
&lt;ul>
&lt;li>Read: The compute engine sends the query and the filter to the storage/metadata layer.
logseq.order-list-type:: number&lt;/li>
&lt;li>Filter: The storage/metadata layer uses statistics based on the &lt;code>WHERE&lt;/code> to skip entire redundant blocks of data.
logseq.order-list-type:: number&lt;/li>
&lt;li>Transfer: Smaller data transfers over the network.
logseq.order-list-type:: number&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Pitfalls
&lt;ul>
&lt;li>Casting: something like &lt;code>WHERE CAST(string_col AS INTEGER) &amp;gt; 5&lt;/code> will not work.
&lt;ul>
&lt;li>Because the compute engine has to read all data to do the cast before filtering (which Holistics usually use).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Complex UDF.&lt;/li>
&lt;li>Unsorted: If data random across row partitions, the predicate pushdown won&amp;rsquo;t work effectively.&lt;/li>
&lt;li>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Presales</title><link>https://secondbrain.lelouvincx.com/post/pages/presales/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/presales/</guid><description>&lt;ul>
&lt;li>&lt;/li>
&lt;/ul></description></item><item><title>Principles</title><link>https://secondbrain.lelouvincx.com/post/pages/principles/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/principles/</guid><description>&lt;ul>
&lt;li>
&lt;h1 id="principles">Principles&lt;/h1>
&lt;ul>
&lt;li>A &lt;strong>triage page&lt;/strong> for heuristics gained from experience. Not the final home — the inbox / staging area.&lt;/li>
&lt;li>Each entry: one-line &lt;strong>trigger&lt;/strong>, one-line &lt;strong>response&lt;/strong>, backlink to the journal where it was forged, and a &lt;strong>status&lt;/strong>.&lt;/li>
&lt;li>Once a heuristic matures (fires a 2nd time and has a clear domain), &lt;strong>route it out&lt;/strong> to a dedicated page or upstream to a team-owned doc. The triage page stays small on purpose.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="how-to-use-this-page">How to use this page&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Capture freely.&lt;/strong> Anything I notice once gets dropped here. Low friction.&lt;/li>
&lt;li>&lt;strong>Promote on second use.&lt;/strong> If a heuristic fires a 2nd time in real work, it has earned a spot on a dedicated page.&lt;/li>
&lt;li>&lt;strong>Archive on neglect.&lt;/strong> If an entry sits in &lt;code>triage&lt;/code> &amp;gt; 60 days without a 2nd use, archive it. The page is for active heuristics, not aspirations.&lt;/li>
&lt;li>&lt;strong>Re-read during Friday wrap-up.&lt;/strong> Demote anything routed-out that hasn&amp;rsquo;t fired in 90 days.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="routing-targets">Routing targets&lt;/h2>
&lt;ul>
&lt;li>prioritization / scheduling → [[Priority Rules]]&lt;/li>
&lt;li>sleep / illness / movement / energy → [[Health Rules]]&lt;/li>
&lt;li>(future) work-craft pages may emerge:
&lt;ul>
&lt;li>communication → [[Communication Rules]] (TBD)&lt;/li>
&lt;li>code review / on-call → [[Code Review Rules]] (TBD)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Some heuristics belong outside the second-brain.&lt;/strong> Upstream to &lt;strong>team-owned docs&lt;/strong> when the rule is not unique to me — it converts a private heuristic into team infrastructure, and the writing exercise itself is career-visible.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="status-legend">Status legend&lt;/h2>
&lt;ul>
&lt;li>&lt;code>triage&lt;/code> — just captured, awaiting a 2nd occurrence.&lt;/li>
&lt;li>&lt;code>routed → [[Page]]&lt;/code> — promoted to a dedicated page; this entry kept as a stub for backlink.&lt;/li>
&lt;li>&lt;code>upstream → &amp;lt;team doc&amp;gt;&lt;/code> — proposed / merged into a team-owned doc.&lt;/li>
&lt;li>&lt;code>archived&lt;/code> — did not survive a 2nd use within 60 days, or superseded.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="entries">Entries&lt;/h2>
&lt;ul>
&lt;li>
&lt;h3 id="work-craft">Work craft&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>dbt deprecation 3-phase rule&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>trigger&lt;/strong>: deprecating a dbt model that other AML / BI assets reference.&lt;/li>
&lt;li>&lt;strong>response&lt;/strong>: phase 1 deprecate in code → phase 2 remove the &lt;code>.sql&lt;/code> → phase 3 drop the BQ table. Don&amp;rsquo;t sit between phase 2 and 3 — AML references BQ physical names, so removing the &lt;code>.sql&lt;/code> only stops refresh and leaves the table silently misleading consumers.&lt;/li>
&lt;li>&lt;strong>forged&lt;/strong>: [[Weekly Report - 2026-W17]] · &lt;a href="https://ampcode.com/threads/T-019da543-67a6-705b-8ab3-3fbac43946b4">Ampcode T-019da543&lt;/a>&lt;/li>
&lt;li>&lt;strong>validated&lt;/strong>: W18 Calendly cleanup — 3 legacy models deleted in PR &lt;a href="https://github.com/holistics/internal-aml-project/pull/78">internal-aml-project#78&lt;/a> without re-deriving the reasoning.&lt;/li>
&lt;li>&lt;strong>status&lt;/strong>: &lt;code>upstream → holistics/dbt contributing guide&lt;/code> (proposed). Team correctness rule, should outlive me.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Small P1 ships before big P2 context-switch&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>trigger&lt;/strong>: a P1 escalation lands while a small / cheap P1 task is still open.&lt;/li>
&lt;li>&lt;strong>response&lt;/strong>: ship the 30-min item first, then context-switch. The cheapest item is the one most at risk of slipping when escalations arrive.&lt;/li>
&lt;li>&lt;strong>forged&lt;/strong>: [[Weekly Report - 2026-W18]] (dbt PR #858 round 1 review slipped when BuyCo + Wamly P1 escalations landed Wed).&lt;/li>
&lt;li>&lt;strong>status&lt;/strong>: &lt;code>triage&lt;/code>. Candidate for a future on-call / escalation handling note.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="communication">Communication&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Customer comms reframe — recipe, not IOU&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>trigger&lt;/strong>: a customer asks for help with a workflow / configuration.&lt;/li>
&lt;li>&lt;strong>response&lt;/strong>: frame as &lt;em>&amp;ldquo;here is the recipe, happy to pair if helpful&amp;rdquo;&lt;/em> instead of &lt;em>&amp;ldquo;I&amp;rsquo;ll do it for you&amp;rdquo;&lt;/em>. Volunteering hands-on work tends to get silence in return.&lt;/li>
&lt;li>&lt;strong>forged&lt;/strong>: [[2026-04-27]] · validated against W17 Showbie + Basata silence pattern.&lt;/li>
&lt;li>&lt;strong>validated&lt;/strong>: W18 BuyCo 14-thread triage — replies were structured as workarounds + screen-recording asks, not &amp;ldquo;I&amp;rsquo;ll log in and fix it for you&amp;rdquo;.&lt;/li>
&lt;li>&lt;strong>status&lt;/strong>: &lt;code>upstream → presales comms playbook / CS onboarding doc&lt;/code> (proposed). Pattern is not unique to my threads.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Ask for no, don&amp;rsquo;t ask for yes&lt;/strong> (Mooreds)
&lt;ul>
&lt;li>&lt;strong>trigger&lt;/strong>: needing a small decision from a busy stakeholder (manager, peer).&lt;/li>
&lt;li>&lt;strong>response&lt;/strong>: replace &lt;em>&amp;ldquo;can we do X?&amp;rdquo;&lt;/em> with &lt;em>&amp;ldquo;I&amp;rsquo;m going to do X to solve Y, will take care of it Monday unless I hear differently.&amp;rdquo;&lt;/em> Shifts cognitive load to opt-out and unblocks progress while keeping ownership.&lt;/li>
&lt;li>&lt;strong>forged&lt;/strong>: [[Weekly Report - 2026-W17]] · &lt;a href="https://www.mooreds.com/wordpress/archives/3518">mooreds.com&lt;/a>&lt;/li>
&lt;li>&lt;strong>status&lt;/strong>: &lt;code>triage&lt;/code>. Tone needs to be calibrated per person — practice on smaller decisions first.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Concision — what is the most important thing to say?&lt;/strong> (Wes Kao)
&lt;ul>
&lt;li>&lt;strong>trigger&lt;/strong>: writing a status update, PR description, Slack message, or stakeholder note.&lt;/li>
&lt;li>&lt;strong>response&lt;/strong>: lead with the most important sentence. Cut anything that doesn&amp;rsquo;t change the reader&amp;rsquo;s decision or action.&lt;/li>
&lt;li>&lt;strong>forged&lt;/strong>: [[Weekly Report - 2026-W18]] · &lt;a href="https://newsletter.weskao.com/p/how-to-be-concise">Wes Kao — How to Be Concise&lt;/a>&lt;/li>
&lt;li>&lt;strong>status&lt;/strong>: &lt;code>triage&lt;/code>. Pair with &lt;a href="https://newsletter.weskao.com/p/too-detailed-in-the-wrong-ways">Levels of detail in communication&lt;/a> once read.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="decision-making--scheduling">Decision-making / scheduling&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Vague task → time-block + decompose to smallest concrete next step&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>trigger&lt;/strong>: a task feels blocking / overwhelming and keeps getting deferred.&lt;/li>
&lt;li>&lt;strong>response&lt;/strong>: time-block a slot, then force decomposition into the smallest concrete next step. Long carry-overs often have a procrastination root, not a priority root.&lt;/li>
&lt;li>&lt;strong>forged&lt;/strong>: [[2026-04-30]] · &lt;a href="https://waitbutwhy.com/2013/11/how-to-beat-procrastination.html">Wait But Why — How to Beat Procrastination&lt;/a>&lt;/li>
&lt;li>&lt;strong>validated&lt;/strong>: same-day BuyCo 14-item Notion page → 14 micro Slack threads in &lt;code>#holistics-buyco-external&lt;/code>, all shipped in one Wed afternoon.&lt;/li>
&lt;li>&lt;strong>status&lt;/strong>: &lt;code>triage&lt;/code>. Candidate for promotion to [[Priority Rules]] (pairs with the 3+ week carry-over forcing function) on next occurrence.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Highest-leverage triage on low-energy weeks&lt;/strong> → &lt;code>routed → [[Priority Rules]]&lt;/code>&lt;/li>
&lt;li>&lt;strong>3+ week carry-over forcing function&lt;/strong> → &lt;code>routed → [[Priority Rules]]&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="reflection--craft-hygiene">Reflection / craft hygiene&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Writing is thinking — daily journals are 100% me&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>trigger&lt;/strong>: temptation to outsource a journal entry / reflection draft to an LLM.&lt;/li>
&lt;li>&lt;strong>response&lt;/strong>: don&amp;rsquo;t. LLM is fair game for boilerplate / first drafts only. The reflection muscle is the differentiator.&lt;/li>
&lt;li>&lt;strong>forged&lt;/strong>: [[Weekly Report - 2026-W18]] · &lt;a href="https://news.ycombinator.com/item?id=47919882">HN thread&lt;/a>&lt;/li>
&lt;li>&lt;strong>status&lt;/strong>: &lt;code>triage&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Cultivate non-LLM reading sources&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>trigger&lt;/strong>: defaulting to LLM search inside Logseq for ideas / craft inspiration.&lt;/li>
&lt;li>&lt;strong>response&lt;/strong>: deliberately seek out blogs / RSS / newsletters from individual senior writers (e.g., &lt;a href="https://www.mooreds.com/wordpress/archives/category/tips">mooreds.com&lt;/a>, &lt;a href="https://newsletter.weskao.com/about">Wes Kao&lt;/a>, &lt;a href="https://benn.substack.com/">benn.substack&lt;/a>). Signal/noise from a curated human writer is different from an aggregated answer.&lt;/li>
&lt;li>&lt;strong>forged&lt;/strong>: [[Weekly Report - 2026-W17]]&lt;/li>
&lt;li>&lt;strong>status&lt;/strong>: &lt;code>triage&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="routed-kept-as-stubs-for-backlink">Routed (kept as stubs for backlink)&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Sleep &amp;gt; productivity&lt;/strong> → &lt;code>routed → [[Health Rules]]&lt;/code>&lt;/li>
&lt;li>&lt;strong>Illness = hard stop on day 2&lt;/strong> → &lt;code>routed → [[Health Rules]]&lt;/code>&lt;/li>
&lt;li>&lt;strong>No gaming after 18:00 on weeknights&lt;/strong> → &lt;code>routed → [[Health Rules]]&lt;/code>&lt;/li>
&lt;li>&lt;strong>Eat before exercise&lt;/strong> → &lt;code>routed → [[Health Rules]]&lt;/code>&lt;/li>
&lt;li>&lt;strong>Weekend discipline (1 full off-day default)&lt;/strong> → &lt;code>routed → [[Health Rules]]&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="notes">Notes&lt;/h2>
&lt;ul>
&lt;li>Re-read this page during Friday wrap-up alongside [[Priority Rules]] and [[Health Rules]].&lt;/li>
&lt;li>When the same heuristic shows up in 2 separate weekly reports, that&amp;rsquo;s the promotion signal — move it out.&lt;/li>
&lt;li>Upstreaming to team docs is higher leverage than keeping a heuristic personal. Ask: &lt;em>&amp;ldquo;would Thuan / a new hire benefit from this being in the team&amp;rsquo;s docs?&amp;rdquo;&lt;/em> If yes, draft the upstream PR.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Priority Rules</title><link>https://secondbrain.lelouvincx.com/post/pages/priority-rules/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/priority-rules/</guid><description>&lt;ul>
&lt;li>
&lt;h1 id="priority-rules">Priority Rules&lt;/h1>
&lt;ul>
&lt;li>A living set of personal rules for prioritizing tasks. Improve incrementally.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="working-principles">Working principles&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Choose the highest-leverage tasks even when the week&amp;rsquo;s workload is low&lt;/strong> (e.g., sick, leave, traveling). A low-energy week shouldn&amp;rsquo;t slide into a low-leverage week — pick fewer items, but pick the most important ones.&lt;/li>
&lt;li>&lt;strong>3+ week carry-over rule&lt;/strong> — any item carried over 3 or more weeks gets a forcing function:
&lt;ul>
&lt;li>either elevate its priority and schedule it on a specific day, OR&lt;/li>
&lt;li>formally move it to backlog / waiting (with the reason).&lt;/li>
&lt;li>Goal: avoid the &amp;ldquo;always-on but never-done&amp;rdquo; zone.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="priority-tiers">Priority tiers&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>P0 — Urgent&lt;/strong>
&lt;ul>
&lt;li>Must do immediately.&lt;/li>
&lt;li>Usually customer-facing tasks that need a response or mitigation ASAP (e.g., production incident, enterprise customer escalation, data outage).&lt;/li>
&lt;li>Drop other work to handle these.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P1 — High&lt;/strong>
&lt;ul>
&lt;li>Should prioritize doing because some stakeholders are blocking.&lt;/li>
&lt;li>Includes manager-elevated items and teammate-blocking reviews.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 — Normal&lt;/strong>
&lt;ul>
&lt;li>Important but not urgent.&lt;/li>
&lt;li>Picked up when no P1 tasks are active.&lt;/li>
&lt;li>Most internal data work / improvements live here.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 — Personal / Teaching / Free time&lt;/strong>
&lt;ul>
&lt;li>Personal projects, teaching, learning, exploration.&lt;/li>
&lt;li>Can be done in free time, or delegated to others when possible.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h2 id="notes">Notes&lt;/h2>
&lt;ul>
&lt;li>Re-read this page during weekly planning (Friday wrap-up).&lt;/li>
&lt;li>When a rule causes friction in practice, capture the friction here as a new bullet, then iterate.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Product-Led Growth</title><link>https://secondbrain.lelouvincx.com/post/pages/product-led-growth/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/product-led-growth/</guid><description>&lt;h1 id="resources">Resources&lt;/h1>
&lt;ul>
&lt;li>
&lt;ol>
&lt;li>The Foundational &amp;ldquo;Bible&amp;rdquo; of PLG&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://www.productled.org/">ProductLed.org&lt;/a>&lt;/strong>: Run by Wes Bush. This is the gold standard for understanding the &lt;em>why&lt;/em>.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://www.google.com/search?q=https://amplitude.com/guides">Amplitude’s Mastering Retention &amp;amp; Growth Guides&lt;/a>:&lt;/strong> While they sell a product, their playbooks on &amp;ldquo;Behavioral Cohorting&amp;rdquo; are essential for learning how to model user actions into &amp;ldquo;States&amp;rdquo; (e.g., Active, At-Risk, Power User).&lt;/li>
&lt;li>&lt;a href="https://www.notion.so/holistics/Product-led-Growth-51cc25a8964c4d08b366fb88d0ae8fa6">Book - Product-Led Growth&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;ol start="2">
&lt;li>Technical Modeling&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://www.getdbt.com/blog">dbt Labs Blog - Modeling for PLG&lt;/a>:&lt;/strong> Search for their articles on &lt;strong>&amp;ldquo;Modeling the Customer Journey.&amp;rdquo;&lt;/strong> They have excellent deep-dives on how to handle the many-to-many relationship between Users and Accounts in SQL.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://hightouch.com/blog">The Hightouch or Census Blogs (Data Activation)&lt;/a>:&lt;/strong> These companies pioneered &lt;strong>Reverse ETL&lt;/strong>. Their blogs are specifically geared toward engineers building the &amp;ldquo;HubSpot + Product Data&amp;rdquo; loop. Look for &amp;ldquo;How to build a PQL scoring model in Snowflake/BigQuery&amp;rdquo;.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://www.google.com/search?q=https://www.hackingdata.com/">Hacking Data (Newsletter/Blog)&lt;/a>:&lt;/strong> Often covers the technical debt involved in stitching together SaaS tools like HubSpot and Stripe (similar to your Zoho setup).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;ol start="3">
&lt;li>Industry Voices&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://benn.substack.com/">Benn Stancil’s Substack&lt;/a>:&lt;/strong> Benn (founder of Mode) writes deeply about the intersection of BI tools and data modeling. Since you are building a BI-related product, his insights on how users &amp;ldquo;consume&amp;rdquo; data are highly relevant.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://locallyoptimistic.com/community/">Locally Optimistic Slack&lt;/a>:&lt;/strong> A community for data leaders and engineers. There is often a lot of discussion about &amp;ldquo;GTM (Go-To-Market) Data Modeling.&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Projects</title><link>https://secondbrain.lelouvincx.com/post/pages/projects/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/projects/</guid><description>&lt;h1 id="list-of-projects">List of projects&lt;/h1>
&lt;ul>
&lt;li>[[Add2Cart]] — Cross-functional project for the Add2Cart professional service: data pipeline, performance optimization, dynamic markdown, and S3 setup&lt;/li>
&lt;li>[[AI]] — Holistics AI squad work: test suites, AI feature trials, squad coordination with Dat/Tram&lt;/li>
&lt;li>[[Docs]] — Holistics documentation improvements and revamping&lt;/li>
&lt;li>[[Duty Support]] — Rotating on-call data support for Holistics customers (Zendesk tickets, impersonation, troubleshooting)&lt;/li>
&lt;li>[[Freetime]] — Low-priority reading and exploration done in spare time&lt;/li>
&lt;li>[[Internal]] — Holistics internal data team work: dbt, MRR reporting, CI, tracking&lt;/li>
&lt;li>[[Logseq]] — Improvements to this second-brain system: automation, backlog structure, weekly reports&lt;/li>
&lt;li>[[Misc]] — One-off tasks that don&amp;rsquo;t fit other projects&lt;/li>
&lt;li>[[Personal]] — Personal tooling, side projects, migration, self-hosting, learning&lt;/li>
&lt;li>[[Personal Productivity Analysis]] — Personal productivity monitoring: ingest weekly reports + journals into DuckDB (consistent schema with [[Personal Finance]] for later consolidation), build dashboard to track throughput, carry-overs, project mix, priority hit-rate, presales W/L, tooling ROI — drive data-driven planning and 1-on-1 decisions&lt;/li>
&lt;li>[[Presales]] — Holistics presales support: customer demos, solution proposals, competitive analysis&lt;/li>
&lt;li>[[Read]] — Reading and studying: articles, books, courses, youtube&lt;/li>
&lt;li>[[Smartclass]] — Personal side project: an ed-tech app with frontend (shadcn/ui) and releases&lt;/li>
&lt;li>[[Teaching]] — Mentoring and teaching data/SQL: composing projects (Olist), visualization, set-based thinking&lt;/li>
&lt;/ul></description></item><item><title>Self-Serve Analytics</title><link>https://secondbrain.lelouvincx.com/post/pages/self-serve-analytics/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/self-serve-analytics/</guid><description>&lt;ul>
&lt;li>Source: &lt;a href="https://www.holistics.io/blog/self-service-analytics-comic/">https://www.holistics.io/blog/self-service-analytics-comic/&lt;/a>&lt;/li>
&lt;li>Comments (&lt;a href="https://www.reddit.com/r/dataengineering/comments/1bc0bkv/eli5_what_is_selfservice_analytics_comic/">Reddit Link&lt;/a>)
&lt;ul>
&lt;li>&lt;img src="https://media.secondbrain.lelouvincx.com/2025/12/e5a6c2e3bd25459a1b5b17c5fd3f726a.png" alt="">&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Semantic Layer</title><link>https://secondbrain.lelouvincx.com/post/pages/semantic-layer/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/semantic-layer/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://gemini.google.com/u/0/app/d7c56a75abd0fa3d">https://gemini.google.com/u/0/app/d7c56a75abd0fa3d&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Set-based thinking</title><link>https://secondbrain.lelouvincx.com/post/pages/set-based-thinking/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/set-based-thinking/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://chatgpt.com/g/g-p-68c64703caf48191b0583c8a6857f08c-chinh/c/69100b0f-d6c4-8323-8b01-de7b169cf129">https://chatgpt.com/g/g-p-68c64703caf48191b0583c8a6857f08c-chinh/c/69100b0f-d6c4-8323-8b01-de7b169cf129&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Slowly Changing Dimension</title><link>https://secondbrain.lelouvincx.com/post/pages/slowly-changing-dimension/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/slowly-changing-dimension/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://gemini.google.com/app/dabc4a0a978845c1">https://gemini.google.com/app/dabc4a0a978845c1&lt;/a>&lt;/li>
&lt;li>
&lt;h2 id="keynotes">Keynotes&lt;/h2>
&lt;ul>
&lt;li>Slowly Changing Dimensions (SCD) refer to how you store historical changes in data&lt;/li>
&lt;li>Type 0: retain original&lt;/li>
&lt;li>Type 1: overwrite data&lt;/li>
&lt;li>Type 2: add new row for historical record&lt;/li>
&lt;li>Type 3: add new column stand for previous value and current value&lt;/li>
&lt;li>Type 4: keep the main dimension table for current data, while moving all historical changes to a separate history table&lt;/li>
&lt;li>Type 6 (1+2+3=6): create new row but also overwrite current state column&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>stakeholders</title><link>https://secondbrain.lelouvincx.com/post/pages/stakeholders/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/stakeholders/</guid><description>&lt;ul>
&lt;li>k&lt;/li>
&lt;/ul></description></item><item><title>Triangle of Talent</title><link>https://secondbrain.lelouvincx.com/post/pages/triangle-of-talent/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/triangle-of-talent/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://gemini.google.com/share/f5ebbad97a43">https://gemini.google.com/share/f5ebbad97a43&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Trip - Bàu Sấu 04 / 2026</title><link>https://secondbrain.lelouvincx.com/post/pages/trip---b%C3%A0u-s%E1%BA%A5u-04___2026/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/trip---b%C3%A0u-s%E1%BA%A5u-04___2026/</guid><description>&lt;ul>
&lt;li>
&lt;p>Không hiểu sao quan cảnh rất giống trong Ghibli, nhìn rất thơ mà nét nào ra nét nấy.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Vài bức ảnh chụp được&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Con chuồn chuồn màu đỏ xinh ghê&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/04/d974844edd7e3ca2f6766202a3dd18e7.png">https://media.secondbrain.lelouvincx.com/2026/04/d974844edd7e3ca2f6766202a3dd18e7.png&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/04/66bef276e3dfdc62379611575bad9974.png">https://media.secondbrain.lelouvincx.com/2026/04/66bef276e3dfdc62379611575bad9974.png&lt;/a>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Nhìn căn nhà giống trong truyện tranh&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/04/bec3a65711ad14207108b4f84056d418.png">https://media.secondbrain.lelouvincx.com/2026/04/bec3a65711ad14207108b4f84056d418.png&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/04/4f8a777db7397ec4a53df316e565323d.png">https://media.secondbrain.lelouvincx.com/2026/04/4f8a777db7397ec4a53df316e565323d.png&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Cái cây này giống trong truyện của Nguyễn Nhật Ánh&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/04/d8070c4a0a490404e1e2fa0339a649a7.png">https://media.secondbrain.lelouvincx.com/2026/04/d8070c4a0a490404e1e2fa0339a649a7.png&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Quả chò rơi xuống từ mái nhà&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://media.secondbrain.lelouvincx.com/2026/04/94b4d09b2f00191ea46de9b28c26e878.mp4">https://media.secondbrain.lelouvincx.com/2026/04/94b4d09b2f00191ea46de9b28c26e878.mp4&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Ấn tượng rất tốt về nơi này, giống như vừa lạc 1 chuyến vào thế giới Ghibli vậy. Sẽ quay lại vào năm sau, vì tầm này được lợi thế là đi rừng không có muỗi/côn trùng, khô ráo (hơi nóng ẩm tí) và không mưa ngập.&lt;/p></description></item><item><title>Weekly Planning - 2026-W10</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w10/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w10/</guid><description>&lt;h3 id="plan-for-week-10-ampcode">Plan for week 10 (&lt;a href="https://ampcode.com/threads/T-019cac79-1166-729b-b539-364d7fdbb2a3">Ampcode&lt;/a>)&lt;/h3>
&lt;ul>
&lt;li>P1
&lt;ul>
&lt;li>Add2Cart
&lt;ul>
&lt;li>((69a2a14f-91e8-49be-be93-da1c506869aa)) (carry-over from friday, push Anurag).&lt;/li>
&lt;li>((69a2a1cc-94ff-4e02-972e-3b4d720b63ce))&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Internal
&lt;ul>
&lt;li>((69a42ffd-22c7-4b43-8b34-0f663743abcf))&lt;/li>
&lt;li>((69a2a1cc-fc1f-4802-ba56-48183fa9e9a5))&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>P2
&lt;ul>
&lt;li>Internal
&lt;ul>
&lt;li>((697889da-2e31-4c43-9676-81a898db1ea6))&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Presales
&lt;ul>
&lt;li>((69841d05-88ea-4209-82ca-30b11b26e91c))&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>P3
&lt;ul>
&lt;li>Duty Support
&lt;ul>
&lt;li>Document MedEnterprises performance use case on &lt;strong>metrics sheet&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Personal
&lt;ul>
&lt;li>Learn logseq&amp;rsquo;s internal query, and potentially build a skill to query tasks faster.&lt;/li>
&lt;li>Estimate timeline for teacher Thanh.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Weekly Planning - 2026-W11</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w11/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w11/</guid><description>&lt;ul>
&lt;li>&lt;strong>P1&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Review MRR PR &lt;a href="https://github.com/holistics/dbt/pull/812">holistics/dbt#812&lt;/a> — awaiting author&amp;rsquo;s remaining fixes.&lt;/li>
&lt;li>DE-202 trial-first vs call-first — share POC with Vincent/Sriram.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 &amp;ndash; Should Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>DE-201 PR Workflow enhancement — continue commenting.&lt;/li>
&lt;li>Fix excluding internal testing Zoho accounts (&lt;a href="https://linear.app/holistics/issue/DAT-524/exclude-internal-zoho-test-accounts-from-churn-metrics">DAT-524&lt;/a>) — lingering since week 7.&lt;/li>
&lt;li>Continue Cross-Model Calculation — timing may still be premature (docs revamping not far enough).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 &amp;ndash; Nice to Have&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>Read Modeling Patterns docs; watch Taxdome onboarding call; learn embedded analytics use case; compare ChatGPT solutions Omni vs Holistics.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Teaching&lt;/strong>
&lt;ul>
&lt;li>Figure out set-based thinking curriculum; find football dataset for Duc Anh; checkout pudding.cool resources; research visualization resources.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>Consider a Flashcard app for learning English words.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Weekly Planning - 2026-W13</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w13/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w13/</guid><description>&lt;h3 id="plan-for-week-13-mar-23--mar-29-2026">Plan for week 13 (Mar 23 – Mar 29, 2026)&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>P1 &amp;ndash; Must Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>&lt;del>Onboarding call 3 with Basata&lt;/del> — DONE. Shared Date Drill use case, reported Auto Mapping Filter issue.&lt;/li>
&lt;li>Share the embedded dashboards document for different customers — carry-over from call 3. &lt;a href="https://app.excalidraw.com/s/47dQ6UBaw5X/AI7P0NiqONS">Excalidraw&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Review what Hieu wrote on MRR, help him communicate with growth team (2 items: dashboard alignment + currency exchange rate).&lt;/li>
&lt;li>Create an agent skill for fixing data pipelines (dbt) for #data-ops-bot.&lt;/li>
&lt;li>&lt;del>Investigate failed dbt assets in #data-ops-bot&lt;/del> — DONE. Root cause identified (scheduling order + LEFT JOIN bug), SQL refactored, Notion doc written, &lt;a href="https://linear.app/holistics/issue/DAT-569">DAT-569&lt;/a> created.&lt;/li>
&lt;li>&lt;del>Create a new GitHub account for work&lt;/del> — DONE. Next: update Logseq automation to switch between credentials.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 &amp;ndash; Should Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Review Thuan&amp;rsquo;s &lt;a href="https://github.com/holistics/dbt/pull/845">PR #845&lt;/a> on DE-208 / &lt;code>mart_product__dataset_datamodel_dimensions&lt;/code> — open, feedback shared, needs final approval.&lt;/li>
&lt;li>Revise phase 2 of MRR problem — &lt;a href="https://github.com/holistics/dbt/pull/812">PR #812&lt;/a> merged, 2.1 fixed. Remaining: static exchange rate (1.1/1.2), domain mapping (2.2), duplicated companies (2.3).&lt;/li>
&lt;li>Ingest Calendly data into warehouse (&lt;a href="https://linear.app/holistics/issue/DAT-283">DAT-283&lt;/a>) — ongoing. Calendly vs ReadAI assessed as complementary. Pending: standardize source pipeline + unified dbt models.&lt;/li>
&lt;li>Check back Census usage estimate to confirm free tier — due Mar 26.&lt;/li>
&lt;li>DAT-555 resolution — decide whether to remove &lt;code>fct_job_queue_performance&lt;/code>; write Notion doc for team review.&lt;/li>
&lt;li>Fix excluding internal testing Zoho accounts — &lt;a href="https://linear.app/holistics/issue/DAT-524">DAT-524&lt;/a>, lingering since W7.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Add2Cart&lt;/strong>
&lt;ul>
&lt;li>Waiting for Anurag to ingest 6 countries&amp;rsquo; Retailer tables into Redshift (&lt;code>airbyte_schema_*&lt;/code>). Then fix &amp;ldquo;history-only 589 retailers&amp;rdquo; issue.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Teaching&lt;/strong>
&lt;ul>
&lt;li>Brazilian dashboard Dash 2 (Shipping Overview) + demo video for Yen — carry-over.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Docs&lt;/strong>
&lt;ul>
&lt;li>&lt;del>Fix markdown files missing for index pages&lt;/del> — DONE. &lt;a href="https://github.com/holistics/docs/pull/1443">PR #1443&lt;/a> merged.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 &amp;ndash; Nice to Have&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>&lt;del>Run first AI-for-data-ops-bot cycle&lt;/del> — partially done (investigated DAT-569 with agent, documented for Thuan). Next: formalize as reusable agent skill.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>Read Modeling Patterns docs.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>Change to a more professional work avatar.&lt;/li>
&lt;li>Consider a Flashcard app for learning English words.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Focus days suggestion&lt;/strong>
&lt;ul>
&lt;li>&lt;del>Block Tue–Wed for Calendly ingestion + MRR phase 2 planning.&lt;/del> Adjusted: Wed–Thu for MRR review + growth team alignment.&lt;/li>
&lt;li>Fri: wrap up PR #845 review, Calendly pipeline coding.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Weekly Planning - 2026-W14</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w14/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w14/</guid><description>&lt;h3 id="plan-for-week-14-mar-30--apr-4-2026">Plan for week 14 (Mar 30 – Apr 4, 2026)&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>P1 &amp;ndash; Must Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Add2Cart&lt;/strong>
&lt;ul>
&lt;li>Ingest countries data into Retailers table — carry-over from W13 Friday. Complete Redshift SP/table audit (unused SPs + orphan tables identified). Schedule this Monday morning when fresh.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Create an agent skill for fixing data pipelines (dbt) for #data-ops-bot — carry-over from W13. Build on DAT-569 investigation + Thuan&amp;rsquo;s debugging process doc.&lt;/li>
&lt;li>Final approval on Thuan&amp;rsquo;s &lt;a href="https://github.com/holistics/dbt/pull/845">PR #845&lt;/a> (DE-208 / &lt;code>mart_product__dataset_datamodel_dimensions&lt;/code>) — changes requested in W13, needs follow-up review.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>Prepare and attend onboarding call 2 with [[Showbie]].&lt;/li>
&lt;li>Follow up with Basata on next onboarding session.&lt;/li>
&lt;li>Polish embedding documentation — reduce friction for prospects setting up embed portals. Increasing lead volume makes this urgent.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 &amp;ndash; Should Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Visualize schedule of all data lineage (airbyte, data import, prefect sync, dbt table-level, census/fivetran activations) — new backlog item from W13.&lt;/li>
&lt;li>Continue Calendly data pipeline (&lt;a href="https://linear.app/holistics/issue/DAT-283">DAT-283&lt;/a>) — standardize source pipeline, build unified dbt models.&lt;/li>
&lt;li>Fix excluding internal testing Zoho accounts (&lt;a href="https://linear.app/holistics/issue/DAT-524">DAT-524&lt;/a>) — lingering since W7. Timebox: max 2h or explicitly deprioritize.&lt;/li>
&lt;li>Review Hieu&amp;rsquo;s exchange rate document when ready — waiting from W13.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>Investigate Showbie performance concern — raised with Huy in W13, wait for next call then investigate if needed.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Add2Cart&lt;/strong>
&lt;ul>
&lt;li>Document project and guide setup for other countries.&lt;/li>
&lt;li>Project retro with team (Dong).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Teaching&lt;/strong>
&lt;ul>
&lt;li>Brazilian dashboard Dash 2 (Shipping Overview) + demo video for Yen — carry-over from W12.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 &amp;ndash; Nice to Have&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>DAT-555 resolution — decide whether to remove &lt;code>fct_job_queue_performance&lt;/code>; write Notion doc.&lt;/li>
&lt;li>Upgrade &lt;code>dbt-core&lt;/code> of repo dbt to the same version as prefect (compatible).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>Read &lt;a href="https://docs.holistics.io/docs/modeling-patterns">Modeling Patterns&lt;/a> docs.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>Self reflection and update CV.&lt;/li>
&lt;li>Read &lt;a href="https://newsletter.weskao.com/p/too-detailed-in-the-wrong-ways">Levels of Detail in Communication&lt;/a> — from W13 recommended resources.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Focus days suggestion&lt;/strong>
&lt;ul>
&lt;li>Mon: Add2Cart Redshift ingestion (deep work, fresh Ampcode tokens). Thuan&amp;rsquo;s PR #845 final review.&lt;/li>
&lt;li>Tue–Wed: Calendly pipeline + agent skill for dbt ops bot (minimize context switches).&lt;/li>
&lt;li>Thu: Presales calls (Innerspace, Basata follow-up). Polish embedding docs.&lt;/li>
&lt;li>Fri: Zoho accounts fix (timeboxed), backlog grooming, weekly report.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Weekly Planning - 2026-W15</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w15/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w15/</guid><description>&lt;h3 id="plan-for-week-15-apr-6--apr-10-2026">Plan for week 15 (Apr 6 – Apr 10, 2026)&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>P1 &amp;ndash; Must Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Calendly data pipeline (&lt;a href="https://linear.app/holistics/issue/DAT-283">DAT-283&lt;/a>) — elevated to P1 from W14. Currently only demo/onboarding calls ingested; need all 50+ event types. Growth team needs this for sales rep performance and Lead Funnel sales motion enrichment.&lt;/li>
&lt;li>&lt;del>Zendesk debug&lt;/del> → pivoted to upgrade plan (3 options written, WAITING review).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>&lt;del>Onboarding call 1 with Jonas Chorum&lt;/del> — moved to Apr 9. Continue dynamic data source demo prep.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Add2Cart&lt;/strong>
&lt;ul>
&lt;li>&lt;del>Project retro with anh Dong&lt;/del> — carry forward to W16.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 &amp;ndash; Should Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Create agent skill for fixing dbt data pipelines in #data-ops-bot — carry-over from W13.&lt;/li>
&lt;li>Fix excluding internal testing Zoho accounts (&lt;a href="https://linear.app/holistics/issue/DAT-524">DAT-524&lt;/a>) — lingering since W7. &lt;strong>Timebox: max 2h.&lt;/strong>&lt;/li>
&lt;li>DAT-571 Zendesk upgrade plan — get review and decide on option (Fivetran vs Prefect orgs-only vs Airbyte upgrade).&lt;/li>
&lt;li>DAT-555 — get PR reviews for dbt #849 and internal-aml-project #69 (remove &lt;code>fct_job_queue_performance&lt;/code>).&lt;/li>
&lt;li>Contribute to Holistics &lt;a href="https://github.com/holistics/skills">skills&lt;/a> and &lt;a href="https://github.com/holistics/internal-skills">internal-skills&lt;/a> repos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Docs&lt;/strong>
&lt;ul>
&lt;li>Polish embedding documentation — ask anh Tai and anh Huy to clarify scope.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Add2Cart&lt;/strong>
&lt;ul>
&lt;li>Get anh Huy&amp;rsquo;s review on D4 countries guidance document (WAITING).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 &amp;ndash; Nice to Have&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>Read &lt;a href="https://docs.holistics.io/docs/modeling-patterns">Modeling Patterns&lt;/a> docs.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Lead Funnel by Sales Motion (&lt;a href="https://linear.app/holistics/issue/DAT-560">DAT-560&lt;/a>) — review and make a plan; context page created.&lt;/li>
&lt;li>Upgrade &lt;code>dbt-core&lt;/code> of repo dbt to match prefect version.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>Self reflection and update CV.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Progress vs plan (as of Tue)&lt;/strong>
&lt;ul>
&lt;li>DONE: DAT-569 snowplow fix (PRs merged, deployed, backfill success).&lt;/li>
&lt;li>DONE: Add2Cart countries ingestion.&lt;/li>
&lt;li>DONE: DAT-555 downstream models written (waiting PR review).&lt;/li>
&lt;li>DONE: Lead Funnel context page consolidation.&lt;/li>
&lt;li>DONE: Zendesk upgrade plan written (3 options).&lt;/li>
&lt;li>NOT STARTED: Calendly pipeline, agent skill, DAT-524, embedding docs.&lt;/li>
&lt;li>MOVED: Jonas Chorum call → Apr 9. Add2Cart retro → W16.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Focus days suggestion (updated)&lt;/strong>
&lt;ul>
&lt;li>Tue (today): Data sync meeting. Follow up on DAT-555 PR reviews. Lead Funnel planning.&lt;/li>
&lt;li>Wed: Calendly pipeline deep work (P1). DAT-524 timeboxed 2h morning. Embedding docs scope with anh Tai/Huy.&lt;/li>
&lt;li>Thu: Jonas Chorum demo prep. Holistics skills repo contribution. D4 review follow-up with anh Huy.&lt;/li>
&lt;li>Fri: Calendly pipeline continued. Backlog grooming. Agent skill for dbt ops bot.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Weekly Planning - 2026-W16</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w16/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w16/</guid><description>&lt;h3 id="plan-for-week-w16-apr-14--apr-18-2026">Plan for week W16 (Apr 14 – Apr 18, 2026)&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>P1 &amp;ndash; Must Do&lt;/strong> (aligned with manager&amp;rsquo;s priorities from 1-on-1)
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>&lt;del>Transfer MRR project with anh Hieu&lt;/del> — DONE Apr 14. Next: build &lt;code>dim_exchange_rates&lt;/code>, implement dual MRR metrics.&lt;/li>
&lt;li>&lt;del>Write 1-on-1 report&lt;/del> — DONE. Meeting held Apr 15.&lt;/li>
&lt;li>Calendly data pipeline (&lt;a href="https://linear.app/holistics/issue/DAT-283">DAT-283&lt;/a>) — answer anh Dong&amp;rsquo;s review comments on PR &lt;a href="https://github.com/holistics/dbt/pull/853">dbt #853&lt;/a>. Once merged, run models and validate data.&lt;/li>
&lt;li>&lt;code>fct_job_queue_performance&lt;/code> (&lt;a href="https://linear.app/holistics/issue/DAT-555">DAT-555&lt;/a>) — follow up on PR &lt;a href="https://github.com/holistics/dbt/pull/854">dbt #854&lt;/a> review. Once merged, start ~26 weekly backfill chunks.&lt;/li>
&lt;li>Data quality focus (manager priority #1): MRR identity resolution + exchange rates.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 &amp;ndash; Should Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Increase data freshness — explore making impersonation lookup more frequent than daily (&lt;a href="https://linear.app/holistics/issue/DAT-499">DAT-499&lt;/a>). Manager priority #3.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Add2Cart&lt;/strong>
&lt;ul>
&lt;li>&lt;del>Project retro with anh Dong&lt;/del> — WAITING on deal outcome (Simon). Vincent followed up Apr 14. Deprioritize until deal progresses.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Teaching&lt;/strong>
&lt;ul>
&lt;li>Find a football dataset for Duc Anh.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 &amp;ndash; Nice to Have&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Lead Funnel by Sales Motion (&lt;a href="https://linear.app/holistics/issue/DAT-560">DAT-560&lt;/a>) — review and plan after Calendly pipeline stabilizes.&lt;/li>
&lt;li>Contribute to Holistics &lt;a href="https://github.com/holistics/skills">skills&lt;/a> and &lt;a href="https://github.com/holistics/internal-skills">internal-skills&lt;/a> repos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>&lt;del>Polish embedding documentation&lt;/del> — deprioritized per 1-on-1 (not the right timing). Maintain informally.&lt;/li>
&lt;li>Read &lt;a href="https://docs.holistics.io/docs/modeling-patterns">Modeling Patterns&lt;/a> docs.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>Self reflection and update CV.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Focus days suggestion&lt;/strong>
&lt;ul>
&lt;li>Mon: (done) Weekly planning, read DE-187, MRR transfer with anh Hieu (DONE).&lt;/li>
&lt;li>Tue: Answer Calendly PR reviews (DAT-283). Data sync meeting. 1-on-1 report.&lt;/li>
&lt;li>Wed: Calendly pipeline — run models if PR merged. Embedding doc proposal for anh Huy/Tai.&lt;/li>
&lt;li>Thu: DAT-555 follow-up. Teaching dataset search. MRR exchange rate next steps.&lt;/li>
&lt;li>Fri: Wrap-up, backlog grooming, weekly report friday prep.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Carry-over watch&lt;/strong>
&lt;ul>
&lt;li>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Item&lt;/th>
 &lt;th>Since&lt;/th>
 &lt;th>Weeks&lt;/th>
 &lt;th>Action&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>DAT-524 Fix excluding internal Zoho accounts&lt;/td>
 &lt;td>W7&lt;/td>
 &lt;td>9&lt;/td>
 &lt;td>Deprioritize formally or timebox 2h this week&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Agent skill for dbt #data-ops-bot&lt;/td>
 &lt;td>W13&lt;/td>
 &lt;td>3&lt;/td>
 &lt;td>Timebox 2h or defer to W17&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Add2Cart retro with anh Dong&lt;/td>
 &lt;td>W15&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>Schedule this week&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DAT-283 Calendly pipeline PR review&lt;/td>
 &lt;td>W15&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>Follow up with anh Dong&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DAT-555 fct_job_queue_performance PR review&lt;/td>
 &lt;td>W14&lt;/td>
 &lt;td>2&lt;/td>
 &lt;td>Follow up with reviewer&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Weekly Planning - 2026-W17</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w17/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w17/</guid><description>&lt;h3 id="plan-for-week-w17-apr-20--apr-25-2026">Plan for week W17 (Apr 20 – Apr 25, 2026)&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>P1 &amp;ndash; Must Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Duty Support&lt;/strong>
&lt;ul>
&lt;li>Review AI sharing dashboard for Aurora (enterprise customer) — &lt;a href="https://holistics.slack.com/archives/C79QB3FEV/p1776280889830069">Slack&lt;/a>. &lt;strong>Monday priority.&lt;/strong>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>Basata follow up on light/dark theme (enterprise customer) — &lt;a href="https://holistics.slack.com/archives/C0AF90RFWHE/p1776350787735709">Slack&lt;/a>. &lt;strong>Monday priority.&lt;/strong>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Merge Calendly PR &lt;a href="https://github.com/holistics/dbt/pull/853">dbt #853&lt;/a> (approved, mergeable). Run dbt models, validate data in Holistics BI. Then fix downstream &lt;code>fct_sales_leads&lt;/code> join. &lt;a href="https://linear.app/holistics/issue/DAT-283">DAT-283&lt;/a>.&lt;/li>
&lt;li>Review anh Dong&amp;rsquo;s CircleCI PR &lt;a href="https://github.com/holistics/prefect/pull/397">prefect #397&lt;/a> (&lt;a href="https://linear.app/holistics/issue/DAT-579">DAT-579&lt;/a>) — expand test metadata ingestion + backfill flow.&lt;/li>
&lt;li>Start MRR exchange rate work (&lt;a href="https://linear.app/holistics/issue/DAT-576">DAT-576&lt;/a>) — build &lt;code>dim_exchange_rates&lt;/code> with live rate ingestion (Google Finance/ECB). Manager priority #1.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Docs&lt;/strong>
&lt;ul>
&lt;li>Add demo video for local development docs — draft scenario, discuss with anh Huy Vu/Dat. Elevated to P1 per presales sync.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 &amp;ndash; Should Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Clean up BI layer for job queue dashboards: delete [WIP] Job Queue Performance 3.0, migrate v2 and Report Monitoring to 4.0.&lt;/li>
&lt;li>Increase data freshness — explore making impersonation lookup more frequent than daily (&lt;a href="https://linear.app/holistics/issue/DAT-499">DAT-499&lt;/a>). Manager priority #3.&lt;/li>
&lt;li>Lead Funnel by Sales Motion (&lt;a href="https://linear.app/holistics/issue/DAT-560">DAT-560&lt;/a>) — review and plan after Calendly pipeline stabilizes.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Teaching&lt;/strong>
&lt;ul>
&lt;li>Find a football dataset for Duc Anh.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 &amp;ndash; Nice to Have&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>Contribute to Holistics &lt;a href="https://github.com/holistics/skills">skills&lt;/a> and &lt;a href="https://github.com/holistics/internal-skills">internal-skills&lt;/a> repos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>Read &lt;a href="https://docs.holistics.io/docs/modeling-patterns">Modeling Patterns&lt;/a> docs.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>Self reflection and update CV.&lt;/li>
&lt;li>Consider downgrading Google One plan.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Backlog&lt;/strong> (deprioritized, pick up after MRR/Calendly)
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>: DAT-524 Fix excluding internal Zoho accounts — small task, 10 weeks carry-over. Not urgent.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Focus days suggestion&lt;/strong>
&lt;ul>
&lt;li>Mon: Aurora AI dashboard review + Basata light/dark theme follow-up (enterprise customers first). Merge Calendly PR, run models.&lt;/li>
&lt;li>Tue: Validate Calendly data in Holistics BI. Fix downstream &lt;code>fct_sales_leads&lt;/code>. Review CircleCI PR for anh Dong.&lt;/li>
&lt;li>Wed: Start &lt;code>dim_exchange_rates&lt;/code> design. Demo video scenario drafting.&lt;/li>
&lt;li>Thu: MRR exchange rate deep work continued. BI layer cleanup (job queue dashboards). Teaching dataset search.&lt;/li>
&lt;li>Fri: Wrap-up, backlog grooming, weekly report.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Carry-over watch&lt;/strong>
&lt;ul>
&lt;li>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Item&lt;/th>
 &lt;th>Since&lt;/th>
 &lt;th>Weeks&lt;/th>
 &lt;th>Action&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>DAT-560 Lead Funnel by Sales Motion&lt;/td>
 &lt;td>W14&lt;/td>
 &lt;td>3&lt;/td>
 &lt;td>Unblocked once Calendly merges&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DAT-283 Calendly pipeline (approved, not merged)&lt;/td>
 &lt;td>W15&lt;/td>
 &lt;td>2&lt;/td>
 &lt;td>Merge Monday&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Demo video for local dev docs&lt;/td>
 &lt;td>W15&lt;/td>
 &lt;td>2&lt;/td>
 &lt;td>Elevated to P1 this week&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Weekly Planning - 2026-W18</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w18/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w18/</guid><description>&lt;h3 id="plan-for-week-w18-apr-27--may-3-2026">Plan for week W18 (Apr 27 – May 3, 2026)&lt;/h3>
&lt;blockquote>
&lt;p>&lt;strong>Holiday note&lt;/strong>: Thu Apr 30 (Reunification Day) and Fri May 1 (Labour Day) are public holidays in Vietnam. Effective workdays = Mon, Tue, Wed.&lt;/p>&lt;/blockquote>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Progress vs plan (as of Tue Apr 28)&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>DONE: DAT-283 Calendly BI rollout (&lt;a href="https://github.com/holistics/internal-aml-project/pull/78">PR #78&lt;/a> merged Apr 28); DAT-585 Tenant Lookup User List fix (&lt;a href="https://github.com/holistics/internal-aml-project/pull/77">PR #77&lt;/a> merged Apr 27); CircleCI prefect PR #397 round-1 review.&lt;/li>
&lt;li>IN PROGRESS: DAT-584 deploy_dbdocs fix (&lt;a href="https://github.com/holistics/dbt/pull/860">PR #860&lt;/a>) — round 1 done, raised concern on &lt;code>relationships.dbml&lt;/code> exposure; CircleCI dbt PR #858 — pending round 1.&lt;/li>
&lt;li>NEW (incoming P1): BuyCo ticket triage — anh Huy escalated as urgent active prospect; watch demo call first.&lt;/li>
&lt;li>NEW (incoming P1): &lt;strong>Wamly onboarding call Wed Apr 29 18:00&lt;/strong> — support Wudi as note-taker / follow-up / product feedback. SCS plan, drill-down on pivot is make-or-break. &lt;a href="https://holistics.slack.com/archives/C08EN0G719N/p1776844250302559">Slack&lt;/a>.&lt;/li>
&lt;li>NEW (P2): 1Win case clarification per Quinn (Slack DM Apr 28).&lt;/li>
&lt;li>NOT STARTED: DAT-576 MRR exchange rate kickoff (target Wed Apr 29); DAT-555 follow-up; DAT-556 dbt test fix.&lt;/li>
&lt;li>MOVED: Demo video scoping — still waiting on Khai To&amp;rsquo;s MCP demo (no movement).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>P1 &amp;ndash; Must Do&lt;/strong>&lt;/p></description></item><item><title>Weekly Planning - 2026-W19</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w19/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w19/</guid><description>&lt;h3 id="plan-for-week-w19-may-4--may-10-2026">Plan for week W19 (May 4 – May 10, 2026)&lt;/h3>
&lt;blockquote>
&lt;p>First full 5-workday week after the W18 holidays. Use the energy. Mon AM is the forcing-function slot for MRR exchange rate (3-week carry-over).&lt;/p>&lt;/blockquote>
&lt;ul>
&lt;li>&lt;strong>Progress vs plan (as of Tue May 5)&lt;/strong>
&lt;ul>
&lt;li>DONE: Set up GitHub App for &lt;code>bi.holistics.io&lt;/code> (Mon); 1Win Zoho check (Mon); Review DAT-584 round 1 (Mon); Prep for anh Nam&amp;rsquo;s call with Bicycle Transit (Tue, P1 added mid-week); Align Data Import schedules / DAT-587 (Tue, P2 added mid-week).&lt;/li>
&lt;li>IN-PROGRESS: CircleCI dbt PR #858 review for anh Dong — debugged failing CI tests, cherry-picked into &lt;a href="https://github.com/holistics/dbt/pull/861">dbt#861&lt;/a>, waiting for next review request.&lt;/li>
&lt;li>WAITING: BuyCo triage follow-through — 14-thread sweep continues; chasing PMs (Vy, Hien, Di) + BuyCo screen recording on item 10. Wamly — Farren on paternal leave, Chukwudi reaches out ~May 11–15 (now in backlog).&lt;/li>
&lt;li>MOVED / NEW: Showbie deal lost to Omni — feedback synthesis added for Wed (May 6). Auto-export dashboard PNG feedback to Khai To drafted (P2, Docs/feedback). Onboarding call 4 with [[Basata]] scheduled May 19.&lt;/li>
&lt;li>NOT STARTED (slipped Mon): &lt;strong>MRR exchange rate (DAT-576)&lt;/strong> — Mon AM hard-block consumed by GitHub App + carry-overs; Tue went to Bicycle Transit prep. &lt;strong>Forcing function: take Wed AM 09:00–12:00 slot, otherwise escalate to anh Triet for re-scoping.&lt;/strong> DAT-555 follow-up; DAT-556 dbt test fix; BI cleanup; DAT-560 unblock-or-backlog pass; H1 self-reflection + CV.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P1 &amp;ndash; Must Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>MRR exchange rate kickoff&lt;/strong> (&lt;a href="https://linear.app/holistics/issue/DAT-576">DAT-576&lt;/a>) — &lt;strong>3-week carry-over&lt;/strong> (W16 → W18). Mon AM (09:00–12:00 hard block): design &lt;code>dim_exchange_rates&lt;/code> (rate source = ECB or Google Finance), Tue: write Linear scoping comment + small POC. &lt;strong>If still blocked by Wed EOD, escalate to anh Triet for re-scoping.&lt;/strong> Manager priority #P1.&lt;/li>
&lt;li>Resolve &lt;a href="https://linear.app/holistics/issue/DAT-555">DAT-555&lt;/a> follow-up — captured in [[2026-04-27]]. Carry-over.&lt;/li>
&lt;li>Resolve DAT-556 dbt test failure — root cause analysed Apr 22 (&lt;a href="https://ampcode.com/threads/T-019db0fa-7701-738f-9b5e-22ca5ffe355c">Ampcode&lt;/a>). Apply the fix. Carry-over.&lt;/li>
&lt;li>Close out CircleCI dbt PR &lt;a href="https://github.com/holistics/dbt/pull/858">#858&lt;/a> review round 1 for anh Dong (&lt;a href="https://ampcode.com/threads/T-019dce51-5677-70a9-8363-044da9f0ab49">Ampcode&lt;/a>). Carry-over from W18 — slipped because of BuyCo + Wamly. &lt;strong>Mid-week update&lt;/strong>: round 1 done, CI debug done, cherry-picked into &lt;a href="https://github.com/holistics/dbt/pull/861">dbt#861&lt;/a> — IN-PROGRESS, waiting for next review request.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>BuyCo triage follow-through&lt;/strong> ([[BuyCo]]) — &lt;em>added Mon May 4&lt;/em>. Continue checking the 14 threads in &lt;code>#holistics-buyco-external&lt;/code>; chase PM replies on items 1, 2, 4, 11 (Vy Huynh, Hien Nguyen, Di Hoang) and BuyCo screen recording on item 10. Daily 15-min check.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 &amp;ndash; Should Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Self-reflection + CV update for 2026 H1 performance review&lt;/strong> — &lt;em>elevated from P3&lt;/em>. PR cycle is coming up; need a reflection draft + refreshed CV before manager check-in. &lt;strong>Block out next weekend (Sat May 9 + Sun May 10)&lt;/strong> for deep-work session.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>&lt;del>1Win duplicate-customer check in Zoho billing per Quinn&amp;rsquo;s &lt;a href="https://holistics.slack.com/archives/D093M1AAALS/p1777357792738899">DM&lt;/a>. Timebox 1h. Carry-over from W18.&lt;/del> — &lt;strong>DONE Mon May 4&lt;/strong>.&lt;/li>
&lt;li>Lead Funnel by Sales Motion (&lt;a href="https://linear.app/holistics/issue/DAT-560">DAT-560&lt;/a>) — &lt;strong>5-week carry-over&lt;/strong> (since W14). Now that Calendly BI layer is live, do a 30-min &amp;ldquo;is this still blocked?&amp;rdquo; pass. If yes, formally backlog with a date; if no, schedule a slot. &lt;strong>Do not let this drift again.&lt;/strong>&lt;/li>
&lt;li>Increase data freshness — impersonation lookup more frequent than daily (&lt;a href="https://linear.app/holistics/issue/DAT-499">DAT-499&lt;/a>). Manager priority #P3.&lt;/li>
&lt;li>BI cleanup: delete &lt;code>[WIP] Job Queue Performance 3.0&lt;/code>; migrate v2 + Report Job Queue Performance Monitoring to 4.0. Carry-over.&lt;/li>
&lt;li>&lt;del>Review DAT-584 round 2&lt;/del> — round 1 closed Mon May 4 (&lt;a href="https://github.com/holistics/dbt/pull/860">dbt#860&lt;/a>, &lt;a href="https://ampcode.com/threads/T-019df159-7d11-746a-bf1b-ef7551ae0a88">Ampcode&lt;/a>). Awaiting author for round 2.&lt;/li>
&lt;li>&lt;del>Set up GitHub App for &lt;code>bi.holistics.io&lt;/code> (new in [[2026-05-25]]). Scope first — 30-min design pass.&lt;/del> — &lt;strong>DONE Mon May 4&lt;/strong> (&lt;a href="https://ampcode.com/threads/T-019df172-23b4-734a-8814-a5d065eb27fb">Ampcode&lt;/a>).&lt;/li>
&lt;li>&lt;strong>NEW (Tue) — Align Data Import schedules&lt;/strong> (&lt;a href="https://linear.app/holistics/issue/DAT-587">DAT-587&lt;/a>) — DONE May 5 via &lt;a href="https://holistics.slack.com/archives/C05JPT5LDUL/p1777890184927409">Slack&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Basata catch-up call — Tue May 5&lt;/strong> (&lt;a href="https://holistics.slack.com/archives/C0AF90RFWHE/p1776782158758269?thread_ts=1776350787.735709&amp;amp;cid=C0AF90RFWHE">thread&lt;/a>). Sync with Taha on the dual-dashboard plan during this call — replaces the W18 &amp;ldquo;soft check-in&amp;rdquo; follow-up.&lt;/li>
&lt;li>&lt;del>Soft check-in to Showbie (Harsha)&lt;/del> — &lt;strong>DONE&lt;/strong>. &lt;strong>Update May 4: lost the deal to Omni&lt;/strong> (&lt;a href="https://holistics.slack.com/archives/C04QCTRQCSC/p1777907068306159">1&lt;/a>). Action Wed May 6: synthesize Holistics-vs-Omni learning + chase Harsha for personal feedback.&lt;/li>
&lt;li>&lt;strong>NEW (Tue) — Bicycle Transit prep for anh Nam&amp;rsquo;s call&lt;/strong> — DONE May 5 (&lt;a href="https://holistics.slack.com/archives/C95QEV4JF/p1777948848864219">Slack&lt;/a>, &lt;a href="https://ampcode.com/threads/T-019df6a5-749c-720f-8e78-a24dfb66af1c">Ampcode prep&lt;/a>). Mock-demo workflow ran end-to-end.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Wamly&lt;/strong> — &lt;strong>WAITING&lt;/strong> (was P1 in earlier draft). Farren cancelled Apr 29 call (urgent matter), now on &lt;strong>10-day paternal leave from May 1&lt;/strong>; Chukwudi will reach out in ~2 weeks per the &lt;a href="https://holistics.slack.com/archives/C0B08BLRLH3/p1777460607890169">reschedule thread&lt;/a>. &lt;strong>No action this week&lt;/strong> — re-pick around May 11–15. Trial-expires-May-6 panic moot since customer is unavailable; will need a trial extension request when Farren returns.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 &amp;ndash; Nice to Have&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Docs&lt;/strong>
&lt;ul>
&lt;li>Add demo video for local dev — &lt;strong>WAITING on Khai To&lt;/strong> (PM lead, squad modeling) to release the &lt;strong>2-way sync tool in &lt;code>holistics&lt;/code> CLI&lt;/strong>. Demo should land &lt;em>after&lt;/em> that ships so we lead with the new flow. &lt;strong>3-week carry-over&lt;/strong> (W15) — keep on watch but not actionable this week; revisit weekly until Khai&amp;rsquo;s release ships.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>Review and update [[Personal Context]] (new in backlog this week).&lt;/li>
&lt;li>Research 1Long alternatives for emergency savings (decide if migration is worth it).&lt;/li>
&lt;li>Continue Obsidian → Logseq notes migration.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Teaching&lt;/strong>
&lt;ul>
&lt;li>Find a football dataset for Duc Anh. Carry-over.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Read&lt;/strong>
&lt;ul>
&lt;li>&lt;a href="https://newsletter.weskao.com/p/too-detailed-in-the-wrong-ways">Wes Kao — Levels of detail in communication&lt;/a>.&lt;/li>
&lt;li>&lt;a href="https://docs.holistics.io/docs/modeling-patterns">Modeling Patterns docs&lt;/a> (Presales).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Backlog&lt;/strong> (deprioritized, do not pull unless P1/P2 slate is clear)
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>: DAT-524 Fix excluding internal Zoho accounts — &lt;strong>12 weeks carry-over&lt;/strong>. Action this week: raise in next 1-on-1 to formally drop or assign owner.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Focus days suggestion&lt;/strong>
&lt;ul>
&lt;li>Mon (May 4): GitHub App for &lt;code>bi.holistics.io&lt;/code> (quick win, scope first). BuyCo Slack sweep + thread chases. PR reviews: CircleCI dbt #858 + dbdocs #860 round 2. 1Win Zoho check (1h timebox)&lt;/li>
&lt;li>Tue (May 5): DAT-555 + DAT-556 small wins. &lt;strong>Basata catch-up call&lt;/strong> (sync with Taha on dual-dashboard plan). 15-min BuyCo sweep.&lt;/li>
&lt;li>Wed (May 6): MRR exchange rate continued. 15-min BuyCo sweep.&lt;/li>
&lt;li>Thu (May 7): BI cleanup. &lt;strong>MRR exchange rate deep work&lt;/strong> — design &lt;code>dim_exchange_rates&lt;/code>, pick rate source, write Linear scoping comment + small POC.&lt;/li>
&lt;li>Fri (May 8): Wrap-up + W19 weekly report.&lt;/li>
&lt;li>&lt;strong>Sat–Sun (May 9–10): H1 self-reflection draft + CV refresh&lt;/strong> for the upcoming 2026 H1 performance review. Skip Smartclass commits. Keep at least Sat morning slow.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Carry-over watch&lt;/strong>
&lt;ul>
&lt;li>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Item&lt;/th>
 &lt;th>Since&lt;/th>
 &lt;th>Weeks&lt;/th>
 &lt;th>Action&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>DAT-524 Fix excluding internal Zoho accounts&lt;/td>
 &lt;td>W7&lt;/td>
 &lt;td>12&lt;/td>
 &lt;td>&lt;strong>Raise in 1-on-1 — formally drop or assign owner&lt;/strong>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DAT-560 Lead Funnel by Sales Motion&lt;/td>
 &lt;td>W14&lt;/td>
 &lt;td>5&lt;/td>
 &lt;td>30-min unblock-or-backlog pass; do not let drift&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Demo video for local dev docs&lt;/td>
 &lt;td>W15&lt;/td>
 &lt;td>4&lt;/td>
 &lt;td>WAITING on Khai To 2-way sync CLI release; revisit weekly&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DAT-576 MRR exchange rate&lt;/td>
 &lt;td>W16&lt;/td>
 &lt;td>3&lt;/td>
 &lt;td>&lt;strong>Forcing function: Mon AM hard block&lt;/strong>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DAT-555 follow-up&lt;/td>
 &lt;td>W18&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>Mon PM&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DAT-556 dbt test fix&lt;/td>
 &lt;td>W17&lt;/td>
 &lt;td>2&lt;/td>
 &lt;td>Mon PM&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Wamly onboarding call&lt;/td>
 &lt;td>W18&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>WAITING — Farren on 10-day paternal leave; Chukwudi reaches out ~May 11–15&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>1Win Zoho check&lt;/td>
 &lt;td>W18&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>Wed 1h timebox&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BuyCo triage follow-through&lt;/td>
 &lt;td>W19&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>Daily 15-min Slack sweep + chase PM replies&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Health rules (continuing from W17 LEARNING)&lt;/strong>
&lt;ul>
&lt;li>No gaming after 18:00 on weeknights (W17 commitment — verify it held this week).&lt;/li>
&lt;li>3x short night jogs this week (post-work, lower-temp window) — direct response to W18 badminton breathlessness signal.&lt;/li>
&lt;li>Eat before exercise. No empty-stomach badminton.&lt;/li>
&lt;li>Weekend booked for H1 self-reflection + CV refresh — skip Smartclass commits to avoid two-in-a-row non-rest weekends.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Principles to apply this week (from W18 LEARNING)&lt;/strong>
&lt;ul>
&lt;li>Vague task → time-block + decompose to smallest concrete next step (Wait But Why).&lt;/li>
&lt;li>Customer ask → frame as &lt;em>&amp;ldquo;here is the recipe, happy to pair if helpful&amp;rdquo;&lt;/em> rather than &lt;em>&amp;ldquo;I&amp;rsquo;ll do it for you&amp;rdquo;&lt;/em>.&lt;/li>
&lt;li>Small P1 ships before big P2 context-switch (do not let cheap items slip when escalations land).&lt;/li>
&lt;li>Daily journals are 100% me. LLM only for boilerplate.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Weekly Planning - 2026-W20</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w20/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w20/</guid><description>&lt;h3 id="plan-for-week-w20-may-11--may-17-2026">Plan for week W20 (May 11 – May 17, 2026)&lt;/h3>
&lt;blockquote>
&lt;p>Big W19 wins: DAT-560 Lead Funnel by Sales Motion (5-week carry-over) + DAT-555 follow-up both &lt;strong>closed&lt;/strong>. Big risk W20: &lt;strong>DAT-576 MRR exchange rate now 4-week carry-over&lt;/strong> — Hieu left, treat as restart. Mon = context recovery, not implementation. Showbie synthesis owed. Wamly back mid-week (Chukwudi ~May 11–15). [[Basata]] onboarding call 4 Tue May 19 (W21 — prep Fri).&lt;/p>&lt;/blockquote>
&lt;ul>
&lt;li>&lt;strong>P1 &amp;ndash; Must Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>MRR exchange rate restart&lt;/strong> (&lt;a href="https://linear.app/holistics/issue/DAT-576">DAT-576&lt;/a>) — &lt;strong>4-week carry-over&lt;/strong>, manager priority. &lt;strong>Treat as restart — Hieu left, implementation context lost.&lt;/strong> Mon AM = context recovery pass (re-read [[[Internal] Customers&amp;rsquo; MRR (Exchange Rate)]], DAT-177, Notion docs; trace &lt;code>fct_daily_mrr.exchange_rate_to_sgd&lt;/code> upstream in dbt). Mon PM = 30-min sync w/ anh Triet (recover his earlier experiment, decide rate source, decide backfill stance). Tue = draft &lt;code>dim_exchange_rates&lt;/code> schema + ECB approach in Linear (no code). Wed = POC ingest if scoping signed off. &lt;strong>Escalate to anh Triet by Wed EOD if blocked.&lt;/strong>&lt;/li>
&lt;li>Close out CircleCI dbt PR &lt;a href="https://github.com/holistics/dbt/pull/858">#858&lt;/a> review for anh Dong — IN-PROGRESS, awaiting next review request (&lt;a href="https://ampcode.com/threads/T-019e06d0-7afe-750c-958b-0c25165e923c">Ampcode&lt;/a>). Respond same-day.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Showbie loss synthesis + chase Harsha for personal feedback&lt;/strong> — slipped from W19 Wed. Block 2h Wed AM. Output: 1-page Holistics-vs-Omni learning note (focus on Looker-migration moat + security risk perception) + outreach to Harsha. Apply &lt;em>The Mom Test&lt;/em> questioning style.&lt;/li>
&lt;li>&lt;strong>Bicycle Transit follow-through&lt;/strong> — relay Microsoft Fabric DW question to anh Huy Vu (modeling). Confirm SSH algo (RSA only, no Ed25519) for Azure DevOps catch.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Docs&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Add demo video for local development docs&lt;/strong> — P1 in [[Backlog]]. Still WAITING on Khai To&amp;rsquo;s 2-way sync CLI; do scenario draft + discuss with anh Huy Vu/Dat. Set scoping by Wed.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 &amp;ndash; Should Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>H1 self-reflection draft + CV refresh&lt;/strong> for 2026 H1 performance review — block &lt;strong>Sat May 16 + Sun May 17&lt;/strong> for deep work (slid from W19 weekend due to DAT-560 push).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>DAT-499&lt;/strong> — Increase impersonation-lookup data freshness. Manager-elevated context.&lt;/li>
&lt;li>&lt;strong>Continue Cross-Model Calculation&lt;/strong> (&lt;a href="https://linear.app/holistics/issue/DAT-504">DAT-504&lt;/a>, [[Backlog]]). Re-evaluate timing post-DAT-576 kickoff.&lt;/li>
&lt;li>&lt;strong>Upgrade &lt;code>dbt-core&lt;/code> of repo dbt&lt;/strong> to match prefect.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Wamly onboarding call&lt;/strong> — re-pick around May 11–15 per the &lt;a href="https://holistics.slack.com/archives/C0B08BLRLH3/p1777460607890169">reschedule thread&lt;/a>. When Chukwudi reaches out, schedule + send trial-extension request (Farren&amp;rsquo;s trial expired May 6).&lt;/li>
&lt;li>&lt;strong>Prep for [[Basata]] onboarding call 4 (Tue May 19)&lt;/strong> — sync with Taha on dual-dashboard plan + dark-mode follow-up. Block 2h Fri.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Docs&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Send the auto-export dashboard PNG feedback&lt;/strong> to Khai To (currently &lt;code>draft&lt;/code> in [[Backlog]]). Send once 2-way sync CLI ships, otherwise polish + hold.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 &amp;ndash; Nice to Have&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Personal&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Auto-format &lt;code>execute_aql&lt;/code> JSON → markdown amp plugin&lt;/strong> — queued IDEA from W19 (&lt;a href="https://ampcode.com/threads/T-019dfce2-bbba-768a-8fda-3574f461e354">Ampcode&lt;/a>). 1-day timebox.&lt;/li>
&lt;li>&lt;strong>Daily Slack ingest cronjob POC&lt;/strong> — see W19 IDEA. Use &lt;a href="https://docs.slack.dev/tools/slack-cli/reference/commands/slack_activity/#description">slack-cli activity&lt;/a>. Read-only first, no transform.&lt;/li>
&lt;li>&lt;strong>Migrate journal notes from Obsidian&lt;/strong> (in-progress).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Teaching&lt;/strong>
&lt;ul>
&lt;li>Set-based vs row-based thinking exploration; visualization resources research.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Backlog&lt;/strong> (deprioritized, do not pull unless P1/P2 slate is clear)
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>: DAT-524 Fix excluding internal Zoho test accounts — &lt;strong>13-week carry-over&lt;/strong>. &lt;strong>Action this week&lt;/strong>: raise in next 1-on-1 to formally drop or assign owner.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Focus days suggestion&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Mon (May 11)&lt;/strong>: &lt;strong>MRR context recovery (09:00–12:00 hard block)&lt;/strong> — re-read MRR knowledge page + DAT-177 + Notion docs; trace &lt;code>fct_daily_mrr.exchange_rate_to_sgd&lt;/code> upstream. PM: 30-min sync w/ anh Triet on rate source + backfill. BuyCo daily sweep.&lt;/li>
&lt;li>&lt;strong>Tue (May 12)&lt;/strong>: MRR — draft &lt;code>dim_exchange_rates&lt;/code> schema + ECB approach in Linear comment, tag Sriram + Vincent. Bicycle Transit follow-through (Fabric DW Q to anh Huy Vu, SSH algo confirm). Address CircleCI dbt #858 if review lands.&lt;/li>
&lt;li>&lt;strong>Wed (May 13)&lt;/strong>: MRR POC (1-month ECB ingest) if scoping signed off &lt;strong>OR escalate to anh Triet&lt;/strong>. &lt;strong>Showbie synthesis (2h AM)&lt;/strong>. DAT-499 design pass.&lt;/li>
&lt;li>&lt;strong>Thu (May 14)&lt;/strong>: DAT-504 re-evaluation. Demo video scenario draft (Docs). 1-on-1 — raise DAT-524 backlog drop.&lt;/li>
&lt;li>&lt;strong>Fri (May 15)&lt;/strong>: [[Basata]] call 4 prep (2h). Wrap-up + W20 weekly report. Auto-format AQL plugin (P3) if time.&lt;/li>
&lt;li>&lt;strong>Sat–Sun (May 16–17)&lt;/strong>: &lt;strong>H1 self-reflection draft + CV refresh&lt;/strong> for 2026 H1 performance review. Skip Smartclass commits.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Carry-over watch&lt;/strong>
&lt;ul>
&lt;li>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Item&lt;/th>
 &lt;th>Since&lt;/th>
 &lt;th>Weeks&lt;/th>
 &lt;th>Action&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>DAT-576 MRR exchange rate&lt;/td>
 &lt;td>W16 (Apr 13)&lt;/td>
 &lt;td>&lt;strong>4&lt;/strong>&lt;/td>
 &lt;td>&lt;strong>Restart&lt;/strong> — Hieu left, context lost. Mon AM = recovery pass. Wed EOD = decision point: POC or escalate to anh Triet.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>CircleCI dbt PR #858 review&lt;/td>
 &lt;td>W18 (Apr 27)&lt;/td>
 &lt;td>2&lt;/td>
 &lt;td>IN-PROGRESS — respond same-day to next review request.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Wamly onboarding&lt;/td>
 &lt;td>W18 (Apr 27)&lt;/td>
 &lt;td>2&lt;/td>
 &lt;td>Customer-side block (paternal leave). Re-pick May 11–15.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Add demo video for local dev docs&lt;/td>
 &lt;td>W17 (Apr 20)&lt;/td>
 &lt;td>3&lt;/td>
 &lt;td>Scenario draft this week regardless of CLI ship.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DAT-524 exclude internal Zoho accounts&lt;/td>
 &lt;td>W7 (Feb 9)&lt;/td>
 &lt;td>&lt;strong>13&lt;/strong>&lt;/td>
 &lt;td>Raise in 1-on-1 to formally drop or reassign.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Showbie loss synthesis&lt;/td>
 &lt;td>W19 (May 4)&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>Block Wed AM.&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Weekly Planning - 2026-W21</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w21/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w21/</guid><description>&lt;h3 id="plan-for-week-w21-may-18--may-24-2026">Plan for week W21 (May 18 – May 24, 2026)&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Progress vs plan (as of Tue May 19)&lt;/strong>
&lt;ul>
&lt;li>DONE:
&lt;ul>
&lt;li>Power BI playbook — published to docs (&lt;a href="https://docs.holistics.io/docs/from-others/power-bi/conceptual-differences">conceptual-differences&lt;/a>, &lt;a href="https://docs.holistics.io/docs/from-others/power-bi/migrating-to-holistics">migrating-to-holistics&lt;/a>). POC end-to-end migration via Claude Code + custom skill.&lt;/li>
&lt;li>BuyCo onboarding call (Tue May 19) — closed. Tech onboarding checklist in &lt;a href="https://www.notion.so/holistics/Shared-Technical-Onboarding-BuyCo-365f89dc7e49807084a3e63f7a5a103d">Notion&lt;/a>. Hide-confidential-data POC kicked off.&lt;/li>
&lt;li>Basata onboarding call 4 — closed.&lt;/li>
&lt;li>Enhance Fitness call watched + RFP assessed.&lt;/li>
&lt;li>Cross-metric calculation doc review (carry-back, #P2).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>IN PROGRESS / WAITING:
&lt;ul>
&lt;li>&lt;code>migrate-power-bi&lt;/code> AI skill PR (&lt;a href="https://github.com/holistics/skills/pull/10">holistics/skills#10&lt;/a>) — awaiting anh Khai review.&lt;/li>
&lt;li>BuyCo SLA / response-time data pull (new TODO from call) — P1, scheduled Thu.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>NOT STARTED:
&lt;ul>
&lt;li>DAT-576 MRR exchange rate — escalation Wed 1-on-1 (as planned).&lt;/li>
&lt;li>DAT-524 Zoho test accounts — escalation Wed 1-on-1.&lt;/li>
&lt;li>Local-dev demo video (Docs P1) — Thu.&lt;/li>
&lt;li>Auto-export PNG feedback to Khai To — Thu.&lt;/li>
&lt;li>Wamly check — Wed.&lt;/li>
&lt;li>H1 self-reflection + CV — locked Sat/Sun.&lt;/li>
&lt;li>Soạn roadmap Spark cho Yên — Sat AM.&lt;/li>
&lt;li>Lead Funnel retro — Fri.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>NEW (added mid-week):
&lt;ul>
&lt;li>TODO Discuss narrative demo for Power BI migration (&lt;a href="https://holistics.slack.com/archives/C95QEV4JF/p1779106735541759?thread_ts=1778060367.463229&amp;amp;cid=C95QEV4JF">Slack&lt;/a>) — P2, Wed.&lt;/li>
&lt;li>TODO Write 1-on-1 report — P1, Wed (paired with 1-on-1).&lt;/li>
&lt;li>IDEA Support other coding agents for logseq automation ([[Logseq]]).&lt;/li>
&lt;li>NOTE Identity Resolution TOGA case — captured under &lt;code>[Internal] Identity Resolution&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Big W20 wins: CircleCI PR review marathon &lt;strong>closed&lt;/strong> (3-week carry-over cleared); BuyCo theme rolled out; Khai To&amp;rsquo;s 2-way sync CLI shipped → local-dev demo video &lt;strong>unblocked&lt;/strong> (was 5-week WAITING). Big risk W21: &lt;strong>BuyCo onboarding call Tue May 19&lt;/strong> — Power BI playbook must be review-ready Mon EOD. Bigger risk: &lt;strong>DAT-576 MRR exchange rate now 5-week carry-over&lt;/strong> — stop scheduling, start escalating. 1-on-1 has two backlog drops to make (DAT-576 re-scope, DAT-524 formal drop). H1 self-reflection + CV &lt;strong>2-week slipped&lt;/strong> — lock the weekend.&lt;/p></description></item><item><title>Weekly Planning - 2026-W22</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w22/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning---2026-w22/</guid><description>&lt;h3 id="plan-for-week-w22-may-25--may-31-2026">Plan for week W22 (May 25 – May 31, 2026)&lt;/h3>
&lt;blockquote>
&lt;p>W21 closed strong: PBI playbook + skill (v0.1 → #12 fix → v0.1.1), BuyCo/Basata onboarding, EF RFP assessed, SLA pull, 3 Docs PRs. &lt;strong>W22 slate lighter&lt;/strong> — 4 presales items demoted to Monitor (sales already followed up OR customer says not critical). Focus shifts to: (1) DAT-576 written-decision memo Mon AM → unblocks DAT-524, (2) Showbie loss synthesis (3rd re-commitment), (3) H1 self-reflection (3-week slip, PR cycle), (4) RFC-0004 PARA W22 batch (forcing-function test on DAT-576/DAT-524).&lt;/p></description></item><item><title>Weekly Planning Rules</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-planning-rules/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-planning-rules/</guid><description>&lt;h1 id="weekly-planning-rules">Weekly Planning Rules&lt;/h1>
&lt;p>Living rules for &lt;code>pages/Weekly Planning - YYYY-WNN.md&lt;/code>. Pairs w/ [[Priority Rules]] (P0–P3 tiers). Re-read every Fri wrap-up. When a rule causes friction, capture friction below + iterate.&lt;/p>
&lt;ul>
&lt;li>
&lt;h2 id="1-principles-apply-every-week">1. Principles (apply every week)&lt;/h2>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Decisions in writing beat decisions in conversation&lt;/strong> — meeting w/o written outcome = no outcome. Same-day Linear/Notion/Project-page update.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Sales-led customer touches → my action only when trial/onboarding booked&lt;/strong> — if sales (Nam, Chukwudi, etc.) already followed up, don&amp;rsquo;t manufacture parallel work. Move to Monitor.&lt;/p></description></item><item><title>Weekly Report - 2026-W09</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w09/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w09/</guid><description>&lt;h2 id="weekly-report--feb-25--mar-1-2026">Weekly Report — Feb 25 – Mar 1, 2026&lt;/h2>
&lt;h3 id="work">Work&lt;/h3>
&lt;p>&lt;strong>Presales&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Highlight: Trust Wallet win story — won over from Looker/Tableau. Trust Wallet (crypto wallet, Databricks stack) subscribed on Standard plan (Feb 4). High-touch onboarding was the key differentiator: live enablement on Model → Dataset → Dashboard flow, tackling struct fields, typing, and caching/pre-aggregation for Databricks cost concerns. Strong proof point for the high-touch onboarding initiative.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Internal&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>DONE Setup BigQuery CLI skills — enables querying BigQuery datasets directly from the terminal.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Teaching&lt;/strong>&lt;/p></description></item><item><title>Weekly Report - 2026-W10</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w10/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w10/</guid><description>&lt;h2 id="weekly-report--mar-4--mar-7-2026">Weekly Report — Mar 4 – Mar 7, 2026&lt;/h2>
&lt;p>Pull Request: &lt;a href="https://github.com/lelouvincx/second-brain-logseq/pull/6">#6&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>Friday comprehensive report for 2026-W10. Activity concentrated Feb 25 – Mar 3 (journal entries), with PR review follow-ups continuing Mar 4–6.&lt;/p>&lt;/blockquote>
&lt;ul>
&lt;li>
&lt;h3 id="work">Work&lt;/h3>
&lt;p>&lt;strong>Add2Cart&lt;/strong>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>(done) Fix the temp bridge table — eliminated &lt;code>bridge_product_retailer&lt;/code> by adding &lt;code>retailer_id&lt;/code> directly to &lt;code>atc_price_history&lt;/code> via slug normalization. Reduced join path from 4 tables to 2–3 for price queries. Backfilled 30M+ rows: 23/40 retailers matched cleanly (40% of rows), 6 near-misses identified for follow-up. Stored procedures updated; &lt;code>sp_run_all&lt;/code> reordered. Holistics AML dataset relationships updated to use direct &lt;code>retailer_current_pricing_skey&lt;/code> join. (&lt;a href="https://www.notion.so/holistics/Eliminating-bridge_product_retailer-318f89dc7e4980c68b02dd827e6f9145">Notion&lt;/a>)&lt;/p></description></item><item><title>Weekly Report - 2026-W11</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w11/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w11/</guid><description>&lt;h2 id="weekly-report--mar-9--mar-13-2026-friday-mode">Weekly Report — Mar 9 – Mar 13, 2026 (friday mode)&lt;/h2>
&lt;p>Pull Request: &lt;a href="https://github.com/lelouvincx/second-brain-logseq/pull/7">#7&lt;/a> and &lt;a href="https://github.com/lelouvincx/second-brain-logseq/pull/8">#8&lt;/a>&lt;/p>
&lt;ul>
&lt;li>
&lt;h3 id="work">Work&lt;/h3>
&lt;p>&lt;strong>Internal&lt;/strong>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>(done) Code review MRR PR #812 — completed 4 review rounds on customer identity resolution refactor (DAT-471). Decomposition of &lt;code>itg_mappings__customer_identities&lt;/code> into 5 sub-models. Identified critical issues: Zoho-only rows silently dropped by &lt;code>WHERE&lt;/code> clause, NULL domain &lt;code>NOT IN&lt;/code> semantics, Zendesk fan-out risk. PR merged Mar 10. (&lt;a href="https://github.com/holistics/dbt/pull/812">PR #812&lt;/a>)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>(done) Continue commenting DE-201 (PR Workflow enhancement) — completed review and documentation of CI/CD gaps in &lt;code>internal-aml-project&lt;/code> repo. Proposed tiered roadmap: quick wins (PR templates, CODEOWNERS), expanded test coverage, new automation (lineage diff, impact analysis). (&lt;a href="https://www.notion.so/holistics/DE-201-PR-Workflow-enhancement-2fdf89dc7e498058bb55e779e202c31b">Notion&lt;/a>)&lt;/p></description></item><item><title>Weekly Report - 2026-W12</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w12/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w12/</guid><description>&lt;h2 id="weekly-report--mar-16--mar-22-2026-friday-mode">Weekly Report — Mar 16 – Mar 22, 2026 (friday mode)&lt;/h2>
&lt;h3 id="work">Work&lt;/h3>
&lt;h4 id="internal">Internal&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>DONE&lt;/strong> 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: &lt;code>dim_contacts&lt;/code> → HubSpot Contact and &lt;code>fct_customer_stats&lt;/code> → 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.
&lt;ul>
&lt;li>&lt;a href="https://holistics.slack.com/archives/C05JPT5LDUL/p1770694712473949">Slack&lt;/a> · &lt;a href="https://www.notion.so/holistics/DE-205-Migrate-Census-31ef89dc7e49801cba8bdfd44658f211">Notion&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Review monitoring dashboard DE-187 — Reviewed &lt;a href="https://github.com/holistics/internal-aml-project/pull/60">PR #60&lt;/a>: &amp;ldquo;Add subscription monitoring dataset and dashboard for customer identity tracking&amp;rdquo; (merged).&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Check #data-ops-bot on viz_settings from &lt;a href="https://github.com/holistics/dbt/pull/842">PR #842&lt;/a> — Fixed duplicate snapshot names for &lt;code>viz_settings&lt;/code> (PR merged Mar 17).
&lt;ul>
&lt;li>&lt;a href="https://holistics.slack.com/archives/C050EA6Q8AG/p1773781533766209">Slack&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> 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&amp;rsquo;t help confidence in approving a PR is out of scope.
&lt;ul>
&lt;li>&lt;a href="https://www.notion.so/holistics/DE-201-PR-Workflow-enhancement-2fdf89dc7e498058bb55e779e202c31b">Notion&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> 1-on-1 meeting with manager (anh Triet) — Key concerns discussed: (1) integrating AI into the data team&amp;rsquo;s development experience, (2) current data infra/pipeline complexity and trust issues, (3) PR Workflow adoption. Wrote up 1-on-1 report.&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> 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.
&lt;ul>
&lt;li>&lt;a href="https://holistics.slack.com/archives/C79QB3FEV/p1773811610748979">Slack&lt;/a> · &lt;a href="https://linear.app/holistics/issue/DAT-560">Linear DAT-560&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>IN-PROGRESS&lt;/strong> Check failed dbt tests &amp;amp; create Linear issues — DAT-554 fixed (Elementary dbt test &lt;code>n_records&lt;/code> column missing, &lt;a href="https://github.com/holistics/dbt/pull/841">PR #841&lt;/a>). DAT-555 still open: &lt;code>fct_job_queue_performance&lt;/code> model is stale and likely to be removed; &lt;code>mart_product__dataset_datamodel_dimensions&lt;/code> also under review. Several skipped downstream models identified: &lt;code>itg_customer_support__organizations&lt;/code>, &lt;code>mart_customer_support__organizations&lt;/code>, &lt;code>mart_product__activities&lt;/code>, and others.&lt;/li>
&lt;li>&lt;strong>IN-PROGRESS&lt;/strong> 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.
&lt;ul>
&lt;li>&lt;a href="https://www.notion.so/holistics/RFC-2813-Experiment-with-AI-agents-for-development-314f89dc7e4980e1b3a5da7740fc0db0">Notion RFC&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Prepare for phase 2 MRR problem — Upcoming. First step: ingest Calendly data.&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Ingest Calendly data — New task, supports the MRR analysis.&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Think about how a normal data team would adopt a BI chatbot — Exploring candidates (e.g., &lt;a href="https://docs.getnao.io/">nao&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h4 id="presales">Presales&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>DONE&lt;/strong> Onboarding call with Showbie — Completed Mar 13.&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> 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.
&lt;ul>
&lt;li>&lt;a href="https://holistics.slack.com/archives/C95QEV4JF/p1773158632684439">Slack&lt;/a> · &lt;a href="https://app.read.ai/analytics/meetings/01KKKV59CDBCZX7Q8NSZ6456GS">ReadAI&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> 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.
&lt;ul>
&lt;li>&lt;a href="https://holistics.slack.com/archives/C07KL6XK5MJ/p1773736534713639">Slack discussion&lt;/a> · &lt;a href="https://holistics.slack.com/archives/C0AJF469ANL/p1773841662574309">Slack output&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Onboarding call 3 with Basata — Scheduled.
&lt;ul>
&lt;li>&lt;a href="https://holistics.slack.com/archives/C95QEV4JF/p1773206961791209">Slack&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="duty-support">Duty Support&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>TODO&lt;/strong> Support Sasha mybacs — New support request.&lt;/li>
&lt;/ul>
&lt;h3 id="personal--tooling">Personal / Tooling&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>DONE&lt;/strong> 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 (&lt;code>isolatedStorage: true&lt;/code>), R2 stream consumption, and schema docs. (&lt;a href="https://github.com/lelouvincx/smartclass/releases/tag/v0.2.4">Release&lt;/a>)&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Add &lt;code>shadcn/ui&lt;/code> skills — Integrated shadcn/ui skill from the official repo into the agent-skills system. Synced remote skill files and created symlink. (&lt;a href="https://github.com/lelouvincx/agent-skills/pull/13">PR #13&lt;/a>)&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Add 1-on-1 automation report in Logseq — Set up the &lt;code>1on1-report.sh&lt;/code> automation for generating retrospective reports from Logseq notes.&lt;/li>
&lt;li>&lt;strong>IN-PROGRESS&lt;/strong> Complete Brazilian dashboard on Metabase for Yen — Dash 1 (Sales Overview) done; Dash 2 (Shipping Overview) and demo video still TODO.&lt;/li>
&lt;/ul>
&lt;h3 id="learning--notes">Learning &amp;amp; Notes&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Risk-based testing in dbt&lt;/strong> — Read &lt;a href="https://vinted.engineering//2026/03/11/risk-based-testing/">Vinted Engineering article&lt;/a> on tagging dbt models with high/low risk and frequency, then running tests selectively based on those tags.&lt;/li>
&lt;li>&lt;strong>Claude Skill Building Guide&lt;/strong> — Read &lt;a href="https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf">Anthropic&amp;rsquo;s guide&lt;/a>. Key takeaway: skill description should cover what it does, when to use, when not to use.&lt;/li>
&lt;li>&lt;strong>AI and labor&lt;/strong> — 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.&lt;/li>
&lt;li>&lt;strong>1-on-1 meetings&lt;/strong> — Read notes from &lt;a href="https://github.com/keyvanakbary/learning-notes/blob/master/books/the-managers-path.md">The Manager&amp;rsquo;s Path&lt;/a>: 1-on-1s are a chance to nurture the team/organization&amp;rsquo;s human resource.&lt;/li>
&lt;li>&lt;strong>Work ownership&lt;/strong> — &amp;ldquo;Làm việc bằng cái tâm&amp;rdquo; — treating company work as your own leads to better responsibility, empathy, and quality in everything.&lt;/li>
&lt;li>&lt;strong>Presales self-reflection&lt;/strong> — 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.&lt;/li>
&lt;/ul>
&lt;h3 id="next-week">Next Week&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>P1&lt;/strong> Onboarding call 3 with Basata — Presales, scheduled.&lt;/li>
&lt;li>&lt;strong>P1&lt;/strong> Support Sasha mybacs — Duty Support, new request.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> Ingest Calendly data — Internal, prerequisite for phase 2 MRR analysis.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> Prepare for phase 2 MRR problem — Internal, depends on Calendly ingestion.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> Review and make a plan for MRR lead funnel / sales motion dimension — Internal, carry-over.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> Check back Census usage estimate (free tier confirmation) — Internal, noted for Mar 26.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> DAT-555 resolution — Internal, carry-over. Decide whether to remove &lt;code>fct_job_queue_performance&lt;/code> and write Notion doc for team review.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> Fix excluding internal testing Zoho accounts — Internal, backlog item (&lt;a href="https://linear.app/holistics/issue/DAT-524/exclude-internal-zoho-test-accounts-from-churn-metrics">DAT-524&lt;/a>).&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> Document Medenterprises performance use case — Duty Support, backlog (was due Feb 5).&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> Brazilian dashboard Dash 2 + demo video for Yen — Teaching, carry-over.&lt;/li>
&lt;li>&lt;strong>P3&lt;/strong> Search for a YouTube summarizer tool — Personal, backlog.&lt;/li>
&lt;/ul>
&lt;h3 id="career--personal-consulting">Career &amp;amp; Personal Consulting&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>High output on infrastructure and process work&lt;/strong>: 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&amp;rsquo;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.&lt;/li>
&lt;li>&lt;strong>Presales is growing&lt;/strong>: 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&amp;rsquo;s a full presales cycle for a technical use case. Keep building this muscle.&lt;/li>
&lt;li>&lt;strong>Delegation thinking is maturing&lt;/strong>: 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.&lt;/li>
&lt;li>&lt;strong>Self-awareness on call quality&lt;/strong>: Identifying that your presales calls aren&amp;rsquo;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.&lt;/li>
&lt;li>&lt;strong>Context switches remain high&lt;/strong>: 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.&lt;/li>
&lt;/ul></description></item><item><title>Weekly Report - 2026-W13</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w13/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w13/</guid><description>&lt;ul>
&lt;li>
&lt;h2 id="weekly-report--mar-23--mar-28-2026-friday-mode">Weekly Report — Mar 23 – Mar 28, 2026 (friday mode)&lt;/h2>
&lt;/li>
&lt;li>
&lt;h3 id="work">Work&lt;/h3>
&lt;/li>
&lt;li>
&lt;h4 id="internal">Internal&lt;/h4>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>DONE&lt;/strong> Investigate failed dbt assets in #data-ops-bot (&lt;a href="https://linear.app/holistics/issue/DAT-569">DAT-569&lt;/a>)&lt;/p>
&lt;ul>
&lt;li>Triggered by bot alert in &lt;a href="https://holistics.slack.com/archives/C050EA6Q8AG/p1774199890122899">#data-ops-bot&lt;/a>: 4 not-null tests failing (24 + 9 null rows across &lt;code>mart_event__drill_down&lt;/code> and &lt;code>mart_event__view_underlying_data&lt;/code>).&lt;/li>
&lt;li>Root cause: &lt;code>dbt Mart Snowplow Events&lt;/code> job ran before &lt;code>dbt Mart Product&lt;/code> (which builds &lt;code>dim_users&lt;/code>), causing null tenant/user IDs. Secondary bug: LEFT JOIN to &lt;code>internal_tenants&lt;/code> incorrectly passed internal events when user was missing from &lt;code>dim_users&lt;/code>.&lt;/li>
&lt;li>Fix: refactored SQL to pre-extract IDs from Snowplow event properties with &lt;code>coalesce&lt;/code> fallback. Wrote &lt;a href="https://www.notion.so/holistics/DE-207-32cf89dc7e4980d7bc03c0d5f801dc09">Notion investigation doc (DE-207)&lt;/a> with debugging guide for juniors.&lt;/li>
&lt;li>LEARNING The bigquery agent skill often gets trouble mapping logical (dbt) and physical table names (BigQuery). Improvement: use dynamic mapping from &lt;code>INFORMATION_SCHEMA&lt;/code> (excluding &lt;code>dev_*&lt;/code> in prod).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>DONE&lt;/strong> Review Thuan&amp;rsquo;s work on DE-208 / &lt;code>mart_product__dataset_datamodel_dimensions&lt;/code> (&lt;a href="https://github.com/holistics/dbt/pull/845">PR #845 — OPEN&lt;/a>)&lt;/p></description></item><item><title>Weekly Report - 2026-W14</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w14/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w14/</guid><description>&lt;h2 id="weekly-report--mar-30--apr-5-2026-friday-mode">Weekly Report — Mar 30 – Apr 5, 2026 (friday mode)&lt;/h2>
&lt;h3 id="work">Work&lt;/h3>
&lt;h4 id="add2cart">Add2Cart&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>DONE&lt;/strong> Eliminate bridge table (&lt;code>bridge_product_retailer&lt;/code>) from Redshift pipeline and Holistics AML layer
&lt;ul>
&lt;li>Completed all 5 phases of the migration plan (&lt;a href="https://holistics.slack.com/archives/C08RYBCMS9X/p1774449730051639?thread_ts=1772099143.352039&amp;amp;cid=C08RYBCMS9X">Slack thread&lt;/a>):
&lt;ul>
&lt;li>Phase 0: Snapshot baseline tables (&lt;code>_migration_baseline&lt;/code>, &lt;code>_bridge_backup&lt;/code>) created on Redshift.&lt;/li>
&lt;li>Phase 1: Added &lt;code>retailer_id&lt;/code> + &lt;code>retailer_current_pricing_skey&lt;/code> columns to &lt;code>atc_price_history&lt;/code>, backfilled ~27M rows (75.7% coverage). Known gap: 8,713 keys from Chemist Discount Center slug mismatch — documented.&lt;/li>
&lt;li>Phase 2: Deployed 5 updated SPs (&lt;code>sp_refresh_daily_prices&lt;/code>, &lt;code>sp_refresh_atc_price_history_enrich&lt;/code>, &lt;code>sp_run_all&lt;/code>, &lt;code>sp_refresh_price_history_from_s3&lt;/code>, &lt;code>sp_validate&lt;/code>). Ran &lt;code>sp_run_all()&lt;/code> — enriched table validated at 12.1M rows, join path works without bridge.&lt;/li>
&lt;li>Phase 3: 7 commits on &lt;code>feat/eliminate-bridge-aml&lt;/code> — removed bridge from all 4 datasets + &lt;code>market_price_rank&lt;/code> model, added direct &lt;code>rcp_skey&lt;/code> relationships, deleted &lt;code>agg_retailer_product_price&lt;/code> model. Pushed to Holistics, dashboards verified.&lt;/li>
&lt;li>Phase 4 (soak): Monitored dashboards end-to-end through bridgeless path — no issues.&lt;/li>
&lt;li>Phase 5 (cleanup): Dropped bridge/agg tables + SPs, deleted bridge AML model, cleaned up migration artifacts. &lt;a href="https://github.com/holistics/add2cart/pull/2">PR #2&lt;/a> merged. Shared completion summary with Anurag in &lt;a href="https://holistics.slack.com/archives/C08RYBCMS9X/p1775034198393079?thread_ts=1772099143.352039&amp;amp;cid=C08RYBCMS9X">Slack&lt;/a>. Bridge kept as &lt;code>_bridge_product_retailer_backup&lt;/code> (frozen, 222K rows) for reference. Remaining data quality items (near-miss slugs, missing retailers, history-only) handed off to Anurag.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Impact: Simplified join path from &lt;code>master_product → retailer_current_pricing → bridge → atc_price_history&lt;/code> to &lt;code>master_product → retailer_current_pricing → atc_price_history&lt;/code> (one fewer hop), improving query performance.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>WAITING&lt;/strong> Guidance for countries-level data ingestion (&lt;a href="https://www.notion.so/334f89dc7e49818d8634df79e775b668">Notion D4 doc&lt;/a>)
&lt;ul>
&lt;li>Investigated multi-country retailer ingestion from 6 RDS databases (&lt;code>airbyte_schema_*&lt;/code>). Found critical &lt;code>price_history_skey&lt;/code> collision: 2,774 keys collide across countries (39,710 rows), mainly Watsons across SG/ID/MY.&lt;/li>
&lt;li>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.&lt;/li>
&lt;li>Feedback: initial version was too detailed on implementation. Rewrote to lead with &amp;ldquo;what needs to be done&amp;rdquo; and high-level approaches first. Waiting for anh Huy to review.&lt;/li>
&lt;li>Aligned with Anurag on &lt;a href="https://holistics.slack.com/archives/C08RYBCMS9X/p1774449730051639">Slack&lt;/a>: he ingested retailers for all countries into Redshift.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="presales">Presales&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>DONE&lt;/strong> Study Jonas Chorum onboarding call 1 (&lt;a href="https://www.notion.so/holistics/Prep-Note-334f89dc7e49805caf2cf96c2fc378ea">Notion prep note&lt;/a>)
&lt;ul>
&lt;li>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.&lt;/li>
&lt;li>Answered &lt;a href="https://holistics.slack.com/archives/C0AMF3T7L7R/p1774870812238909">tunnel/bastion server question&lt;/a> in Slack — they ran Windows script instead of Linux, connection error escalated to support team (Tien).&lt;/li>
&lt;li>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.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Refactor Erin (Showbie) dashboard — Chukwudi had a fever, asked for help &lt;a href="https://holistics.slack.com/archives/C95QEV4JF/p1774944490998909?thread_ts=1773725765.656499&amp;amp;cid=C95QEV4JF">via Slack&lt;/a> to refactor from query models to decoupled AQL metrics. Huddled with anh Dong, then handed over to him for the call.&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Onboarding call 2 with Basata (Taha) (&lt;a href="https://app.read.ai/analytics/meetings/01KN77F00RQK15CCB83NW6DXHX/transcript">ReadAI transcript&lt;/a>, &lt;a href="https://holistics.slack.com/archives/C95QEV4JF/p1775145243630719">Slack debrief&lt;/a>)
&lt;ul>
&lt;li>Good sentiment with Taha. Key feedback: creating single dashboard + embed portal flow isn&amp;rsquo;t seamless, needs to be easier to understand. Question: &amp;ldquo;any best practices to make the embedded dataset easier for business users to use?&amp;rdquo; — introduced Custom View feature. Embed Portal vs Single Dashboard distinction remains a point of confusion.&lt;/li>
&lt;li>Embed portal tutorial already delivered: &lt;a href="https://www.notion.so/holistics/Embed-Portal-Integration-Guide-32ef89dc7e4980cead39c64ca3a589f7#32ff89dc7e4980909740fea4a6eaafe0">Notion guide&lt;/a>, shared in &lt;a href="https://holistics.slack.com/archives/C0AF90RFWHE/p1774362507450669">#presales-sa Slack&lt;/a>. Taha&amp;rsquo;s backend colleague to begin portal embedding.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Onboarding call 1 with Jonas Chorum — vibe-coding a dynamic data source demo. Built POC showing &lt;code>data_source_name&lt;/code> 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.&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> 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.&lt;/li>
&lt;li>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.&lt;/li>
&lt;li>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.&lt;/li>
&lt;/ul>
&lt;h4 id="internal">Internal&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>DONE&lt;/strong> Thuan&amp;rsquo;s PR #845 (DE-208 / &lt;code>mart_product__dataset_datamodel_dimensions&lt;/code>) — &lt;a href="https://github.com/holistics/dbt/pull/845">MERGED&lt;/a>. Fix for PARSE_JSON syntax error. All CI checks passed after review rounds in W13.&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Review DE-206 for anh Hieu — exchange rate document review completed. &lt;a href="https://www.notion.so/holistics/DE-206-Fix-the-wrong-data-in-the-UM-dashboard-330f89dc7e498059a284c6a45e7797d7">Notion doc&lt;/a> and &lt;a href="https://holistics.slack.com/archives/C0427349FT2/p1774437257603019">Slack thread&lt;/a>.&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Visualize schedule of all data lineage (&lt;a href="https://www.notion.so/holistics/Data-Pipelines-Schedules-209f89dc7e4980859f65f5830c1fafe2">Notion: Data Pipelines Schedules&lt;/a>)
&lt;ul>
&lt;li>Created full Mermaid flowchart of the entire pipeline: Extract &amp;amp; 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 &lt;code>prefect.yaml&lt;/code>, dbt model dependencies via &lt;code>ref()&lt;/code> calls, and Airbyte sync frequencies.&lt;/li>
&lt;li>Key finding: &lt;code>mart_event&lt;/code> depends on &lt;code>mart_product&lt;/code> (specifically &lt;code>mart_product__users&lt;/code> and &lt;code>mart_product__dashboard_widgets&lt;/code>), but runs weekly on Monday 00:15 before the daily product mart at 01:10. Safe because &lt;code>mart_event&lt;/code> doesn&amp;rsquo;t use the &lt;code>+&lt;/code> prefix (reads existing BigQuery data, no upstream rebuild).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Check Zendesk tenant Inovonics (&lt;a href="https://linear.app/holistics/issue/DAT-571">DAT-571&lt;/a>)
&lt;ul>
&lt;li>Investigated why tenant &lt;code>US-1099511640417&lt;/code> wasn&amp;rsquo;t mapped to Zendesk org in analytics. Traced through &lt;code>itg_mappings__zendesk_tenant&lt;/code> → HubSpot domain mapping → Zendesk organizations table.&lt;/li>
&lt;li>Root cause: Airbyte Zendesk source connector (&lt;code>source-zendesk-support:0.2.6&lt;/code>) 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.&lt;/li>
&lt;li>Recommendation: Upgrade Airbyte Zendesk connector to fix pagination.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Add CI to validate Holistics AML project (&lt;a href="https://github.com/holistics/internal-aml-project/pull/67">PR #67&lt;/a> — MERGED)
&lt;ul>
&lt;li>Triggered by a silent semantic conflict: PR #63 (Hieu) added a dashboard depending on &lt;code>domain_hubspot_companies&lt;/code>, and PR #64 (Thuan) deleted that model. Git didn&amp;rsquo;t flag it because they touched different files.&lt;/li>
&lt;li>Implemented GitHub Actions workflow using &lt;a href="https://docs.holistics.io/docs/continuous-integration/validation-api">Holistics Validation API&lt;/a> to validate AML syntax and references on every push.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Attended Product Office Hours P1 and P2 (&lt;a href="https://www.notion.so/holistics/2026-Mar-Internal-Product-Newsletter-32bf89dc7e4981d49cdfd7207ce0b275">Notion newsletter&lt;/a>)
&lt;ul>
&lt;li>Noted: AI theme builder tool at &lt;code>holistics.h-theme-builder.pages.dev/theme-builder&lt;/code> — will try with more prospects.&lt;/li>
&lt;li>New dataset exploration UI looks promising.&lt;/li>
&lt;li>Data team should contribute to Holistics &lt;a href="https://github.com/holistics/skills">skills&lt;/a> and &lt;a href="https://github.com/holistics/internal-skills">internal-skills&lt;/a> repos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Create agent skill for fixing dbt data pipelines for #data-ops-bot — carry-over from W13, not started.&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Fix excluding internal testing Zoho accounts (&lt;a href="https://linear.app/holistics/issue/DAT-524">DAT-524&lt;/a>) — carry-over since W7, not started.&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Calendly data pipeline (&lt;a href="https://linear.app/holistics/issue/DAT-283">DAT-283&lt;/a>) — carry-over, not started.&lt;/li>
&lt;/ul>
&lt;h4 id="docs">Docs&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>TODO&lt;/strong> Polish embedding documentation — increasing embedding leads make this urgent. Same item tracked under Presales.&lt;/li>
&lt;li>WAITING Add demo video for local development docs — waiting for team to trigger.&lt;/li>
&lt;/ul>
&lt;h4 id="logseq">Logseq&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>DONE&lt;/strong> Add project glossary (&lt;a href="https://github.com/lelouvincx/second-brain-logseq/pull/13">PR #13&lt;/a>) — created canonical project list in &lt;code>pages/Projects.md&lt;/code>.&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Improve backlog structure and automation query pre-processing (&lt;a href="https://github.com/lelouvincx/second-brain-logseq/pull/12">PR #12&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h3 id="personal--tooling">Personal / Tooling&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>DONE&lt;/strong> Changed to a more professional work avatar.&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Edit video last Hue Trip — completed on Saturday.&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Sao kê (personal finance task).&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Settled on &lt;a href="https://mochi.cards">mochi.cards&lt;/a> as Flashcard app for learning English words.&lt;/li>
&lt;li>Installed &lt;a href="https://github.com/epilande/Annotate">Annotate&lt;/a> — free on-screen annotation tool for customer demos and screen recordings. Lightweight alternative to paid tools.&lt;/li>
&lt;li>Discovered &lt;a href="https://repebble.com/index">Pebble Index 01&lt;/a> — smart ring for quick voice notes. Interesting for capturing ideas on the go.&lt;/li>
&lt;li>Found &lt;a href="https://huggingface.co/datasets/tinixai/vietnam-real-estates">Vietnam Real Estate Dataset&lt;/a> on HuggingFace — potential hobby data analysis project.&lt;/li>
&lt;li>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.&lt;/li>
&lt;/ul>
&lt;h3 id="learning--notes">Learning &amp;amp; Notes&lt;/h3>
&lt;ul>
&lt;li>Watched &lt;a href="https://www.youtube.com/watch?v=EZbIx94dMeU">How to Present a MIND-BLOWING Software Demo&lt;/a> — key takeaways: recap slides (fact → problems → criteria → new findings), speak customer&amp;rsquo;s language (airline = passengers, SaaS = users), confirm what they care about before demo, use cases &amp;gt; features, have an assist person, send personalized recap to each audience member. Applied learning to Jonas Chorum call prep.&lt;/li>
&lt;li>Read &lt;a href="https://jvns.ca/teach-tech-with-cartoons">How to teach technical concepts with cartoons&lt;/a> by Julia Evans — guide on visual teaching. Potential application for Kindle Scribe. Follow-up from W13 recommended resource on &amp;ldquo;implementation challenges.&amp;rdquo;&lt;/li>
&lt;li>Read &lt;a href="https://newsletter.weskao.com/p/too-detailed-in-the-wrong-ways">Details aren&amp;rsquo;t the problem. The problem is too many of the wrong details&lt;/a> by Wes Kao — levels of detail in communication. Completed from W13 recommended resources backlog.&lt;/li>
&lt;li>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.&lt;/li>
&lt;li>LEARNING Country names follow a &lt;code>people + land&lt;/code> pattern: Iceland, Greenland, England, Switzerland, Finland, Kazakhstan, Uzbekistan (stan = land).&lt;/li>
&lt;li>NOTE Good observation from anh Huy: &amp;ldquo;If I just stay in the call, everyone can&amp;rsquo;t improve. The only thing that makes sense now is to force the team to prepare very well before the call.&amp;rdquo; Leadership by stepping back.&lt;/li>
&lt;li>NOTE Increase Calendly pipeline task to top priority next week — noted on Thu.&lt;/li>
&lt;/ul>
&lt;h3 id="next-week">Next Week&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>P1&lt;/strong> — Add2Cart: Project retro with anh Dong — review the full bridge elimination + countries guidance work.&lt;/li>
&lt;li>&lt;strong>P1&lt;/strong> — Presales: Onboarding call 1 with Jonas Chorum — finalize dynamic data source demo, address cross-database aggregation limitation.&lt;/li>
&lt;li>&lt;strong>P1&lt;/strong> — Internal: Calendly data pipeline (&lt;a href="https://linear.app/holistics/issue/DAT-283">DAT-283&lt;/a>) — elevated to P1 per Thu note. Standardize source pipeline and build unified dbt models.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> — Internal: Create agent skill for fixing dbt data pipelines in #data-ops-bot — carry-over from W13.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> — Internal: Fix excluding internal testing Zoho accounts (&lt;a href="https://linear.app/holistics/issue/DAT-524">DAT-524&lt;/a>) — lingering since W7. Timebox 2h or explicitly deprioritize.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> — Internal: Follow up on DAT-571 (Zendesk Airbyte connector upgrade) — ensure pagination fix is scheduled.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> — Docs: Polish embedding documentation — ask anh Tai and anh Huy to clarify scope. Write step-by-step embed portal setup guide.&lt;/li>
&lt;li>&lt;strong>P2&lt;/strong> — Add2Cart: Get anh Huy&amp;rsquo;s review on the D4 countries guidance document.&lt;/li>
&lt;li>&lt;strong>P3&lt;/strong> — Presales: Read &lt;a href="https://docs.holistics.io/docs/modeling-patterns">Modeling Patterns&lt;/a> docs.&lt;/li>
&lt;li>&lt;strong>P3&lt;/strong> — Personal: Self reflection and update CV.&lt;/li>
&lt;/ul>
&lt;h3 id="career--personal-consulting">Career &amp;amp; Personal Consulting&lt;/h3>
&lt;p>&lt;strong>Progress Review (Start/Stop/Keep):&lt;/strong>&lt;/p></description></item><item><title>Weekly Report - 2026-W15</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w15/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w15/</guid><description>&lt;ul>
&lt;li>
&lt;h2 id="weekly-report--apr-6--apr-12-2026-friday-mode">Weekly Report — Apr 6 – Apr 12, 2026 (friday mode)&lt;/h2>
&lt;/li>
&lt;li>
&lt;h3 id="work">Work&lt;/h3>
&lt;/li>
&lt;li>
&lt;h4 id="internal">Internal&lt;/h4>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>DONE&lt;/strong> Fix failed dbt tests — snowplow events (&lt;a href="https://linear.app/holistics/issue/DAT-569">DAT-569&lt;/a>)&lt;/p>
&lt;ul>
&lt;li>Both PRs merged and deployed: &lt;a href="https://github.com/holistics/dbt/pull/848">dbt #848&lt;/a> and &lt;a href="https://github.com/holistics/prefect/pull/393">prefect #393&lt;/a>.&lt;/li>
&lt;li>Ran backfill and snowplow pipeline — all runs successful. Confirmed via Prefect flow runs (&lt;a href="https://prefect3.holistics.dev/runs/flow-run/c1f2e4c8-c7df-48e7-b221-f3e0ab60c6bc">snowplow&lt;/a>, &lt;a href="https://prefect3.holistics.dev/runs/flow-run/558210a0-602b-44c6-9f22-57f2f8887885">backfill&lt;/a>).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>DONE&lt;/strong> Check Zendesk — Tenant Inovonics (&lt;a href="https://linear.app/holistics/issue/DAT-571">DAT-571&lt;/a>)&lt;/p>
&lt;ul>
&lt;li>Triggered by &lt;a href="https://holistics.slack.com/archives/C79QB3FEV/p1774948174838069">Vincent&amp;rsquo;s Slack message&lt;/a>: Zendesk Customer Support dashboard showed 0 for Inovonics. Traced full lineage from &lt;code>fct_zendesk_tickets&lt;/code> → &lt;code>itg_mappings__zendesk_tenant&lt;/code> → &lt;code>stg_zendesk__organizations&lt;/code> → &lt;code>_airbyte_raw_organizations&lt;/code> and found org &lt;code>13430326317849&lt;/code> missing entirely.&lt;/li>
&lt;li>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.&lt;/li>
&lt;li>Wrote &lt;a href="https://www.notion.so/holistics/DE-211-Missing-Zendesk-Organizations-335f89dc7e4980cf974ac7d83a068562">upgrade plan&lt;/a> 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 &lt;code>stg_zendesk__*.sql&lt;/code> models). Waiting for review.&lt;/li>
&lt;li>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 &lt;a href="https://linear.app/holistics/project/c0c9cc2b44cb">Linear project&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>WAITING&lt;/strong> DAT-555 — Fix &lt;code>fct_job_queue_performance&lt;/code> BigQuery resource limit (&lt;a href="https://linear.app/holistics/issue/DAT-555">DAT-565&lt;/a>)&lt;/p></description></item><item><title>Weekly Report - 2026-W16</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w16/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w16/</guid><description>&lt;ul>
&lt;li>
&lt;h2 id="weekly-report--apr-13--apr-19-2026-friday-mode">Weekly Report — Apr 13 – Apr 19, 2026 (friday mode)&lt;/h2>
&lt;/li>
&lt;li>
&lt;h3 id="work">Work&lt;/h3>
&lt;/li>
&lt;li>
&lt;h4 id="internal">Internal&lt;/h4>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Transfer MRR and exchange rate project with anh Hieu — completed Apr 14
&lt;ul>
&lt;li>Walked through &lt;a href="https://www.notion.so/holistics/DE-187-Customers-MRR-documentation-and-accuracy-improvement-253f89dc7e49804fb1fadee59f638cc4">DE-187&lt;/a>. 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.&lt;/li>
&lt;li>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.&lt;/li>
&lt;li>Created dedicated knowledge page [[[Internal] Customers&amp;rsquo; MRR (Exchange Rate)]] with data architecture diagram, ER diagram (&lt;a href="https://dbdiagram.io/d/Concepts-691ab0786735e111701b0ab4">dbdiagram.io&lt;/a>), 9 identified problems, edge cases (Datacubed multi-tenant, Kognity multi-region, Vector AI domain mismatch), and technical fixes (PR #812, PR #852).&lt;/li>
&lt;li>Next steps: build &lt;code>dim_exchange_rates&lt;/code> table (&lt;a href="https://linear.app/holistics/issue/DAT-576">DAT-576&lt;/a>), implement dual metrics (&lt;code>constant_currency_mrr&lt;/code> + &lt;code>reported_mrr&lt;/code>), implement canonical &lt;code>customer_skey&lt;/code> for long-term identity resolution.&lt;/li>
&lt;li>Related: dbt monitoring flow &lt;a href="https://www.notion.so/holistics/DE-176-DBT-models-Dashboard-status-monitoring-207f89dc7e4980daa657d1764c9adbae">DE-176&lt;/a> suspended (low priority), impersonation lookup frequency increase (&lt;a href="https://linear.app/holistics/issue/DAT-499">DAT-499&lt;/a>) pending.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Investigate Zoho Events sync 403 failure (&lt;a href="https://linear.app/holistics/issue/DAT-574">DAT-574&lt;/a>) — completed Apr 14
&lt;ul>
&lt;li>Prefect flow &lt;code>Sync Zoho Events&lt;/code> failed Apr 12 with HTTP 403 (Zoho error code 104003) — OAuth token lacked &lt;code>ZohoSubscriptions.events.READ&lt;/code> scope after Finance (Vincent, Sriram) adjusted admin permissions for Janice&amp;rsquo;s account.&lt;/li>
&lt;li>Root cause: permission/scope issue, not a code bug. Coordinated with Quinn (Growth) who updated read permission. Flow re-ran and backfilled successfully.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Write 1-on-1 report — completed Apr 15, PR &lt;a href="https://github.com/lelouvincx/second-brain-logseq/pull/16">#16&lt;/a>. 1-on-1 meeting held Apr 15.
&lt;ul>
&lt;li>Manager&amp;rsquo;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.&lt;/li>
&lt;li>Embed demo app proposal: not the right timing. Mentoring Thuan: ask open questions, force him to think.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Fix &lt;code>fct_job_queue_performance&lt;/code> BigQuery resource limit (&lt;a href="https://linear.app/holistics/issue/DAT-555">DAT-555&lt;/a>)
&lt;ul>
&lt;li>PR &lt;a href="https://github.com/holistics/dbt/pull/854">dbt #854&lt;/a> approved by marcusle02 and merged Apr 15. Capped incremental lookback to 7 days.&lt;/li>
&lt;li>PR review done. Backfill completed. Now proceed to clean up BI layer.&lt;/li>
&lt;li>Dashboard cleanup decision: delete [WIP] Job Queue Performance 3.0 (unused), keep v2 and Report Job Queue Performance Monitoring (migrate to 4.0).&lt;/li>
&lt;li>Related sub-tasks DAT-567 (delegated to Thuan, done) and DAT-575 also completed.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>IN-PROGRESS&lt;/strong> Calendly data pipeline (&lt;a href="https://linear.app/holistics/issue/DAT-283">DAT-283&lt;/a>)
&lt;ul>
&lt;li>PR &lt;a href="https://github.com/holistics/dbt/pull/853">dbt #853&lt;/a> approved by marcusle02 on Apr 17 after multiple review rounds. PR is mergeable, awaiting final merge.&lt;/li>
&lt;li>Answered all review comments from anh Dong (marcusle02). Key feedback addressed: enable deprecated wrapper models for transition, avoid &lt;code>SELECT *&lt;/code> in CTEs, fix &lt;code>tracking_utm_content&lt;/code> data type.&lt;/li>
&lt;li>Re-modeled into fact bookings and dim event, with grain = event × invitee × rep.&lt;/li>
&lt;li>Lineage analysis completed: 2 domain + 3 redundant mart models consolidated into 1 domain (&lt;code>dom_calendly__events&lt;/code>) + 1 mart (&lt;code>fct_calendly_events&lt;/code>). Source migrated from Google Sheets to Fivetran. Bug fix: &lt;code>fct_sales_leads&lt;/code> was dropping 88% of call-booking leads due to NULL UUIDs in Google Sheets — now joining on &lt;code>invitee_email_domain&lt;/code> from Fivetran source. Impacts 10+ downstream dashboards (Leads Analytics, Sales Performance, Deal Activity, etc.).&lt;/li>
&lt;li>Next: merge PR, run dbt models, validate data in Holistics BI, then fix downstream &lt;code>fct_sales_leads&lt;/code> join.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Guidance for countries level data (Add2Cart) — closed Apr 17
&lt;ul>
&lt;li>Add2Cart won&amp;rsquo;t engage further. Closed task per Slack thread update.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Handle multi-currency exchange rates for MRR (&lt;a href="https://linear.app/holistics/issue/DAT-576">DAT-576&lt;/a>) — 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 &lt;code>fct_mrr&lt;/code>, handle FX noise in historical growth metrics (pin to end-of-month rate), validate against Zoho totals. &lt;a href="https://www.notion.so/holistics/Handle-Multi-Currency-329f89dc7e498033ab29de0155ab3517">Notion doc&lt;/a>: MRR discrepancy ~30,000 SGD between Zoho (340K SGD) and bi.h (243K USD × 1.28 = 311K SGD).&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Lead Funnel by Sales Motion (&lt;a href="https://linear.app/holistics/issue/DAT-560">DAT-560&lt;/a>) — blocked on Calendly pipeline completion. Carry-over.&lt;/li>
&lt;li>&lt;strong>WAITING&lt;/strong> Create agent skill for fixing dbt data pipelines in #data-ops-bot — demoted to P3 per anh Triet&amp;rsquo;s direction to let Thuan handle data-ops-bot for training. Revisit in 3-6 months.&lt;/li>
&lt;li>&lt;strong>BACKLOG&lt;/strong> Fix excluding internal testing Zoho accounts (&lt;a href="https://linear.app/holistics/issue/DAT-524">DAT-524&lt;/a>) — 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.&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Review PR Circle CI for anh Dong (&lt;a href="https://linear.app/holistics/issue/DAT-579">DAT-579&lt;/a>) — new. PR &lt;a href="https://github.com/holistics/prefect/pull/397">prefect #397&lt;/a>: expand CircleCI test metadata ingestion (success + failed jobs), add branch fallback logic, add 60-day backfill flow. Part of &lt;a href="https://linear.app/holistics/issue/DAT-578">DAT-578&lt;/a> (CircleCI pipeline revamp). &lt;a href="https://www.notion.so/holistics/DE-214-CircleCI-analysis-33df89dc7e4980838acecd863d40ff3a">Notion: DE-214&lt;/a> — current state uses a bash script → SQLite → report; this PR moves it to Prefect + BigQuery.&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Review AI sharing dashboard for Aurora — new. Enterprise customer, high priority. &lt;a href="https://holistics.slack.com/archives/C79QB3FEV/p1776280889830069">Slack&lt;/a>.
&lt;ul>
&lt;li>Context from Slack: Nam (Account Manager) proposed upselling Aurora a &amp;ldquo;Usage and AI Data Monitoring Transfer&amp;rdquo; 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 &lt;strong>data sync to customer&amp;rsquo;s own systems&lt;/strong> (not in-app viewing), targeting enterprise compliance needs (e.g., 7-year log retention). Triet agreed — put it behind SCS paywall.&lt;/li>
&lt;li>Data from ClickHouse: conversation time/ID, user ID, messages (prompts + replies), token usage per user. Dashboard created by Hieu: &lt;a href="https://us.holistics.io/dashboards/v4/1099511684352-aurora-ai-conversations">Aurora AI Conversations&lt;/a>.&lt;/li>
&lt;li>My action: review the dashboard quality before sharing. Confirm delivery format (Google Sheets or S3) and daily schedule.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h4 id="presales">Presales&lt;/h4>
&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Basata follow up on light/dark theme — new. Enterprise customer, high priority. &lt;a href="https://holistics.slack.com/archives/C0AF90RFWHE/p1776350787735709">Slack&lt;/a>.
&lt;ul>
&lt;li>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 &lt;code>theme: 'light_theme' | 'dark_theme'&lt;/code> to the embed payload. Also, Sankey chart labels don&amp;rsquo;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.&lt;/li>
&lt;li>I told them we&amp;rsquo;ll reach out Monday with an internal plan.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Onboarding call 2 with Jonas Chorum — completed Apr 17
&lt;ul>
&lt;li>Feedback: (1) need Select All &amp;amp; Clear All in dataset; (2) make dashboard interactivity features (VUD, DD, BD) available for Explore too.&lt;/li>
&lt;li>Debriefed the call, brought feedbacks to the team.&lt;/li>
&lt;li>EAV lookup table pattern discussed during call: Tony&amp;rsquo;s &lt;code>one_letter_codes&lt;/code> table is a multi-purpose lookup where same code means different things per category (e.g., &amp;lsquo;C&amp;rsquo; = &amp;lsquo;Cancelled&amp;rsquo; for StayStatus, &amp;lsquo;City&amp;rsquo; for Ledger). Proposed 3 approaches; decided on Approach 1 (SQL Query Models with inline joins) — most reliable, avoids bloating diagram view.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Presales sync — completed Apr 16
&lt;ul>
&lt;li>Pivot prioritization to tutorial videos for local development docs.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>WAITING&lt;/strong> Polish embedding documentation — deprioritized per 1-on-1. Not the right timing. Continue maintaining &lt;a href="https://holistics-embed-demo.pages.dev/">holistics-embed-demo&lt;/a> informally.&lt;/li>
&lt;li>
&lt;h4 id="add2cart">Add2Cart&lt;/h4>
&lt;/li>
&lt;li>&lt;strong>CLOSED&lt;/strong> All Add2Cart tasks closed — customer won&amp;rsquo;t engage.
&lt;ul>
&lt;li>Guidance for countries level data — closed Apr 17.&lt;/li>
&lt;li>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.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h4 id="docs">Docs&lt;/h4>
&lt;/li>
&lt;li>&lt;strong>TODO&lt;/strong> Add demo video for local development docs — elevated to P1 per presales sync. Draft scenario, discuss with anh Huy Vu/Dat.&lt;/li>
&lt;li>&lt;strong>NOTE&lt;/strong> DataHub integration (&lt;a href="https://github.com/holistics/datahub-holistics">holistics/datahub-holistics&lt;/a>) — built for customer MoneySmart. Anh Triet flagged concern: data team needs to be prepared for support if customer reports an issue.&lt;/li>
&lt;li>
&lt;h3 id="personal--tooling">Personal / Tooling&lt;/h3>
&lt;/li>
&lt;li>Explored &lt;a href="https://reactflow.dev/">ReactFlow&lt;/a> for vibe-coding data lineage with high-quality canvas. Also applicable for knowledge graph visualization from Logseq.&lt;/li>
&lt;li>Found &lt;a href="https://github.com/docglow/docglow">docglow&lt;/a> as dbt docs alternative — prettier UI, supports column-level lineage.&lt;/li>
&lt;li>Found &lt;a href="https://nickbes.github.io/meta-sql/">meta-sql&lt;/a> — data lineage graph with dependency visualization, useful inspiration for [[dblineage]].&lt;/li>
&lt;li>Read articles on dbt incremental models (lookback windows, &lt;code>_dbt_max_partition&lt;/code> gaps), dbt Cloud Canvas, and data ingestion tool comparison.&lt;/li>
&lt;li>Considered downgrading Google One (no longer using Gemini chatbot regularly).&lt;/li>
&lt;li>Reflected on context-switching cost across projects (Internal, Presales, Docs, Personal, Teaching). Considering Focus Days approach to reduce overhead.&lt;/li>
&lt;li>
&lt;h3 id="learning--notes">Learning &amp;amp; Notes&lt;/h3>
&lt;/li>
&lt;li>Read &lt;a href="https://dylanbutler.dev/blog/protect-your-shed/">&amp;ldquo;Protect Your Shed&amp;rdquo;&lt;/a> — personal projects keep you an engineer while enterprise work teaches scale. Resonated with how side projects (like Logseq automation) maintain motivation.&lt;/li>
&lt;li>Read &lt;a href="https://mitchellh.com/writing/my-ai-adoption-journey">&amp;ldquo;My AI Adoption Journey&amp;rdquo;&lt;/a> by Mitchell Hashimoto (co-founder of HashiCorp, creator of Ghostty).
&lt;ul>
&lt;li>Key concept: &lt;strong>Harness Engineering&lt;/strong> — design better feedback loops so AI agents know when they&amp;rsquo;re wrong. The simplest form is adding rules to &lt;code>AGENTS.md&lt;/code>. Already practicing this with Logseq automation.&lt;/li>
&lt;li>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.&lt;/li>
&lt;li>Key insight: &amp;ldquo;Turn off desktop notifications. Context switching is expensive.&amp;rdquo; Validates experience with multi-project context overhead.&lt;/li>
&lt;li>On skill formation: &amp;ldquo;discovering it yourself resulted in a stronger fundamental understanding&amp;rdquo; — applies beyond AI.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Read dbt incremental model articles: strategies (merge, insert_overwrite, append), lookback windows for late-arriving data, &lt;code>_dbt_max_partition&lt;/code> gaps. Directly applied to DAT-555 fix.&lt;/li>
&lt;li>
&lt;h3 id="next-week">Next Week&lt;/h3>
&lt;/li>
&lt;li>&lt;strong>P1 — Must Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Duty Support&lt;/strong>: Review AI sharing dashboard for Aurora (enterprise customer). &lt;a href="https://holistics.slack.com/archives/C79QB3FEV/p1776280889830069">Slack&lt;/a>. Monday priority.&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>: Basata follow up on light/dark theme (enterprise customer). &lt;a href="https://holistics.slack.com/archives/C0AF90RFWHE/p1776350787735709">Slack&lt;/a>. Monday priority.&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Merge Calendly PR #853 (approved, ready to merge), run dbt models, validate data in Holistics BI. Then fix downstream &lt;code>fct_sales_leads&lt;/code> join.&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Review anh Dong&amp;rsquo;s CircleCI PR &lt;a href="https://github.com/holistics/prefect/pull/397">prefect #397&lt;/a> (&lt;a href="https://linear.app/holistics/issue/DAT-579">DAT-579&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Start MRR exchange rate work (&lt;a href="https://linear.app/holistics/issue/DAT-576">DAT-576&lt;/a>) — build &lt;code>dim_exchange_rates&lt;/code> with live rate ingestion. Manager priority #1.&lt;/li>
&lt;li>&lt;strong>Docs&lt;/strong>: Add demo video for local development docs — draft scenario, discuss with anh Huy Vu/Dat.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 — Should Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>: Clean up BI layer for job queue dashboards (delete WIP 3.0, migrate v2 to 4.0).&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Increase data freshness — impersonation lookup more frequent than daily (&lt;a href="https://linear.app/holistics/issue/DAT-499">DAT-499&lt;/a>). Manager priority #3.&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Lead Funnel by Sales Motion (&lt;a href="https://linear.app/holistics/issue/DAT-560">DAT-560&lt;/a>) — review and plan after Calendly pipeline stabilizes.&lt;/li>
&lt;li>&lt;strong>Teaching&lt;/strong>: Find a football dataset for Duc Anh.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 — Nice to Have&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>: Contribute to Holistics &lt;a href="https://github.com/holistics/skills">skills&lt;/a> and &lt;a href="https://github.com/holistics/internal-skills">internal-skills&lt;/a> repos.&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>: Read &lt;a href="https://docs.holistics.io/docs/modeling-patterns">Modeling Patterns&lt;/a> docs.&lt;/li>
&lt;li>&lt;strong>Personal&lt;/strong>: Self reflection and update CV.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Backlog&lt;/strong> (deprioritized, pick up after MRR/Calendly)
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>: DAT-524 Fix excluding internal Zoho accounts — small task, 10 weeks carry-over.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="career--personal-consulting">Career &amp;amp; Personal Consulting&lt;/h3>
&lt;/li>
&lt;li>&lt;strong>Progress Review (Start/Stop/Keep)&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Keep&lt;/strong>: 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.&lt;/li>
&lt;li>&lt;strong>Start&lt;/strong>: Decisively backlogging low-impact carry-over items. DAT-524 formally backlogged — small task that doesn&amp;rsquo;t warrant 10 weeks of cognitive overhead. Good precedent.&lt;/li>
&lt;li>&lt;strong>Stop&lt;/strong>: Holding onto tasks that external parties have deprioritized. Good move closing all Add2Cart tasks when it became clear the customer won&amp;rsquo;t engage. Apply this pattern to other WAITING items proactively.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Workload Observations&lt;/strong>: 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.&lt;/li>
&lt;li>&lt;strong>Skill Development&lt;/strong>: 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.&lt;/li>
&lt;li>&lt;strong>Harness Engineering observation&lt;/strong>: You&amp;rsquo;re already practicing what Mitchell Hashimoto describes — iterating on &lt;code>AGENTS.md&lt;/code>, building automation scripts that learn from mistakes. This is a genuine competitive advantage in the AI-first era. Continue investing in it.&lt;/li>
&lt;li>&lt;strong>Context switching&lt;/strong>: You flagged this yourself — many projects are &amp;ldquo;always on&amp;rdquo; (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.&lt;/li>
&lt;li>
&lt;h3 id="recommended-resources-to-learn">Recommended resources to learn&lt;/h3>
&lt;/li>
&lt;li>&lt;a href="https://mitchellh.com/writing/my-ai-adoption-journey">Mitchell Hashimoto&amp;rsquo;s &amp;ldquo;My AI Adoption Journey&amp;rdquo;&lt;/a> — already read, but worth revisiting Step 5 (Harness Engineering) as you build more automation. Share with team?&lt;/li>
&lt;li>&lt;a href="https://discourse.getdbt.com/">dbt discourse: Multi-currency reporting patterns&lt;/a> — search for &amp;ldquo;exchange rate&amp;rdquo; and &amp;ldquo;multi-currency&amp;rdquo; threads. Community patterns for &lt;code>dim_exchange_rates&lt;/code> and constant-currency MRR will shortcut your DAT-576 implementation.&lt;/li>
&lt;li>&lt;a href="https://github.com/ghostty-org/ghostty/blob/main/src/inspector/AGENTS.md">Ghostty AGENTS.md example&lt;/a> — referenced in Hashimoto&amp;rsquo;s article. Good reference for structuring &lt;code>AGENTS.md&lt;/code> for different subdirectories.&lt;/li>
&lt;li>YouTube: &lt;a href="https://www.youtube.com/results?search_query=dbt+incremental+models+deep+dive">Analytics Engineering with dbt — Incremental Models Deep Dive&lt;/a> — reinforces the lookback window patterns you applied to DAT-555.&lt;/li>
&lt;li>Book: &lt;a href="https://www.oreilly.com/library/view/the-staff-engineers/9781098118730/">&amp;ldquo;The Staff Engineer&amp;rsquo;s Path&amp;rdquo;&lt;/a> by Tanya Reilly — relevant for your growing ownership of cross-team projects (MRR, Calendly, presales tooling). Good framework for &amp;ldquo;glue work&amp;rdquo; and technical leadership.&lt;/li>
&lt;/ul></description></item><item><title>Weekly Report - 2026-W17</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w17/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w17/</guid><description>&lt;ul>
&lt;li>
&lt;h2 id="weekly-report--apr-20--apr-26-2026-friday-mode">Weekly Report — Apr 20 – Apr 26, 2026 (friday mode)&lt;/h2>
&lt;/li>
&lt;li>
&lt;h3 id="work">Work&lt;/h3>
&lt;/li>
&lt;li>
&lt;h4 id="internal">Internal&lt;/h4>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Calendly data pipeline reporting layer scoped (&lt;a href="https://linear.app/holistics/issue/DAT-283">DAT-283&lt;/a>)
&lt;ul>
&lt;li>Following the merge of &lt;a href="https://github.com/holistics/dbt/pull/853">dbt #853&lt;/a> (approved last week), captured the full reporting-layer plan in &lt;code>journals/2026_03_19.md&lt;/code> covering Source / Staging / Domain / Mart / Deprecated / Fixed layers.&lt;/li>
&lt;li>New canonical mart: &lt;code>mart_growth__calendly_bookings&lt;/code> (view → &lt;code>fct_calendly_bookings&lt;/code>, grain = event × attendee × rep) and &lt;code>mart_growth__calendly_events&lt;/code> (table → &lt;code>dim_calendly_events&lt;/code>).&lt;/li>
&lt;li>Deprecated (&lt;code>enabled: false&lt;/code>): &lt;code>mart_growth__demo_calls&lt;/code>, &lt;code>mart_growth__onboarding_calls&lt;/code>, &lt;code>mart_core_business__demo_call_bookings&lt;/code>, &lt;code>dom_calendly__demo_call_bookings&lt;/code>, &lt;code>dom_calendly__onboarding_call_bookings&lt;/code>.&lt;/li>
&lt;li>Fixed: &lt;code>mart_core_business__sales_leads&lt;/code> now joins &lt;code>dom_calendly__bookings&lt;/code> directly on &lt;code>attendee_email_domain&lt;/code> (resolves the 88% drop in call-booking leads found last week).&lt;/li>
&lt;li>Next: update Holistics BI Model / Dataset / Dashboard to align with the new layer (&lt;a href="https://ampcode.com/threads/T-019daf41-e5fb-7589-9ab1-38a147fd24bf">Ampcode thread&lt;/a>).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>WAITING&lt;/strong> Review PR CircleCI for anh Dong (&lt;a href="https://github.com/holistics/prefect/pull/397">prefect #397&lt;/a> / &lt;a href="https://linear.app/holistics/issue/DAT-579">DAT-579&lt;/a> — sub-task of &lt;a href="https://linear.app/holistics/issue/DAT-578">DAT-578&lt;/a> CircleCI pipeline revamp)
&lt;ul>
&lt;li>Round 1 review done. Used &lt;a href="https://ampcode.com/threads/T-019daad7-d460-730f-8629-21c9c0f41c46">Ampcode (code review)&lt;/a> and &lt;a href="https://ampcode.com/threads/T-019daf69-0581-76c5-9aec-5e86adec961a">Ampcode (PR 858)&lt;/a> to scaffold review.&lt;/li>
&lt;li>Now waiting on anh Dong&amp;rsquo;s response. &lt;a href="https://www.notion.so/holistics/DE-214-CircleCI-analysis-33df89dc7e4980838acecd863d40ff3a">Notion DE-214&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>NOTE&lt;/strong> &lt;a href="https://linear.app/holistics/issue/DAT-556">DAT-556&lt;/a> dbt test failure root cause analysis (&lt;a href="https://ampcode.com/threads/T-019db0fa-7701-738f-9b5e-22ca5ffe355c">Ampcode&lt;/a>)
&lt;ul>
&lt;li>Failing test: &lt;code>unique_map_identities_zendesk_hubspot_zendesk_organization_id&lt;/code>. Zendesk org &lt;code>900032617243&lt;/code> (&lt;code>1win.pro&lt;/code>) maps to 2 HubSpot companies because &lt;code>1win.pro&lt;/code> appears in &lt;code>all_domain_names&lt;/code> of both HubSpot &lt;code>5855457913&lt;/code> and &lt;code>18891852445&lt;/code>.&lt;/li>
&lt;li>Root cause: &lt;code>IN UNNEST(all_domain_names)&lt;/code> join in &lt;code>itg_mappings__zendesk_tenant.sql&lt;/code> (and similar integration-layer joins) creates fan-out whenever a domain appears in multiple HubSpot companies. Originated from DE-187 phase 1 (&lt;a href="https://github.com/holistics/dbt/pull/812">PR #812&lt;/a>).&lt;/li>
&lt;li>Impact: 16 tenants across ~10 companies; affected customers: Correlation Risk Partners, Cruisebound, 1win.&lt;/li>
&lt;li>Decision: leave the test failing for now and address as part of the broader DE-187 resolution (canonical &lt;code>customer_skey&lt;/code> work). Not yet actioned due to sick leave.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>NOTE&lt;/strong> dbt deprecation policy clarified (&lt;a href="https://ampcode.com/threads/T-019da543-67a6-705b-8ab3-3fbac43946b4">Ampcode thread&lt;/a>)
&lt;ul>
&lt;li>Phase 1: deprecate in code. Phase 2: remove the &lt;code>.sql&lt;/code> file. Phase 3: drop the table.&lt;/li>
&lt;li>Don&amp;rsquo;t sit between phase 2 and 3 — AML models reference BQ physical names; removing the &lt;code>.sql&lt;/code> only stops refresh, leaving the table with stale data and silently misleading consumers. Either keep the wrapper alive or drop the table entirely.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>NOT STARTED (carry-over)&lt;/strong> MRR exchange rate work (&lt;a href="https://linear.app/holistics/issue/DAT-576">DAT-576&lt;/a>) — manager P1 from W16 1-on-1; not started due to sick leave + holiday week. Will pick up next week.&lt;/li>
&lt;li>&lt;strong>NOT STARTED (carry-over)&lt;/strong> Lead Funnel by Sales Motion (&lt;a href="https://linear.app/holistics/issue/DAT-560">DAT-560&lt;/a>) — added &lt;a href="https://ampcode.com/threads/T-019db869-6fb1-75c0-b4a5-0511950cbd48">Ampcode (Holistics PR)&lt;/a> reference; still blocked on Calendly BI rollout.&lt;/li>
&lt;li>
&lt;h4 id="presales">Presales&lt;/h4>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Basata follow up on light/dark theme — completed Apr 21 (&lt;a href="https://holistics.slack.com/archives/C0AF90RFWHE/p1776350787735709">Slack&lt;/a>, &lt;a href="https://ampcode.com/threads/T-019daa56-29ed-737f-b3ca-e56a42e782d8">Ampcode&lt;/a>)
&lt;ul>
&lt;li>anh Huy posted the consolidated workaround to Taha (Basata) on Apr 21:
&lt;ul>
&lt;li>&lt;strong>Gap 1&lt;/strong> (no theme context in embed payload): Basata duplicates the dashboard into 2 versions (light + dark); Basata app reads the user&amp;rsquo;s theme preference and renders the matching embed.&lt;/li>
&lt;li>&lt;strong>Gap 2&lt;/strong> (Sankey + dynamic markdown don&amp;rsquo;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.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Caveat communicated: dashboard header + zoom section can&amp;rsquo;t be customized via CSS yet (rendered at the Holistics layer); use case forwarded to PMs for the longer-term embed-payload theme support.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>NOTE&lt;/strong> Communication observation: in two recent enterprise conversations I offered to do hands-on work and got silence in return.
&lt;ul>
&lt;li>Showbie (&lt;a href="https://holistics.slack.com/archives/C0AJF469ANL/p1776955966087569?thread_ts=1776952437.596209&amp;amp;cid=C0AJF469ANL">Slack thread&lt;/a>): 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.&lt;/li>
&lt;li>Basata (&lt;a href="https://holistics.slack.com/archives/C0AF90RFWHE/p1776782158758269?thread_ts=1776350787.735709&amp;amp;cid=C0AF90RFWHE">Slack thread&lt;/a>): anh Huy proposed the dual-dashboard workaround and offered to apply the Sankey CSS fix via impersonation. No reply yet.&lt;/li>
&lt;li>I don&amp;rsquo;t know how to best communicate with these kinds of users — possibly the offer of &amp;ldquo;I&amp;rsquo;ll do it for you&amp;rdquo; reads as too forward, or they need time to absorb. Worth raising in next 1-on-1.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h4 id="duty-support">Duty Support&lt;/h4>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Review AI sharing dashboard for Aurora — completed Apr 23 (moved to &lt;a href="pages/Backlog___Done.md">Backlog/Done&lt;/a>)
&lt;ul>
&lt;li>Confirmed Hieu&amp;rsquo;s &lt;a href="https://us.holistics.io/dashboards/v4/1099511684352">dashboard&lt;/a> is feasible to share as spreadsheet but &lt;strong>not yet ready to consume&lt;/strong> — needs polishing before delivery.&lt;/li>
&lt;li>Aligned with the commercial decision: Vincent (CEO) clarified the in-app AI usage dashboard is free for all customers; &lt;strong>what&amp;rsquo;s being sold is data sync/export to Aurora&amp;rsquo;s own systems&lt;/strong> (S3 preferred, Google Sheets secondary). Targeting enterprise compliance, security auditing, 7+ year retention.&lt;/li>
&lt;li>Final delivery format pending Nam&amp;rsquo;s email to Aurora. AI team (Phuong/Tien/Dat) owns separate in-app monitoring; data team scope is bounded to current ClickHouse data.&lt;/li>
&lt;li>Prior art: &lt;a href="https://holistics.slack.com/archives/C09GURCKQV8/p1772181645114809">SweetSpot Slack thread&lt;/a> — same pattern.&lt;/li>
&lt;li>&lt;strong>UPDATE — deal deferred&lt;/strong> Email thread between Nam (Holistics) and Weiping (Aurora), Apr 20–23 (&lt;a href="https://holistics.slack.com/files/U083NKXG3A7/F0AV156CJAJ/re__aurora____holistics___usage_data_sync">Slack file&lt;/a>):
&lt;ul>
&lt;li>Nam pitched the $10,200/year &amp;ldquo;Usage and AI Data Monitoring Transfer Sync&amp;rdquo; (S3 delivery, scope: conversation time/ID, user ID, prompts + AI replies, token usage per user).&lt;/li>
&lt;li>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.&lt;/li>
&lt;li>Both sides agreed to revisit when Holistics has more concrete AI usage data.&lt;/li>
&lt;li>&lt;strong>Implication for data team&lt;/strong>: no immediate delivery work needed. The Aurora-specific AI conversation dashboard (Hieu&amp;rsquo;s) can stay on hold; focus shifts to AI team&amp;rsquo;s in-app analytics rollout. Keep the dashboard ready in case the conversation reopens.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h4 id="docs">Docs&lt;/h4>
&lt;/li>
&lt;li>&lt;strong>NOT STARTED (carry-over)&lt;/strong> Add demo video for local development docs — moved to &lt;code>journals/2026_05_25.md&lt;/code> (will scope after the holiday). &lt;a href="https://holistics.slack.com/archives/CUVFL836F/p1774692685962079">Slack 1&lt;/a>, &lt;a href="https://holistics.slack.com/archives/C05FBNL7XCN/p1774581495162309">Slack 2&lt;/a>.
&lt;ul>
&lt;li>&lt;strong>NOTE&lt;/strong> Follow-up DM with Khai To on Apr 23–24 (&lt;a href="https://holistics.slack.com/archives/D09GGTNNVA7/p1776943057973219">Slack DM&lt;/a>):
&lt;ul>
&lt;li>Demo direction: lead with the outcome demo (like lightdash does — show power first); push step-by-step setup into the docs.&lt;/li>
&lt;li>Khai&amp;rsquo;s MCP for local metric queries is on staging13, not yet prod. He&amp;rsquo;ll demo it (skill + MCP combo) once I&amp;rsquo;m back from holiday.&lt;/li>
&lt;li>Estimated cadence: &amp;ldquo;probably 2 weeks after holiday&amp;rdquo; — aligns with the demo-video scoping push to mid-May.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="personal--tooling">Personal / Tooling&lt;/h3>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Set up Drata and remove Vanta — Apr 23 (&lt;a href="https://holistics.slack.com/archives/C018EFH939P/p1776934120345649">Slack&lt;/a>, &lt;a href="https://www.notion.so/holistics/Drata-33af89dc7e4980a3a77cd007c01bb50e">Notion guide&lt;/a>).
&lt;ul>
&lt;li>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.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Tax checking — Apr 23 (&lt;a href="https://holistics.slack.com/archives/C2N6XR1TQ/p1776930052584019">Slack&lt;/a>).
&lt;ul>
&lt;li>HR (Nhu Nhu) asked everyone to install &lt;strong>Etax Mobile&lt;/strong> and check 2025 PIT finalization status before her leave. Verified own status: single-source income at Holistics → finalization successful, no follow-up needed.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>DONE&lt;/strong> Set up CLI client for Cloudflare R2 upload — Apr 27 (&lt;a href="https://ampcode.com/threads/T-019dcd28-8d3d-7772-b129-219f5a3d1e84">Ampcode&lt;/a>). Closes the loop on the auto-upload-to-R2 setup for Logseq media.&lt;/li>
&lt;li>&lt;strong>NOTE&lt;/strong> Considering migrating emergency savings out of 1Long — no longer trust its reliability for emergency funds.&lt;/li>
&lt;li>&lt;strong>DECIDED&lt;/strong> 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.&lt;/li>
&lt;li>
&lt;h3 id="learning--notes">Learning &amp;amp; Notes&lt;/h3>
&lt;/li>
&lt;li>&lt;strong>LEARNING&lt;/strong> Don&amp;rsquo;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.&lt;/li>
&lt;li>&lt;strong>READ&lt;/strong> &lt;a href="https://www.mooreds.com/wordpress/archives/3518">&amp;ldquo;Ask for no, don&amp;rsquo;t ask for yes&amp;rdquo;&lt;/a>
&lt;ul>
&lt;li>Instead of &amp;ldquo;Hey boss, can we install action X?&amp;rdquo;, say &amp;ldquo;Hey boss, I&amp;rsquo;m going to install action X to solve XYZ. Will take care of it Monday unless I hear differently.&amp;rdquo;&lt;/li>
&lt;li>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.&lt;/li>
&lt;li>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.&lt;/li>
&lt;li>The &lt;a href="https://www.mooreds.com/wordpress/archives/category/tips">tips category on mooreds.com&lt;/a> reads like a senior engineer sharing small craft-level tips that LLM searches don&amp;rsquo;t surface — reminder to keep cultivating non-LLM reading sources.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>NOTE&lt;/strong> 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.&lt;/li>
&lt;li>&lt;strong>NOTE&lt;/strong> 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.&lt;/li>
&lt;li>
&lt;h3 id="next-week">Next Week&lt;/h3>
&lt;/li>
&lt;li>&lt;strong>P1 — Must Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>: Start MRR exchange rate work (&lt;a href="https://linear.app/holistics/issue/DAT-576">DAT-576&lt;/a>) — build &lt;code>dim_exchange_rates&lt;/code> with live rate ingestion. Carry-over, manager P1.&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Pick up &lt;a href="https://linear.app/holistics/issue/DAT-555">DAT-555&lt;/a> follow-up captured in &lt;code>journals/2026_04_27.md&lt;/code>.&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Update Holistics BI Model / Dataset / Dashboard for the new Calendly mart layer (&lt;a href="https://linear.app/holistics/issue/DAT-283">DAT-283&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Resolve DAT-556 dbt test failure (root cause already analysed Apr 22).&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Close out CircleCI PR review feedback loop with anh Dong (&lt;a href="https://github.com/holistics/prefect/pull/397">prefect #397&lt;/a> / &lt;a href="https://linear.app/holistics/issue/DAT-579">DAT-579&lt;/a>).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P2 — Should Do&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>: Lead Funnel by Sales Motion (&lt;a href="https://linear.app/holistics/issue/DAT-560">DAT-560&lt;/a>) — unblock once Calendly BI layer is rolled out. Carry-over since W14 (4 weeks).&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Clean up BI layer for job queue dashboards (delete WIP 3.0, migrate v2 / Report Monitoring to 4.0).&lt;/li>
&lt;li>&lt;strong>Internal&lt;/strong>: Increase data freshness — impersonation lookup more frequent than daily (&lt;a href="https://linear.app/holistics/issue/DAT-499">DAT-499&lt;/a>). Manager P3.&lt;/li>
&lt;li>&lt;strong>Docs&lt;/strong>: Draft scenario for local development demo video, then sync with anh Huy Vu / Dat. Carry-over.&lt;/li>
&lt;li>&lt;strong>Teaching&lt;/strong>: Find a football dataset for Duc Anh.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>P3 — Nice to Have&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Internal&lt;/strong>: Contribute to Holistics &lt;a href="https://github.com/holistics/skills">skills&lt;/a> and &lt;a href="https://github.com/holistics/internal-skills">internal-skills&lt;/a> repos.&lt;/li>
&lt;li>&lt;strong>Presales&lt;/strong>: Read &lt;a href="https://docs.holistics.io/docs/modeling-patterns">Modeling Patterns&lt;/a> docs.&lt;/li>
&lt;li>&lt;strong>Personal&lt;/strong>: Self-reflection + CV update. Research alternatives to 1Long for emergency savings.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Holiday note&lt;/strong>: 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.&lt;/li>
&lt;li>
&lt;h3 id="career--personal-consulting">Career &amp;amp; Personal Consulting&lt;/h3>
&lt;/li>
&lt;li>&lt;strong>Progress Review (Start / Stop / Keep)&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Keep&lt;/strong>: 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&amp;rsquo;s healthy triage.&lt;/li>
&lt;li>&lt;strong>Keep&lt;/strong>: Capturing the dbt deprecation policy as a reusable note (3-phase rule). These small principles compound — they prevent future &amp;ldquo;stale table&amp;rdquo; landmines and give you something concrete to teach Thuan / juniors.&lt;/li>
&lt;li>&lt;strong>Start&lt;/strong>: 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.&lt;/li>
&lt;li>&lt;strong>Stop&lt;/strong>: 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).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Workload observations&lt;/strong>
&lt;ul>
&lt;li>This was a low-output work week by design (illness + trip), and that&amp;rsquo;s fine. The bigger risk is that two of last week&amp;rsquo;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.&lt;/li>
&lt;li>The &amp;ldquo;Ask for no, don&amp;rsquo;t ask for yes&amp;rdquo; article is timely — your carry-over list is growing, and proactive framing (&amp;ldquo;I&amp;rsquo;ll start MRR Mon, will course-correct based on Friday review&amp;rdquo;) would reduce review-cycle latency.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Personal well-being&lt;/strong>
&lt;ul>
&lt;li>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.&lt;/li>
&lt;li>Health: the cold is a signal. Sleep &amp;gt; productivity. Seven days of recovery cost roughly the same time as four nights of better sleep would have prevented.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Career development&lt;/strong>
&lt;ul>
&lt;li>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 &amp;ldquo;always-on but never-done&amp;rdquo; zone.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Customer communication signal (Showbie + Basata)&lt;/strong>
&lt;ul>
&lt;li>Both threads end with us volunteering hands-on work (&amp;ldquo;I can build the example&amp;rdquo;, &amp;ldquo;we&amp;rsquo;ll apply the CSS via impersonation&amp;rdquo;) and the customer going quiet. Two non-mutually-exclusive hypotheses worth testing:
&lt;ul>
&lt;li>(a) Decision delay — they need time to socialize internally; silence is &amp;ldquo;not yet&amp;rdquo;, not &amp;ldquo;no&amp;rdquo;. Action: send a soft check-in 3–5 days later instead of waiting indefinitely.&lt;/li>
&lt;li>(b) Perceived push — &amp;ldquo;I&amp;rsquo;ll do it for you&amp;rdquo; can feel like over-reach for users who want autonomy. Action: try framing as a self-serve doc + offer (&amp;ldquo;here&amp;rsquo;s the recipe; happy to pair if helpful&amp;rdquo;) rather than &amp;ldquo;I&amp;rsquo;ll do it&amp;rdquo;.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>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.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;h3 id="recommended-resources-to-learn">Recommended resources to learn&lt;/h3>
&lt;/li>
&lt;li>&lt;a href="https://hubermanlab.com/podcast">Maximize Your Recovery: Sleep, Stress, and Illness&lt;/a> — Huberman Lab episodes on sleep and recovery. Useful given this week&amp;rsquo;s illness pattern; pair with the gaming-curfew commitment.&lt;/li>
&lt;li>&lt;a href="https://newsletter.weskao.com/p/how-to-write-a-one-pager">How to Write a One Pager&lt;/a> — Wes Kao. Good companion to &amp;ldquo;Ask for no, don&amp;rsquo;t ask for yes&amp;rdquo; — both are about framing decisions for busy stakeholders. Applies to your MRR / Calendly status updates.&lt;/li>
&lt;li>&lt;a href="https://discourse.getdbt.com/">dbt deprecation patterns discussion&lt;/a> — search &amp;ldquo;deprecate model&amp;rdquo; / &amp;ldquo;remove model&amp;rdquo;; community patterns confirm the 3-phase rule you derived this week.&lt;/li>
&lt;li>&lt;a href="https://jamesclear.com/atomic-habits">Atomic Habits — environment design chapters&lt;/a> — relevant for the no-late-night-gaming rule. Behaviour change is easier with environment changes (e.g., move console out of bedroom) than willpower.&lt;/li>
&lt;li>&lt;a href="https://calnewport.com/category/deep-habits/">Cal Newport — Deep Work / time-blocking&lt;/a> — supports the Focus Days experiment from W16. With 3 effective workdays next week (Mon–Wed before holiday), time-blocking matters more than usual.&lt;/li>
&lt;li>&lt;a href="https://www.goodreads.com/book/show/26156469-never-split-the-difference">&amp;ldquo;Never Split the Difference&amp;rdquo;&lt;/a> by Chris Voss — relevant for the Showbie/Basata &amp;ldquo;silence after offer&amp;rdquo; pattern. Specifically chapter on calibrated questions and the &amp;ldquo;no&amp;rdquo; answer bias (links nicely with the &amp;ldquo;Ask for no, don&amp;rsquo;t ask for yes&amp;rdquo; article).&lt;/li>
&lt;li>&lt;a href="https://waitbutwhy.com/2013/11/how-to-beat-procrastination.html">Wait But Why — &amp;ldquo;How to do battle with the procrastination monster&amp;rdquo;&lt;/a> — pair with the carry-over forcing-function rule. Long carry-overs often have a procrastination root, not a priority root.&lt;/li>
&lt;/ul></description></item><item><title>Weekly Report - 2026-W18</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w18/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w18/</guid><description>&lt;h2 id="weekly-report--apr-27--may-3-2026-friday-mode">Weekly Report — Apr 27 – May 3, 2026 (friday mode)&lt;/h2>
&lt;blockquote>
&lt;p>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&amp;rsquo;s MRR exchange-rate work is still zero-progress (3-week carry-over).&lt;/p></description></item><item><title>Weekly Report - 2026-W19</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w19/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w19/</guid><description>&lt;h2 id="weekly-report--apr-29--may-8-2026-friday-mode">Weekly Report — Apr 29 – May 8, 2026 (friday mode)&lt;/h2>
&lt;blockquote>
&lt;p>First full 5-workday week after W18 holidays. &lt;strong>Big internal closure&lt;/strong>: Lead Funnel by Sales Motion (&lt;a href="https://linear.app/holistics/issue/DAT-560">DAT-560&lt;/a>) shipped — DAT-561/562/563/564 all closed May 8, ending a &lt;strong>5-week carry-over&lt;/strong> that had been blocked on Calendly. &lt;strong>Big presales loss&lt;/strong>: [[Showbie]] went to Omni; learning synthesis captured. &lt;strong>MRR exchange rate (DAT-576) still NOT STARTED — now 4-week carry-over and being treated as a restart in W20&lt;/strong>: 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 &lt;code>dbt#861&lt;/code> 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.&lt;/p></description></item><item><title>Weekly Report - 2026-W20</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w20/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w20/</guid><description>&lt;h2 id="weekly-report--may-11--may-17-2026-friday-mode">Weekly Report — May 11 – May 17, 2026 (friday mode)&lt;/h2>
&lt;blockquote>
&lt;p>Steady throughput week. Big wins: CircleCI PR review marathon finished (rounds 2–4, &lt;a href="https://github.com/holistics/prefect/pull/400">prefect#400&lt;/a> + &lt;a href="https://github.com/holistics/dbt/pull/858">dbt#858&lt;/a> closed), [[BuyCo]] custom theme rolled out on Volumes dashboard, Power BI playbook draft started for BuyCo onboarding (Tue May 19). Khai To&amp;rsquo;s 2-way sync CLI shipped — &lt;strong>unblocks the local-dev demo video&lt;/strong> (4-week WAITING cleared). MRR exchange rate (&lt;a href="https://linear.app/holistics/issue/DAT-576">DAT-576&lt;/a>) still &lt;strong>NOT STARTED — now 5-week carry-over&lt;/strong>: 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).&lt;/p></description></item><item><title>Weekly Report - 2026-W21</title><link>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w21/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/weekly-report---2026-w21/</guid><description>&lt;h2 id="weekly-report--may-18--may-23-2026-friday-mode">Weekly Report — May 18 – May 23, 2026 (friday mode)&lt;/h2>
&lt;blockquote>
&lt;p>&lt;strong>W21 (full week)&lt;/strong>. Power BI migration theme dominated: (1) playbook published Mon → &lt;a href="https://docs.holistics.io/docs/from-others/power-bi/conceptual-differences">docs/conceptual-differences&lt;/a> + &lt;a href="https://docs.holistics.io/docs/from-others/power-bi/migrating-to-holistics">docs/migrating-to-holistics&lt;/a>; (2) end-to-end &lt;code>AW-Sales&lt;/code> POC w/ value parity to the cent; (3) &lt;code>migrate-power-bi&lt;/code> agent plugin shipped via &lt;a href="https://github.com/holistics/skills/pull/10">holistics/skills#10&lt;/a>, then bug-fix follow-up &lt;a href="https://github.com/holistics/skills/pull/12">#12&lt;/a>, then bumped to &lt;strong>0.1.1&lt;/strong>. Mid-week: BuyCo + Basata onboarding calls closed, Enhance Fitness RFP assessed ($4.6K/mo proposal in flight), SLA data pull delivered to Xairo, 1-on-1 report written. Late week: 2 Docs PRs (&lt;a href="https://github.com/holistics/docs/pull/1639">docs#1639&lt;/a> OAuth+MCP, &lt;a href="https://github.com/holistics/docs/pull/1640">docs#1640&lt;/a> from-others landing), PatientsKnowBest answered, Datacubed embed user tracking delivered. New WAITING: TerryWhite Chemmart data question (pending anh Tan Huynh). &lt;strong>DAT-576 MRR exchange rate still NOT STARTED — 5-week carry-over remains the open wound; 1-on-1 escalation done but no resolution yet captured.&lt;/strong>&lt;/p></description></item><item><title>Write - Audit - Publish</title><link>https://secondbrain.lelouvincx.com/post/pages/write---audit---publish/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://secondbrain.lelouvincx.com/post/pages/write---audit---publish/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://chatgpt.com/c/6924828b-1524-8329-9f0d-5227092010d2">https://chatgpt.com/c/6924828b-1524-8329-9f0d-5227092010d2&lt;/a>&lt;/li>
&lt;li>Difference from Dev/Prod
&lt;ul>
&lt;li>Dev/Prod: where code runs&lt;/li>
&lt;li>WAP = how each run of that code introduces new data into prod&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Still inside the Prod environment, only different in schema, not separate environment&lt;/li>
&lt;/ul></description></item></channel></rss>