Skip to main content
Viithiisys
Built to keep

Software product development for companies whose product is now the business.

Engineering that treats your product as something you keep, with the decisions about scope, quality and ownership made deliberately.

Building and running software since 2007Source in your repository, with history intact

What the product costs to changeMonth one to two years
The four decisions
Month oneTwo years out
  • Made deliberately
  • Made by accident

Illustrative of the shape, not a measured figure. No change-cost curve from an engagement is published.

When it stops working

Three ways product engineering quietly stops working.

Product engineering is the wrong frame if you need one internal tool built once. That is custom software development. This page is for software you intend to keep selling and keep changing.

  1. Every release is a negotiation

    Features ship, but each one takes longer than the last, and nobody can say which decision made that true.

  2. The roadmap and the codebase disagree

    What the business wants to sell next is the thing the architecture makes hardest.

  3. Quality is a phase, not a property

    Testing happens at the end, so the cost of a defect is discovered at the most expensive point.

What we take on

What we take on.

Six kinds of work on the same product, tagged by the part of it each one touches rather than by the activity that produces it.

  1. Product engineering teams

    Team

    Senior engineers working on your product continuously, rather than delivering a project and leaving.

  2. Architecture that follows the roadmap

    Architecture

    Structure chosen against what you intend to sell next, not only against what exists now.

  3. Release and quality engineering

    Release

    Automated testing, release paths and rollback built as product properties rather than end-of-project tasks.

  4. Platform and multi-tenancy

    Platform

    Where one product must serve many customers with separated data and configurable behaviour.

  5. Performance and scale work

    Scale

    Where the product works and the growth curve is now the constraint.

  6. AI features inside the product

    AI features

    Built with the evaluation and controls covered on MLOps and LLMOps, not bolted on at the end.

Where this page stops.

A first version in thirty days belongs to Moonship MVP. One-off internal systems belong to custom software development. Changing software you already run belongs to system modernisation.

The four decisions

The four decisions that set what your product costs to change.

Product velocity two years out is decided by four choices made early, usually without anyone naming them as choices.

  1. How much of the product is configurable

    The cheap answer now

    Hard-code the behaviour each customer asked for

    What it costs later

    Every new customer is an engineering change rather than a setting

    When the cheap answer is right

    Fewer than a handful of customers, and no plan to add many

  2. Where the tests are

    The cheap answer now

    Manual checking before release

    What it costs later

    Release confidence falls as the product grows, so releases get slower

    When the cheap answer is right

    A product still finding its shape, where the tests would be rewritten weekly

  3. Whether the data model matches the domain

    The cheap answer now

    Model what the first screen needed

    What it costs later

    Every later feature works around the original shape

    When the cheap answer is right

    Genuinely never, though it is the most common shortcut taken

  4. Who can deploy

    The cheap answer now

    One person who knows the process

    What it costs later

    Release cadence is limited by one calendar and one holiday

    When the cheap answer is right

    A team of two or three, briefly

We put these four on the table at the start of an engagement rather than discovering them in the third quarter. Two of them have legitimate cheap answers; two rarely do.

How the work runs

How a product engagement runs.

Six steps in order. The four decisions are answered second, in writing, rather than discovered in the third quarter.

  1. Read the roadmap before the codebase

    What you intend to sell next determines which parts of the current structure matter.

  2. Answer the four decisions explicitly

    Written down, with the reason, so a later change of mind is visible rather than accidental.

  3. Ship something real early

    A change in production in your normal release path, which tests the process as well as the code.

  4. Build tests where defects cost most

    Coverage weighted to the paths whose failure reaches a customer, rather than spread evenly.

  5. Make release routine

    Because a product that ships weekly and one that ships quarterly are different businesses.

  6. Grow your team, not our headcount

    Working sessions and shared ownership, so capability stays after the engagement ends.

Evidence

Products we built that are still being sold.

Those figures describe those engagements and are not projections.

Faster product-question response. Conscious Chemist. Product work against the brand's own data.
38%Faster product-question response. Conscious Chemist. Product work against the brand's own data.
Faster trip acceptances. Milo. Operational product in a live fleet workflow.
30%Faster trip acceptances. Milo. Operational product in a live fleet workflow.
Building software since
2007Building software since
Projects delivered
500+Projects delivered
Longest running client integration
9 yrsLongest running client integration
Countries served
6Countries served

For product work the nine-year integration is the more relevant number: it is evidence that what we build stays sellable.

See all case studies
Where this starts

Where product engagements usually start.

Relevant published case-study routes cover beauty and personal care, consumer health, fleet and workplace operations.

A product flow pinned across a wall as printed app screens joined by string, with a hand moving one of the connections
  1. A product that outgrew its first team

    Where the people who built it have moved on and velocity went with them.

  2. A roadmap the architecture will not allow

    Where the next three things to sell all require the same structural change.

  3. Every customer needing a code change

    Where configurability was deferred and each sale now costs engineering time.

  4. A release cadence nobody defends

    Where shipping is quarterly because it always has been.

Cost of ownership

What a product costs to own, beyond the people building it.

We raise these at the four-decisions stage because each one changes what is worth building.

  1. Dependencies age on their own schedule

    Frameworks and libraries need upgrading whether or not the product changed, and deferred upgrades compound into a rewrite.

  2. Every customer configuration is a supported path

    Flexibility sold is flexibility maintained. That is a running cost decided at design time.

  3. Support load follows product decisions

    A confusing flow becomes tickets. The cheapest support saving is usually a design change.

  4. Old versions do not retire themselves

    Customers stay on what works for them, so supporting several releases at once is a choice made by default.

Three ways to resource it

An engineering partner, a hired team, or engineers alongside yours.

Three ways to resource the same work, each one readable on its own, including what it leaves behind when it ends.

  1. A partner team

    Fits when

    You need capability now and continuity matters more than headcount

    Speed to start

    Fast. A team already exists

    What it risks

    Dependency, if no one internal owns the product

    What it leaves

    Software plus whatever handover you insisted on

  2. Hiring in-house

    Fits when

    Product is permanently core and the work never ends

    Speed to start

    Slow. Hiring rarely matches the roadmap

    What it risks

    Hiring for a phase and keeping the cost after it

    What it leaves

    Permanent capability at permanent cost

  3. Engineers alongside yours

    Fits when

    You have a team that is too small or missing specific experience

    Speed to start

    Fast, and it scales down without a redundancy conversation

    What it risks

    Blurred ownership without a named internal lead

    What it leaves

    Software plus your team having built it with us

We have an obvious interest in the first and third columns. The honest test is whether someone internal will own the product, and if the answer is nobody, none of the three works.

What you keep

What you have as the engagement runs.

Each of these exists while the work is running rather than being assembled at the end of it.

  1. Source in your repository

    Owned and readable, with history intact.

  2. The four decisions, written down

    With the reasoning, so a later reversal is deliberate.

  3. Tests on the paths that matter

    Weighted to where defects reach customers.

  4. A release process your team runs

    Deploy and rollback documented and exercised by your engineers.

  5. A written list of deferred scope

    What was not built and why, so the next decision starts from the record.

What we need

Who we need from your side.

Four people rather than four job titles. Each one holds an answer the four decisions need.

Two engineers reviewing code together on a laptop at a shared desk in an open office

Continuity on your side is the one input we cannot supply.

Someone who owns the roadmap

The four decisions cannot be made without knowing what you intend to sell next.

Whoever supports the product today

The support queue is the most accurate list of what is wrong with it.

An engineer who will stay

Continuity on your side is what makes this a partnership rather than an outsourcing arrangement.

Someone who can decide on quality spend

Because test coverage and configurability are commercial decisions, not technical ones.

Access and ownership

How access and code ownership are handled.

We do not claim a certification we have not been audited against. These four are agreed in writing before work starts.

  1. Your repository, your review process

    We work through your pull requests, so every change is reviewed by your team before it lands.

  2. Least access, granted per need

    Access to production and customer data scoped to what a task requires rather than granted by default.

  3. Your secret store

    Credentials stay where your team already keeps them, and are never copied into documents or chat.

  4. Access ends when the work does

    Removal is part of the engagement rather than something to chase afterwards.

Joining a team

How we work inside a team that already exists.

Most product engagements join a team rather than replacing one, and the failure mode is two groups building in parallel.

  1. Who reviews what

    How it is set

    Your engineers review our changes and ours review theirs, from the first week.

    What it prevents

    A codebase with two styles and no shared understanding of it

  2. Who is on call

    How it is set

    Your rotation stays yours. We are reachable but not the first responder.

    What it prevents

    An operational dependency that outlasts the engagement

  3. Who decides architecture

    How it is set

    Your lead, with our recommendation in writing.

    What it prevents

    Structural decisions made by whoever happened to be in the code that week

  4. What we do not touch

    How it is set

    Named at the start, usually the parts your team is actively reshaping.

    What it prevents

    Two people rewriting the same thing in different directions

FAQ

What teams ask before they start.

Pick a topic, or ask us directly. We answer every inbound within one business day.

Still have questions?

Talk to a senior engineer, not a bot.

Talk to us
Start here

Tell us what you intend to sell next year.

Product decisions are easier to judge against a roadmap than a codebase. Describe what you want to be selling in twelve months and we will name what is in the way.