Know exactly who to call next.
A ranked list of the businesses in your territory worth calling, each with a direct contact and a specific reason to call, not a form-letter opener. Every contact is checked against the business's own site, not pulled from a stale directory. Delivered in days.
Proof, not a portfolio deck.
Recent builds, detailed the way we'd hand them to another engineer — not dressed up for a pitch. Groundwork and PhotoNester are live: try them yourself.

Call List: when a pipeline dries up, the problem is usually the list.
A sales team with a defined, narrow market had run out of leads worth calling — the usual sources were stale directory exports and old trade-show lists. We built a single ranked list instead: one row per real business, researched for fit, with a direct contact where one could be found and a specific reason to call, not a form-letter opener. Every contact gets checked against the business's own site before it makes the list.
Read the full case study →- Scope
- Regional, one industry
- Method
- Researched, not scraped
- Per lead
- Fit score, contact, call reasons
- Verification
- Checked against the business's own site
- Timeline
- Days, not weeks

Groundwork: a housing forecast is only useful if you can check its track record.
A national housing headline tells you little about the ZIP code you're actually looking at. We built Groundwork to connect the two: one LightGBM model forecasts each metro's direction, while another estimates how individual ZIPs will perform relative to their market. Zillow home values, Redfin market activity, and mortgage rates feed a searchable map and comparison tool. Every 12-month forecast comes with an uncertainty range, and walk-forward backtests show how the models performed against nine years of real outcomes — including the years they got wrong.
Explore the model and backtests →- Coverage
- 894 metros · 26,268 ZIP codes
- Model
- LightGBM · metro trend + ZIP-relative change
- Forecast
- 12 months ahead, with 80% ranges
- Validation
- Walk-forward backtests · 2017–2025
- Stack
- Next.js · FastAPI · PostgreSQL

PhotoNester: sorting a million photos without a single upload.
A camera roll with years of unsorted photos is a search problem, not a storage problem. We built PhotoNester to solve it entirely on-device: CLIP embeddings converted to Core ML classify each photo's visual content, then k-means clustering groups them into albums — Travel, Pets, Food, Documents — without hardcoded labels and without a single image ever leaving the phone. Getting there meant batching inference to protect battery life, persisting progress mid-scan, and tracking down an App Store rejection to a Core ML compute-unit fallback on older iPadOS builds.
Read the full case study →- Platform
- iOS · Swift + SwiftUI
- Model
- OpenAI CLIP → Core ML
- Method
- Unsupervised k-means on embeddings
- Privacy
- 100% on-device, no server
- Result
- Full library sorted in minutes
Custom AI and software, built to order.
The same engineering behind the call lists is available for your own problem: custom models, automation, and the web or iOS product that puts them in front of someone.
Applied AI & Data
Task-specific machine learning models tailored to your domain — from churn prediction to demand forecasting — built to scale with your business.
Not sure where to start? We help you find the highest-impact opportunities for AI adoption across operations, marketing, and finance.
Automation pipelines built on intelligent systems that turn manual workflows into data-driven engines.
Dashboards that surface trends, flag risk, and support decisions at every level of the business.
Software & Product Engineering
Full-stack products built with React, Node.js, and Python on modern cloud infrastructure — from first prototype to production.
Native apps built with Swift, React Native, and Core ML, designed to run fast and stay private, on-device wherever possible.
Infrastructure audits and automation that cut hosting costs and remove deployment bottlenecks.
Legacy systems brought forward without a rewrite-from-scratch gamble — including healthcare and other compliance-sensitive platforms.
How a one-engineer build stays fast.
No account layer between you and the person writing the code. That's most of it.
Scope the real problem
A short technical audit of what you have and what's actually blocking you — before any model gets chosen or any line of code gets written.
Ship in working slices
You see a running version early and often, not a roadmap slide. Direction changes get absorbed as we go, not billed as change orders.
Leave it maintainable
Documented, tested, and built on infrastructure your own team can operate — not a black box that only we can touch.
I'm Kirby Robinson, and 36 Dunes is me: a full-stack engineer with over ten years of experience shipping web applications on Python, JavaScript, React, and AWS. That includes healthcare platforms connecting patients to clinical trials, predictive machine learning models built from scratch, and DevOps work that measurably cut infrastructure costs — the practical, unglamorous engineering that most AI pitches skip past.
Based on the coast in York, Maine, and working with a small number of clients at a time, by design. You talk to the person writing the code, every time.
Founding clients. The first three clients get founding-client pricing in exchange for an honest testimonial and permission to write up the work. Start with the free 10-lead sample and we'll talk about it from there.
Get 10 free leads →Not ready to talk yet? Start with the AI Readiness Checklist.
Eight questions that tell you whether your data is ready for a custom AI model, before you commit budget. No call required.
Let's build something worth shipping.
Tell us what's slow, manual, or stuck in a spreadsheet. We'll tell you honestly whether AI is the right tool for it — and build it either way.