A strong fit if
This consulting work is a strong fit when…
Costs climb and no one owns them
Warehouses sized for the worst day
Copied CTEs and views
Raw tables feed BI directly

Reduce unexplained spend, tune slow workloads, improve account architecture or deliver a Snowflake migration. Recommendations are based on account usage, query profiles and the workloads your team actually runs.
A strong fit if
Costs climb and no one owns them
Warehouses sized for the worst day
Copied CTEs and views
Raw tables feed BI directly


Probably not a fit if
The platform and delivery constraint are still completely unknown.
The work needs permanent on-call coverage or an unrestricted backlog.

What changes
Focused Snowflake implementation and optimisation across the account lifecycle.
Snowflake cost optimisation
Attribute spend by warehouse and workload, then tune sizing, schedules and resource use around what the account actually runs.
Query performance tuning
Profile expensive queries and improve pruning, joins, clustering and model design where the evidence points.
Warehouse architecture and sizing
Separate workloads, choose practical warehouse sizes and document the operating decisions behind them.
Snowflake migrations
Plan and deliver schema, ingestion and transformation migrations with an explicit cutover and validation path.
dbt on Snowflake
Build tested transformation layers, incremental models, contracts and CI inside the existing account.
Roles, grants and secure access
Make access rules understandable, reviewable and maintainable as teams and data products change.
Technical example
Ingestion, transformation and BI have different workload shapes. Separate them, attribute their spend and use query evidence before changing warehouse sizes. Actual savings depend on account configuration and usage.
bi/dau.sql (before)
-- bi/dau.sql (before) -- Illustrative anti-pattern: a dashboard scans raw event history. -- One oversized warehouse handles every workload. -- Run from a Looker Studio data source by an analyst. select user_id, date(event_at) as day from raw.events where event_at > current_date - 30 group by 1, 2
models/marts/fct_dau.sql (after)
-- models/marts/fct_dau.sql (after)
{{ config(
materialized='incremental',
incremental_strategy='merge',
unique_key=['user_id', 'day'],
cluster_by=['user_id', 'day'],
snowflake_warehouse='transforming_xs',
on_schema_change='append_new_columns',
tags=['product']
) }}
with events as (select * from {{ ref('stg_events') }})
select
user_id::number as user_id,
date(event_at) as day,
count(*) as events
from events
{% if is_incremental() %}
where event_at > (select max(day) from {{ this }})
{% endif %}
group by 1, 2
Reviewable delivery
A reviewable Snowflake engagement should connect each recommendation to warehouse history, query profiles or access requirements. Before sign-off, your team should have the implemented settings or code, validation results and a clear record of what changed, why and what still needs monitoring.
How we work
Start with a scoped account outcome or use recurring delivery for ongoing platform work.
01
Northgrain works inside your team on warehouse design, dbt models and cost tuning, with a clear communication rhythm and visible decisions.
02
A scoped Snowflake build with a clear start, end, and handoff: a migration, a cost cleanup, or an architecture review with a prioritized roadmap.
Questions

Share the workload, cost or performance problem and the change you need. We will reply with the most useful next step.