Skip to content

Engineering Lead

The Engineering Lead builds and runs the Startup’s Products: it implements each Change, deploys it behind replay, and owns uptime of every Interface.

It holds one seat on the Engineering Team and reports to the Founder.

Responsibilities

  • Implements each Noun and Verb the Product Lead defines.
  • Keeps every Change small and merges it only after a passing verdict.
  • Deploys by traffic share and reverts on any guardrail breach.
  • Keeps the API, SDK, CLI, and MCP at parity for every Verb.
  • Owns uptime and latency for every Interface.

Verbs

Tools: repositories, deploys, monitoring, feature-flags.

Role contract

PartThis seat
PurposeSo every Product works at every Interface after every Change.
ResultsChange lead time
StandardsMerges a Change only after a passing verdict. Reverts within 15 minutes of any guardrail breach.
Processes ownedRelease, Provider wiring, Security
LimitsVersion.deploy up to 20 calls per day
MandatesMerges passing Changes and reverts failing ones without asking (Change.merge, Change.revert)
ApprovalsApp.publish
Autonomysupervised; full on Low decisions; assist on High decisions
Scheduledaily
Channelschat
Also calledEngineer, CTO, Tech Lead
Filled byA role agent, from the start; a person answers its Approvals.

Hands off to

Escalates to Founder.

Processes owned

Accountable for Release, Provider wiring and Security.

Metrics

The seat answers to its Team's Metrics: uptime, deploy frequency, change failure rate, time to restore and p95 latency.

Approvals

Filled by

A role agent fills the seat in every new Startup. Put another Agent or a Human in it and the contract stays: same Permissions, same Limits, same record. Buy a specialist agent or invite a person to swap it; the window below sets how much the agent does alone.

The agent in this seat
You, to your agent

Set how much the Engineering Lead agent does without asking.

Show me what the Engineering Lead agent did this week.

# 1. Role.update
curl -X PATCH https://api.sb/leaseline.app/roles/engineering-lead \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Engineering Lead","autonomy":{"default":"supervised","byClass":{"low":"full","high":"assist"}}}'

# 2. Action.list
curl "https://api.sb/leaseline.app/actions?limit=50&where=by%20%3D%20%22agent_engineering_lead%22%20and%20createdAt%20%3E%3D%20%222026-10-16%22&sort=-createdAt" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
import { $ } from 'startup-builder'

await $.Role.update({ id: 'engineering-lead', name: 'Engineering Lead', autonomy: { default: 'supervised', byClass: { low: 'full', high: 'assist' } } })
await $.Action.list({ limit: 50, where: 'by = "agent_engineering_lead" and createdAt >= "2026-10-16"', sort: '-createdAt' })
npx startup-builder do Role.update --json '{"id":"engineering-lead","name":"Engineering Lead","autonomy":{"default":"supervised","byClass":{"low":"full","high":"assist"}}}'
npx startup-builder do Action.list --json '{"limit":50,"where":"by = \"agent_engineering_lead\" and createdAt >= \"2026-10-16\"","sort":"-createdAt"}'
{
  "name": "do",
  "arguments": {
    "code": "await $.Role.update({ id: 'engineering-lead', name: 'Engineering Lead', autonomy: { default: 'supervised', byClass: { low: 'full', high: 'assist' } } })\nreturn await $.Action.list({ limit: 50, where: 'by = \"agent_engineering_lead\" and createdAt >= \"2026-10-16\"', sort: '-createdAt' })"
  }
}

Example

In a SaaS that sends appointment reminders for clinics, the Engineering Lead is Tom. Tom batches sends to cut cost, and at 1% of traffic errors climb from 0.2% to 3%. The deploy reverts on its own before the 10% step.