02 · What I've Built

One engagement, eight workstreams.

A ~3-year data modernization of a 300+ location automotive collision-repair operator, which I architected, led, and managed as a Manager at SDG.

The bar was never the dashboard — it was whether the business was better off.

Real, delivered work, described in my own words. The client is anonymized and the outcomes are as delivered; no client slides, diagrams, or numbers are reproduced.

01 platform · foundation

Cloud data platform

On-prem warehouse → cloud-native. Near-live, under 15 minutes, for nearly every flow.

  • Azure
  • Snowflake
  • dbt
  • Qlik

Problem

A 300+ location operator scaling toward 1000+ — competing with national chains like Caliber and Gerber — was running on an on-prem data warehouse it had outgrown. It could not respond to data needs fast enough to feed an acquisition-driven growth plan.

Approach

Architected and led the migration to a cloud-native stack — Azure, Snowflake, dbt, and Qlik — with webhook and event-based ingestion, near-live incremental modeling, and CI/CD plus observability built in. Grew the engagement from 2.5 to 10+ FTE over three years.

Result

Under 15 minutes end-to-end for nearly all flows, near-live reporting across every key metric, and a foundation that gets more cost-efficient as volume grows.

  • <15 min latency
  • 2.5→10+ FTE / 3 yrs

Client engagement · SDG · client anonymized

02 finance · automation

Cash Application automation

~97% of electronic payments auto-matched. Manual allocation, gone.

  • UiPath
  • Snowflake External Functions
  • dbt
  • Qlik

Problem

Insurance carriers send electronic-payment details that staff allocated to each repair by hand — slow, costly, and impossible to scale, with a manual data-entry step into the estimating software on top.

Approach

Automated the match programmatically off the operations data, used external API calls to automate the data entry, and paired it with a Qlik observability app so the team could manage the exceptions instead of the whole queue.

Result

About 97% of electronic-payment allocations now run automatically, cutting significant labor and software-licensing cost, and the process scales cleanly as the business grows.

  • ~97% automated
  • labor + licensing saved

Client engagement · SDG · client anonymized

03 finance · integration

NetSuite accounting integration

Swapped a packaged connector for a pipeline finance actually owns.

  • Snowflake External Access
  • NetSuite
  • SOAP
  • Azure Data Factory

Problem

The accounting integration ran on a packaged connector (Celigo) that was cumbersome to change and left finance with little control over how transactions flowed into NetSuite.

Approach

Built a custom Snowflake-to-NetSuite pipeline — SOAP requests via Snowflake External Access, Azure Data Factory for ingest and modeling — syncing transactional sales data in near real-time.

Result

Finance now owns its AP, AR, and month-end workflows, the sync runs near real-time, and the pipeline adds anomaly detection and observability the old connector never had.

  • near real-time
  • finance-owned

Client engagement · SDG · client anonymized

04 hr · event pipeline

UKG HRMS event-driven pipeline

A system with no push API, turned into near-live HR events.

  • Azure Durable Functions
  • Snowflake
  • UKG
  • FreshService

Problem

Moving HR off ADP onto UKG, the business needed near-live HR data to drive automations — but UKG offered no push architecture to get it.

Approach

Built a custom event-driven pipeline using the Azure Durable Functions "monitor" pattern against UKG's table-and-field-level audit log, replicating it in Snowflake to mint events for the specific table+field pairs that mattered.

Result

Near-live HR data across systems, with employee events automatically opening ITSM tickets for onboarding and offboarding.

  • near-live HR
  • auto ITSM tickets

Client engagement · SDG · client anonymized

05 operations · api

Central Review estimate-scoring API

Every estimate scored in under 15 seconds — before a carrier sees it.

  • Azure Functions
  • Snowflake
  • Streamlit
  • Qlik

Problem

Poorly written repair estimates damage the operator's relationships with insurance carriers — and its revenue. Auditing every file through internal "Central Review" was inefficient and hard to customize.

Approach

Built an Azure Functions API that receives each estimate as a webhook and decides, in under 15 seconds, what to do with the file — applying custom scoring rules pulled live from Snowflake. A Streamlit UI lets the business own and tune the scoring logic.

Result

Estimates are scored in real time, only the files that actually need review are routed to Central Review, and the business controls the rules without waiting on a developer.

  • <15s per file
  • carrier-facing risk cut

Client engagement · SDG · client anonymized

06 analytics · diagnostic + prescriptive

Next-Best-Action conversational analytics

Anomaly and trend detection, turned into the next move — for operators who shouldn't have to be analysts.

  • Snowflake
  • ML anomaly + trend detection
  • multi-agent LLM
  • Qlik

Problem

Operators across many locations have to prioritize which conversations to have and where to travel — but they aren't, and shouldn't have to be, data analysts staring at dashboards.

Approach

Built an ML anomaly-and-trend detection pipeline over a governed KPI tree — Sales, Quality, Speed, CSAT — with pre-calculated change detection across KPIs at multiple levels, then a multi-agent layer on top. Ask about a top-level metric like NPS and it automatically surfaces the drivers underneath it, like communication response time and promise-date accuracy.

Result

Governed, actionable insight for a specific location instead of another dashboard or spreadsheet — and it flags what is actually shifting, week to week.

  • anomaly + trend detection
  • governed KPI tree
  • next-best-action

Client engagement · SDG · client anonymized

07 analytics · consumption

Insights Hub & KPI analytics

One screen: your top 3, your bottom 3, where you rank.

  • Qlik
  • Snowflake
  • normalized KPI store

Problem

Lower-tech middle management needed a simplified, actionable view; the full Qlik reporting repository was more than they wanted to navigate.

Approach

Built a role-based landing page that combines "must-see" objects with individualized KPIs. KPI data is normalized and ranked — top 3 and bottom 3 with geographic ranks — and the page doubles as a central jumping-off point for support needs like the help desk and HR.

Result

A simplified, actionable hub field staff actually use, with Qlik still underneath as the deep reporting repository.

  • role-based
  • top/bottom 3 + geo rank

Client engagement · SDG · client anonymized

08 data science · ml

Estimate Recommendation Engine

Learns from history to fix estimates before they're sent.

  • Python
  • association rules
  • anomaly detection
  • Snowflake

Problem

Estimators add, remove, and change lines inconsistently, which drives carrier change-requests and rework downstream.

Approach

Built an estimate-recommendation model with SDG's global Business Science vertical, analyzing historic estimates by damage type, vehicle, and carrier and using association rules and anomaly detection to recommend which lines to add, remove, or change.

Result

Recommendations that cut change requests by catching and correcting estimates before they go out.

  • fewer change requests

Client engagement · SDG · client anonymized

← back to the issue ask about Nick