How a one-person data team at Keep built real-time banking infrastructure on dbt
Blog post from dbt
Keep’s head of data, Scott Ziolko, described how a one-person data team replaced a manual, spreadsheet-based credit underwriting process that took up to a business day with an automated system delivering post-ingestion decisions in under a minute. Serving Canadian small businesses, Keep chose managed tools rather than building infrastructure internally, using Artie for sub-second change data capture from Postgres and MongoDB into Snowflake, Snowflake dynamic tables, streams, tasks, and stored procedures for event-driven processing, and dbt for model governance, versioning, deduplication, snapshots, and non-real-time transformations. Banking data collected through Flinks is replicated, flattened, and transformed into cash-flow and risk features, while Streamlit and Snowflake provide a governed operational interface for underwriting teams. Ziolko noted that real-time components sacrifice some of dbt’s usual observability, so Keep uses custom freshness tests and retains every underwriting calculation with its producing Git hash for traceability and portfolio-wide model reprocessing. Although downstream processing is reliably under a minute, external bank connections can take longer, illustrating that end-to-end latency also depends on vendor performance and cost decisions.
| Trend | Post Mentions | Total Month Mentions | Posts | Companies | MoM |
|---|---|---|---|---|---|
| Real-time | 16 | 4,128 | 1,085 | 233 | -15% |
| Observability | 2 | 3,023 | 723 | 183 | +9% |
| MCP | 1 | 11,696 | 1,199 | 231 | +10% |
| Platform Engineering | 1 | 2,012 | 397 | 100 | +19% |
| Vector Search | 1 | 1,949 | 405 | 130 | +17% |
Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.