Machine learning development in Seattle
Seattle has no shortage of people who can build a good model in a notebook. The gap is usually what happens next: the features were computed one way for training and must be computed identically in production, the model has to be packaged and served, and someone has to notice when the data it sees drifts away from the data it learned from.
We take models from notebook to service. Feature code is written once and shared between training and serving, models are versioned with the data that produced them, predictions are logged with their inputs, and drift and accuracy are monitored against the baseline the model replaced. We work with your data scientists rather than around them. They own the modelling. We make it run, and keep running, where customers can rely on it.
Seattle's software market was shaped by Amazon and Microsoft, and by the cloud platforms they run. Many of the region's startups were founded by people who left one or the other, and they cluster in cloud infrastructure, developer tools, enterprise software and, increasingly, AI. Around them sit life sciences and global health organisations, retail and outdoor brands, and a long tail of companies whose entire estate lives in AWS or Azure. Buyers here have usually run services at scale themselves, and it shows in what they ask for.
The practical effect is more rigour and less explaining. A Seattle buyer expects a written design before code, with the alternatives considered and the reasons one was chosen. They count metrics, alarms and a runbook as part of done, not a later phase, and they want trade-offs stated plainly. Most already have a cloud agreement and committed spend on AWS or Azure, so the job is usually to make that estate tidier, cheaper and better understood. The other common pattern is the founder who left a large company and misses its internal platforms, because at a startup nobody has built them yet.
Built In puts the average base salary for a software engineer in Seattle at around $149,000, and the large employers add stock on top, which is what a startup is really competing against. A senior search can run for months, and the work that waits is often the most concrete on the roadmap: a service split out of a monolith, a migration, a cloud clean-up, a model moved from a notebook into production. Each has a clear finish line, which makes it a good fit for a small team that writes the design first and the runbook as it goes.
We work from Bengaluru with four hours of live overlap every working day, placed across your morning in Seattle. Stand-ups and design reviews happen in that window, with the engineer who writes the code. Everything decided outside it goes into your repository, your tracker and the architecture notes we write as we go, so each day starts with a written record of what changed.
We fit best on work with a clear finish line: a new service, a migration, a cloud clean-up or a model moved into production. We add senior capacity within days while a req stays open, starting with a fixed-price two-week piece. Agencies can bring us in white-label, under their own name.
Four ways this arrives.
Someone got good results on a laptop and nobody can reproduce them. We turn it into a training pipeline with pinned data and versioned artefacts, put a serving endpoint in front of it, and record what it was evaluated on so the next version can be compared.
Hundreds of conditions routing tickets or flagging risky orders, each added after an incident. We measure what the rules get wrong on your labelled history, then test whether a classifier beats them. Sometimes the answer is fewer, better rules, and we say so.
Demand, load or staffing estimates that miss often enough to be ignored. We start with a plain seasonal baseline, backtest against the periods you actually plan around, and add complexity only where it beats that baseline on those periods.
Duplicate records, recurring faults, near-identical products under different names. Embeddings group text by meaning where keyword matching cannot, and we build the screen that lets a person correct a group rather than trust it blindly.
Repeat-fault detection that began as UMAP and HDBSCAN over 33,000 work orders and shipped as nightly incremental clustering on the same embedding model.
Read the write-up →Asked by Seattle teams.
How do you work with teams in Seattle?+
From Bengaluru, with four hours of live overlap every working day placed across your Seattle morning. Stand-ups and design reviews happen in that window, and you talk to the engineer who writes the code. We work in your Slack, your GitHub and your Linear. Designs are reviewed before code, and runbooks and architecture notes are written as we go, so the record lives where your team already works.
Do you work with teams already running on AWS or Azure?+
Yes, and in Seattle that is most teams. We work inside the estate you have: hand-built resources imported into Terraform, serverless functions made idempotent and traced end to end, cloud costs broken down per customer and feature, and AI features built on Bedrock or Azure OpenAI through the access your agreement already covers. The aim is an account that is tidier, cheaper and easier to explain, on the cloud you already pay for.
How does your rate compare to hiring in Seattle?+
Built In puts the average base salary for a software engineer in Seattle at about $149,000, before stock, benefits and recruiting fees. Our published rate is $35 an hour, with a $5,000 minimum. There is no recruiting search and no employment overhead, and we can start within days. The usual first step is a fixed-price two-week piece at $2,800, so you judge us on shipped work before committing to more.
What do the first two weeks look like?+
You share the context, and within two days you have a 30-minute call with the engineer who would do the work. Within a week you get a written plan: the options, the one we recommend and why, and how it rolls out. Then comes a fixed-price two-week piece, built in your repository from the first commit, with the design reviewed before code and the runbook written as it goes.
Do we need machine learning, or is a rules engine enough?+
Often a rules engine is enough, and it is cheaper to run, explain and audit. If the people who make the decision today can write it down, write it down. A model earns its place when the rules keep multiplying, the inputs are messy text or images, or the pattern shifts faster than anyone can edit the rules. We check against your history before recommending either.
Why not just call a hosted model API?+
Sometimes you should. With low volume, messy language and no labelled data, a hosted model and a good prompt ship quickly. A trained model wins when per-call pricing starts to hurt at your volume, when latency matters, when data cannot leave your systems, or when you have labelled examples a small model can learn from. We price both paths before you commit.
How much data do we need?+
For classification, usually fewer labelled examples than people fear, and embeddings can group text with no labels at all. Forecasting is the opposite: you need enough history to cover the cycles you plan around, and a single year says little about a yearly pattern. We give you an answer after looking at your data, not before.
What happens when the model gets worse?+
It will, because the world it learned from changes. We log inputs and predictions, compare them with outcomes as they arrive, and alert when accuracy or the input mix drifts past a threshold you agreed. Retraining is a scripted pipeline with an evaluation gate, so a new model replaces the old one only when it does better on the same test set.
Can you build a recommendation system?+
Yes, and we would start without a learned model. Co-occurrence and embedding similarity, served from Postgres or a vector index, beat a most-popular list for most catalogues and are easy to debug. A learned ranker comes after that, once you have enough interaction data to train and evaluate one. A learned ranker is something we build from our work with embeddings and clustering, starting from a simple baseline you can measure it against.