Skip to content
Trellis

Work

What the work actually looks like

Three engagements in the shape we usually meet them: something is already built, the deadline is real, and the obvious solution is off the table. Each one ends with what it cost, because that is the number founders are trying to work out.

These are worked examples, not client engagements

Real client names and real numbers go here before launch. The structure is what we would deliver: problem, constraint, what we did, what changed, and what it cost.

  • Halcyon Health

    Digital health · 9 weeks

    9 weeks

    From empty AWS account to first paying clinic

    A patient booking product that had to survive a security review before it could take a single booking.

    The problem

    Two contract developers had built a booking prototype and then left. The code ran on one over-provisioned EC2 instance, credentials lived in a .env file on that server, and nobody could say which parts of the system stored patient data. The next clinic on their list required a security questionnaire completed before signing.

    The constraint

    The questionnaire used a control set the team had never worked against, there was no budget for a compliance consultant, and the prototype had to keep taking bookings for the two pilot clinics the entire time.

    What we did

    • Rebuilt the infrastructure as code so environments could be torn down and recreated, then recreated the live one without downtime.
    • Moved patient records into a private-subnet Postgres instance with encryption at rest and daily snapshots, and cut the remaining services off from the public internet.
    • Replaced the .env file with AWS Secrets Manager and rotated every key that had ever been on that server.
    • Answered the questionnaire control by control, attaching the actual configuration as evidence rather than a written assurance.
    • Deleted everything the prototype did not need, which turned out to be most of it.

    What changed

    • Signed the clinic that had asked for the questionnaire, six weeks after the review started.
    • Monthly infrastructure cost fell from $410 to $158, mostly by removing idle capacity nobody had looked at since launch.
    • The two-person team could now deploy from a pull request, which they had never been able to do.

    What it cost

    Discovery and audit
    $850
    Infrastructure and migration
    $6,400
    Security questionnaire support
    $1,100
    Ongoing retainer from month three
    $1,450 / month

    Stack

    • AWS ECS Fargate
    • RDS Postgres
    • Terraform
    • Next.js
    • GitHub Actions
  • Orbit Freight

    Logistics · 3 weeks

    8.4s to 380ms

    p95 dashboard load time

    A dispatch dashboard that took eight seconds to load, on a database nobody had indexed.

    The problem

    Dispatch staff were keeping a second, manual spreadsheet because the dashboard was too slow to use at the counter. Every page load ran four unindexed queries across a table that had grown past 40 million rows, plus a live third-party API call in the request path.

    The constraint

    Peak season was three weeks away, the schema was shared with an internal tool the team had not built, and no changes could be made to the data model itself.

    What we did

    • Instrumented the slowest path first and found that two of the four queries returned data the page never rendered.
    • Added indexes on the columns the actual queries filtered by, in a maintenance window, using concurrent builds so the table stayed writable.
    • Moved the third-party call out of the request path into a cached job refreshed every 90 seconds.
    • Replaced per-row rendering of a 500-row table with server-side pagination and a covering index.
    • Left a query-count budget in CI so the same pattern cannot creep back in unnoticed.

    What changed

    • p95 load time fell from 8.4 seconds to 380 milliseconds in the first week.
    • The manual spreadsheet was retired, which was the outcome the client actually asked for.
    • Database CPU dropped from a steady 70% to under 15%, removing a planned vertical upgrade.

    What it cost

    Performance audit
    $1,200
    Query and caching work
    $3,800
    CI guardrails
    $900

    Stack

    • PostgreSQL
    • Redis
    • Node
    • Datadog
    • GitHub Actions
  • Sundry Markets

    Marketplace · 3 weeks

    3 weeks

    From kick-off to taking real payments

    A marketplace with a hard trade-show deadline, and a checkout that had to be live for it.

    The problem

    The founders had a validated seller list and a conference booth booked, but nothing to show at it. They needed a site that could take seller applications and a small number of pre-orders, without looking like a template.

    The constraint

    The trade show date could not move, and the first version had to run on a budget that ruled out a full marketplace build with escrow and per-seller payouts.

    What we did

    • Scoped to a single flow that would survive contact with real users: browse two sample categories, apply to sell, place a pre-order.
    • Cut per-seller payouts from v1 deliberately, and said so on the page rather than implying a capability that did not exist.
    • Built the marketing site and the checkout as one deployable, so there was no second project to maintain.
    • Set up Stripe, tax handling, and the transactional email before the design was finalised, because those were the parts with external lead time.
    • Wrote the runbook for the founders before handover, and walked them through their own deploy.

    What changed

    • Took 41 pre-orders at the booth, with no engineering support on site.
    • Signed 38 sellers from a list of 60, with the applications arriving already structured enough to import.
    • Launched v2 payouts six weeks later without rebuilding any of the v1 flow.

    What it cost

    Scoping workshop
    $600
    Design and build
    $4,900
    Payments, tax, and email setup
    $1,400
    Handover and runbook
    $500

    Stack

    • Next.js
    • Stripe
    • AWS S3 + CloudFront
    • Postgres
    • Resend

Tell us what you are building.

A free 30-minute call, no slide deck and no obligation. If we are not the right fit, we will tell you who is.