The problem, not the solution
What is broken, slow, blocked or missing, described from the outside. The proposed fix is useful later; the constraint is what the scope gets built from.
What discovery looks like, how scope gets written, what a proposal contains, how work is accepted, and who has access to what. All of it published before the first call, so the shape of an engagement is not something you have to negotiate to find out.
Being specific about fit is worth more to a buyer than being available for everything. A company that says yes to all of it is a company you cannot calibrate.
None of this is a prerequisite. It is the difference between a first call spent gathering context and one spent making decisions.
What is broken, slow, blocked or missing, described from the outside. The proposed fix is useful later; the constraint is what the scope gets built from.
Who uses the system and what they are trying to finish. A product surface designed without that is a guess with a design system on top.
The current stack, where it is hosted, and what cannot change. Existing constraints shape architecture far more than preferences do.
Whatever is actually driving the date: a launch, a contract, a migration, an audit. A date with a reason behind it can be planned against.
Anything that governs who may touch production, where data may live, and what has to be signed before work starts.
Who signs, what budget range is realistic, and what else is being evaluated. It shortens everything that follows.
Five answers, and it names the engagement model that suits the work plus the specific things worth bringing. Every line it returns is drawn from the models published on the services page and the rails published on this one. No price and no date: both follow a written scope.
You can also read it directly. The four models are set side by side on the services page, and the seven steps from first contact to handover are further down this one.
Seven steps. Nothing is billed before step three is agreed, and every step after it produces something you keep.
This is the path an engagement follows, published as the commitment being made rather than summarised after the fact. It is the process you would be holding us to.
A brief or a call. The brief suits a settled scope; the call suits a problem still taking shape. Either reaches the person accountable for scoping the work.
One or two working sessions on constraints rather than features: what runs today, where it hurts, which risks matter first, and what must be true at the end. No commitment on either side yet.
The problem as understood, what will and will not be built, the stages, the assumptions it depends on, and the acceptance criteria for each stage. Nothing is billed until this is agreed, and if it shows the wrong company is holding the work, it says that.
The scope priced against one of the engagement models, with the payment schedule, the assumptions that would change the number, and what is explicitly out. A price quoted before the scope is understood is a guess wearing a suit.
Work ships in reviewable increments against the agreed scope. Each stage lands something usable and is checked against its acceptance criteria, rather than accumulating toward one drop at the end.
A stage is done when it meets the criteria written down for it, not when it is declared done. Anything that fails acceptance is fixed inside the stage, and anything found that was never in scope becomes an explicit decision rather than quiet extra work.
Source in your repositories, infrastructure in your accounts, architecture notes, runbooks, the decisions and the rejected alternatives, and the known limitations. The test is whether an engineer who was not on the build can pick it up without a negotiation.
Remote-first and asynchronous by default, which is a working method rather than a limitation: written updates leave a record a call does not.
Progress, decisions and blockers in writing, on a rhythm agreed at kickoff. Calls are for the things writing is bad at: disagreement, ambiguity, and design.
One regular call in your timezone, plus whatever the work needs. The checkpoint exists so that a problem is never waiting for the next status report.
Each stage is reviewed against its acceptance criteria as it lands, so quality is checked continuously rather than discovered at the end.
Architecture decisions are written down as they are made, with the alternatives that were rejected. That record is part of what you are paying for.
Answers a buying process needs in writing, stated here so they are not a negotiation to discover.
Saying this plainly is cheaper for both sides than discovering it three weeks into a scope.
Half of what an engagement produces is not code. The scope, the architecture memo, the risk register, the deployment and access checklists, the runbook and the handover pack are the parts that let a system be operated and extended by people who were not on the build.
Those documents are published as examples: real formats, filled with an illustrative build rather than anybody's system. They are more useful than a case study, because they show the work product itself rather than a summary of it, and because you can hold the engagement to them once it starts.
This page publishes the rails. These are the three it leans on: what happens to your data, how the engineering is secured, and the documents the sequence above produces.
A short brief is enough to begin: what exists, what is blocked, and what has to be true when the work is done. Or book a call if the problem is still taking shape.