Dieurode Tassy

I build the pipelines that produce the number on the slide.

Extraction, warehousing, transformation, and the analysis that comes out the other end. Here is one, end to end.

  1. Extract

    Python

  2. Land

    AWS S3

  3. Load

    Snowflake

  4. Model

    dbt

  5. Answer

    The finding

The work

Small Business Lending Intelligence

A batch pipeline over roughly 2.1 million SBA 7(a) and 504 loan records, joined against Census business formation, BLS employment, and FRED macro series. The question: which borrowers default, and what does the public data actually let you say about why.

Extract

Python

Four native extractors hitting SBA, FRED, BLS, and Census APIs. No managed connectors exist for these sources.

Land

AWS S3

Raw responses written to canonical keys. Replayable, and a failure here does not cascade downstream.

Load

Snowflake

COPY INTO on a batch cadence. Raw stays raw: no renaming, no casting, no flattening at the door.

Model

dbt

Staging, intermediate, marts. Every transformation is version-controlled, tested, and lives in one place.

Answer

The finding

About 2.1M SBA loan records. One gap that is hard to look away from.

The finding

A 6.5x gap in default rates between two borrower segments: 31.7% against 4.9%. Writing up what the data supports, and what it does not.

Source →

How I build

Anyone can list the tools. The decisions are the thing.

Native extractors, not Fivetran
There are no managed connectors for SBA, FRED, BLS, or Census. Paying for a platform that cannot reach your sources is paying for nothing.
COPY INTO, not Snowpipe
These sources publish on bursty, irregular cadences. Per-file ingestion overhead buys latency I do not need and costs I would rather not carry.
Raw is sacred
Nothing gets renamed, cast, or flattened on the way in. Every transformation belongs in dbt where it is tested and reviewable. If I am wrong about a type, I want to fix it in a model, not re-ingest 2M rows.
S3 as a landing zone
Decouples the failure domains. An API change breaks extraction; it does not corrupt the warehouse. And I can replay any load without hitting a rate limit.

About

I sell financial reporting software at DFIN, covering SEC filings, XBRL, and proxy statements, to finance and legal teams at public companies. The job taught me that the number on the slide is never the whole story. Someone had to pull it, clean it, and decide what it meant.

I got curious about that someone, and then I got obsessed. Now I build end-to-end analytics pipelines: extraction through warehousing through transformation through the finding at the end. The sales work did not stop being useful. Knowing how a finance team actually reads a number turns out to matter a great deal when you are the one producing it.

Python / SQL / Snowflake / dbt / AWS / Dagster / Next.js
SnowPro Core, in progress