Case studies

Systems that reached production, and stayed there.

Production systems on AWS: the architecture, the engineering decisions behind it, and the research that has to hold up when someone checks.

Platform engineering

ExoVzn: defensible evidence, built on AWS.

Serverless-first on AWS, generative AI on Amazon Bedrock, engineered to fail visibly.

Running in production on AWS

Storm Intel, by ExoVzn

ExoVzn’s Storm Intel platform correlates federal radar, satellite, and ground-report data into audit-ready hail and wind damage evidence for contractors, public adjusters, and forensic engineers. We designed and built it as a serverless-first platform on AWS, built from ECS Fargate services, Multi-AZ Amazon RDS for PostgreSQL on Graviton2, and a daily unattended pipeline, with narrative generation and signal detection running on Amazon Bedrock in a LangGraph workflow. It is engineered so a quietly wrong answer never ships silently: no silent retry, no automatic Region failover, a Lambda circuit breaker in front of the model calls, and full audit trails at every step.

“The Cloud Catalysts helped us turn an idea into a full-fledged suite of products and tools faster than we thought possible. Their team combines speed, technical expertise, and affordability in a way that is difficult to find. They understood our vision, helped us prioritize the right features, and delivered practical solutions without the excessive costs or lengthy development timelines we encountered elsewhere.”

Brad Coley, CEO, ExoVzn
Standard report turnaround
< 90 sec
Verified capacity, no DB change
10,000 / mo
Radar grids per daily run
720
Automated checks before publish
93+

Research program

From radar to ground: the science underneath it.

A platform that outputs evidence is only as defensible as the science inside it. So we published the method and invited people to attack it.

In pre-submission peer review

MESH-to-ground hail estimation

Radar can see hail aloft; it cannot see hail on the ground. Closing that gap credibly meant a research program, not a curve fit — and a 60-page white paper now with meteorologists, forensic engineers, and data scientists for review. We built it with Claude, the same way we built the platform: audit the data before the model, and publish what the audit finds.

The largest single gain came from something no model change could have produced. The legacy radar-to-ground linkage carried a 45.6% orphan rate, with 41% of training references unresolvable and silently dropped. Rebuilding it as 564M identity-keyed edges halved measured bias and made a previously published latitude gradient disappear entirely — it had been an artifact of the join, not physics. We said so in the section where we had originally claimed it.

Two other decisions say more about how we work than any accuracy number. We audited our own evaluation protocol, found it had been computing metrics in-sample, and published both conventions side by side rather than quietly restating the result. And we rejected the highest-scoring feature in the model, because it would not exist at serve time and would have inflated the headline at the cost of the deployment. The paper ships with its own limitations listed on page two of the reviewer guide.

Radar signatures processed
290M
Linkage edges rebuilt
564M
Held-out error vs prior models
−21.3%
White paper in peer review
60 pp

Applied ML

Reading a meter from a photograph — and knowing when not to.

Three independently built models read every image on Amazon Bedrock. Their agreement is the confidence score.

In production on Amazon Bedrock

Automated utility meter reading

A technician photographs a meter. Something has to turn that photo into a number trustworthy enough to bill against — and, more importantly, has to know when it isn’t. We built the reading service for a commercial real-estate operations analytics platform, running in their own AWS account: Claude Fable 5 as the primary reader, with two independently built consensus arms, plus a purpose-trained local stack for the analog dial registers that defeat general-purpose vision outright.

A single model’s self-reported confidence is the model grading its own homework — it is overconfident exactly where it is wrong. Agreement across models built by different organizations on different data is a far stronger signal, because their failure modes are not shared. When the readers converge, that convergence is evidence; when they diverge, the system sends a human, which is the cheapest thing it will ever do.

Running cost sits in the client’s account as a metered call per read, so the per-image token count was the most important number in the engagement — and AWS publishes no machine-readable token accounting for current Claude models. We measured it directly rather than modelling it.

Exact-match reading accuracy
97%
All-in cost per read
$0.051
Input tokens per photo, measured
1,335
Images per month in production
~20,000

Practice platform

Generated, not assembled.

A forensic engineering firm runs its whole caseload on one platform, and its reports are rendered from the record rather than typed out of it.

Live, actively developed

Valor Forensics

A report of findings may be read in a legal proceeding, and every fact in it already exists somewhere in the matter. Producing one by hand is the most expensive possible way to make a document the firm will make hundreds of times — and its failure mode is worse than slow, because an assembled document can carry a stale clause or another file’s date into a proceeding.

The decision that shaped everything else was to treat a report as a rendering of the matter rather than a template with fields in it. Harder to build, and the only version that stays correct as the caseload grows. We contributed architectural design, front-end design, QA, deployment and post-deployment hosting assistance; the firm’s own principal engineer wrote the majority of the codebase and is the platform’s author of record.

Sixteen automations run on a scheduler built to fail closed: if the schedule cannot be read, nothing runs and the firm’s leadership is alerted. A job that quietly stops is a missed deadline discovered late.

Commits
4,170
Schema migrations
604
Automations in production
16
Open issues
1

Rapid delivery

Fifty-seven minutes to a live AWS endpoint.

And the clock is not a marketing claim — it is the repository history.

Live since July 2026

Next Chapter Legal Solutions

Contract paralegals win work by referral, and a practice with no website — or one whose contact form silently drops messages — loses the engagement before a conversation happens. One person, no IT staff, no engineering budget, and no tolerance for fixed monthly overhead.

We built it serverless on AWS: private S3 behind CloudFront, and an API Gateway to Lambda to SES intake path so confidential family-law detail never passes through a third-party form product. Deliberately no build step, so the deployed files are the source files and the owner can still edit her own copy years from now. The form fails open — if the intake API is unreachable it opens the visitor’s email client instead of returning an error. An outage costs a click, not a client.

“We went from our intro call to a live website with business email set up in under two hours. I couldn’t believe how quickly everything came together.”

Mary V., Founder, Next Chapter Legal Solutions
Commit to live AWS endpoint
57 min
First commit to last
2 h 01 m
Servers to patch
Zero
Build step
None

Integration and operations

A key the client can turn off.

An inspection-intake pipeline inside the customer’s own AWS account, on access they control.

Live and operated

Inspection intake pipeline

A roof inspector finishes a job on a third-party platform. Between that moment and a usable product report, a dozen things can silently go wrong — the webhook can be replayed, the photo set can arrive keyed by a task name nobody normalised, a product match can land on a tie and be recorded as a decision. Integration work is judged on the failure modes you closed before anyone met them.

Signature verification is fail-closed across three HMAC schemes, each inspection-and-state is claimed exactly once so a replay cannot produce a second record, and ties are flagged rather than silently resolved. Every byte stays in the client’s own account. Our entire standing access is one scoped IAM user they can disable at any moment without consulting us, and when their administrator needed to manage their own users we built a separate single-purpose function that can reach the users and sessions tables and nothing else.

Our standing access
1 IAM user
Lambdas in the pipeline
6
Presigned link lifetime
15 min
Mapped call edges
6,231

What’s next

Have a system that needs to get this far?

Talk to our team