These are the intended arrangements for agency client projects. We agree the terms for your engagement before work starts. This page is not a signed service agreement.
Agree the first piece of work
Bring a feature, a problem in an existing workflow, or a defined technical task. Before quoting, we discuss the current codebase, dependencies and what your client expects to do when the work is complete.
For the first paid engagement, we write down:
- The result and acceptance criteria, including what is outside scope.
- Required access, dependencies and who answers product questions.
- Who reviews the implementation and who approves release.
- The fixed fee, dates, invoicing milestones and cancellation terms.
- How we handle a new finding that changes the agreed work.
The usual trial lasts one or two weeks. Smaller scoped work may be appropriate when the task is already clear. Neither format commits you to ongoing work.
If the unknowns are too large to quote an implementation responsibly, we first agree how to resolve them. Any paid investigation needs its own output and price before it starts.
Estimate before you quote your client
If you need to quote a client before the work is confirmed, send me the brief and, where possible, access to the existing codebase. We can agree confidentiality terms before you share client material.
There is no charge for an estimate. After the fit call, I send a short written view of the likely effort, the assumptions behind it, the main risks and what is out of scope. If the unknowns are too large to estimate responsibly, I tell you what needs investigating first and what that investigation would cost.
An estimate supports your quote; it is not a delivery commitment. If your client goes ahead, we agree the scope and price of the build separately.
Fit into your delivery process
I work in the agreed repository and follow your branch, review and release conventions. Your agency or client keeps control of the project accounts. Access is limited to what the task needs.
Before the first day, we identify the task, the person who answers questions, the reviewer and the channel for updates. You arrange the repository, staging and other access needed for the agreed work.
I send a written update each working day with completed work, review links where available, blockers, decisions needed and the next task. We review a demonstration each week. If an estimate changes, I explain why and what it means for the scope, cap or delivery date.
You approve scope and spending changes before I proceed with them. If a decision blocks a task, we agree whether another authorised task can continue.
Keep control of client communication
I can deliver under your agency’s name. Routine updates go to your team. If you want me in a client meeting or discussion, we agree on my role and who communicates decisions. I do not approach your clients for my own work.
We put confidentiality and client-contact boundaries in the engagement terms. Public discussion of the work, screenshots and case-study use require permission.
Review the work
Each change should explain what changed, why, how it was checked and what remains unresolved. Relevant tests cover the behaviours the change could affect, including important failure cases. Where the project supports it, a preview lets your team review before release.
We agree who reviews code and who accepts the work. If your agency has no engineer available, we discuss the technical review arrangement before starting. A recorded walkthrough explains a change; it does not replace independent technical review.
For an inspectable code sample, your reviewer should be able to examine the setup instructions, architecture decisions, automated checks, a representative change and the deploy or rollback instructions. I do not currently link a public sample repository.
Hours, cost and availability
Ongoing work usually starts at 20 hours per week. We agree on a rate within USD 45 to 75 per hour and a weekly cap. Invoices go out every two weeks and list the work period, hours, rate and total. You pay for hours worked within the agreed cap.
At a 20-hour weekly cap, USD 45 to 75 per hour means USD 900 to 1,500 per week if all 20 hours are used. Two full weeks at that cap would be USD 1,800 to 3,000. This is arithmetic for planning, not a project quote. We agree on any separate services or costs before work starts.
A weekly cap does not set the whole project’s price. We discuss the expected total scope and schedule, and revisit them when new information changes the estimate.
I’ll confirm available hours and a start date for your project.
My working day is Monday to Friday, 09:00 to 18:00 WIB, UTC+7. We agree on live overlap for your team. Outside overlap, I reply within two hours during that working day. After-hours messages are answered the next working day.
Ownership, absence and handover
Your agency or client controls the repository, hosting and other project accounts. We agree on the ownership and licensing of deliverables in the contract, including any pre-existing tools.
For handover, we agree on the documents and walkthrough the project needs. These usually include setup instructions, important architecture decisions, configuration and secret locations, deployment and rollback steps, checks that run, known issues and remaining work. We also identify account owners and the access to revoke when the engagement ends.
I work independently. There is no automatic replacement engineer during an absence. Current code and documentation help your team continue, but they do not supply replacement capacity.
A four-week notice period is proposed for ongoing engagements. Trials and short projects have their own completion and cancellation terms, agreed before starting.
Support after delivery
Before agreeing to maintenance, we define the included work, hours, price, response expectations and any additional charges. Support after delivery is a separate agreement.
You can contact me on weekends for critical production bugs through an agreed emergency channel. Weekend contact does not carry a guaranteed response or recovery time. If your client needs continuous coverage, that requirement needs a separate arrangement.
Supplier setup
We confirm the supplier details, payment method, invoice currency, payment deadline and any fees before signing. Share any required onboarding documents or contractor-platform requirement early so we can check the arrangement.
We discuss invoice currency and payment methods when setting up the engagement. The actual payment setup, conversion and any fees need confirmation before work starts.
We agree the contract before work starts. The signed terms must cover scope, change approval, confidentiality, client-contact boundaries, ownership, payment and completion or notice. This page summarises the intended arrangement; it is not the contract.