Senior Software Engineer — AI Agent Platforms

LucasFranca

I build secure, durable execution platforms for coding agents: control planes, private Go runners, cloud provisioning, crash recovery, and human supervision.

Go · TypeScript · PostgreSQL · GCP · React

12+ years shipping software · Brasília, UTC−3 · full-time remote

AI agent platforms

TakeAIt — an AI-first ticketing system.

Humans and coding agents are first-class users. Agents can claim tickets, create isolated workspaces, run tools, stream progress, ask for input, open pull requests, and pause for human review.

I built the Next.js/PostgreSQL control plane, GCP provisioning layer, and multi-daemon Go runner runtime that make those long-running workflows secure, durable, and recoverable.

How a ticket becomes a pull request

Agents own work; humans retain control.

A model turn is only one event in a longer ticket lifecycle. TakeAIt orders the work, gives the runner a recoverable execution contract, and keeps people connected from assignment through review.

Unit of work
A ticket keeps dependencies, comments, and ordered verb assignments—plan, investigate, code, review, or respond—in one durable record.
Claim
The daemon atomically claims the next eligible assignment while bounded runner capacity prevents competing work from overloading a host.
Run
An isolated workspace receives pinned profile and execution settings while ticket comments and human directives remain live throughout the turn.
Finish
A runner-owned completion policy must pass before final inspection, pull-request creation, and recorded execution provenance.
01

Secure execution

  • Zero-inbound, poll-only runners
  • Rotating hashed keys and per-secret IAM
  • Private VMs and per-agent Unix users
  • Ephemeral per-agent credentials and controlled egress
02

Durable workflows

  • Atomic work claiming
  • Run journaling and replay
  • Crash recovery and host lifecycle management
  • Concurrency controls, reconciliation, and redacted logs
03

Human supervision

  • Pause and redirect during execution
  • Mention-to-wake conversations and question handling
  • Web and Go CLI supervision
  • Review-gated pull requests
Read the full TakeAIt architecture case study

Agents that finish the ticket

The model writes the diff. TakeAIt makes the work durable.

A useful diff is not a completed ticket. Real engineering work accumulates dependencies, comments, decisions, restarts, validation, and review.

TakeAIt keeps that lifecycle in one shared record while the Go runner turns each claimable assignment into a contained, recoverable run.

01

Tickets outlive model turns.

Humans and agents share tickets, threaded comments, dependencies, and assignments. Each assignment pairs a user with a verb such as plan, investigate, code, review, or respond.

Assignments are ordered, so dependency state and earlier work determine what can be claimed next. The resulting run, discussion, outcome, and pull request remain attached to the same ticket.

02

Atomic claiming and isolated execution.

The Go runner atomically claims eligible work and respects bounded host capacity so concurrent daemons cannot execute the same assignment or overload the machine.

Each run receives an isolated workspace and a validated, versioned execution profile. The selected harness, model configuration, and source revision are recorded before work begins.

03

Durable recovery.

The runner distinguishes a completed engine, a stalled turn, an interrupted tool call, and an operational restart instead of collapsing every failure into a generic retry.

Before claiming new work, recovery reconciles durable run state with the workspace and active session. Safe work can resume, stale ownership can be reclaimed, and inconsistent attempts stop with a recorded reason.

04

Human intervention and review.

New comments become context, while questions, pauses, redirects, and interruption remain available throughout execution. A parked run can continue from a human answer even after recovery.

Runner-owned completion policy and structured review findings gate pull-request creation. Every finding must be fixed or answered, and execution provenance stays attached to the review.

05

Operational use and outcomes.

TakeAIt is used in Agora’s internal engineering workflow. Agents share the backlog with humans without someone babysitting a terminal or runner host.

Each handoff remains observable, interruptible, recoverable, and review-gated, so autonomous execution does not remove human accountability.

Original open-source systems project · Rust, Solidity, React

EVM Migration Lab

A public reference system for migrating ERC-721 and ERC-1155 state between EVM chains, with every snapshot and destination claim independently inspectable.

EVM Migration Lab reconciliation view showing the verified Base Sepolia campaign
Fail-closed verification against the released Sepolia → Base Sepolia reference deployment.

Original open-source project · v0.1.0

Verified Sepolia → Base Sepolia reference deployment

  1. 01
    Deterministic source evidence

    Resumable Rust reconstruction, canonical manifests, Merkle proofs, source-chain authorizations, and atomic artifact bundles.

  2. 02
    Narrow destination authority

    Typed ERC-721/ERC-1155 claim contracts, frozen roots, fixed recipients, and direct, batch, delegated, and smart-wallet claims.

  3. 03
    Fail-closed verification

    A React application recomputes artifacts, compares complete campaign state, and disables actions on any disagreement.

Reliability evidence from production Web3

Durable systems under irreversible constraints

Web3 supplied unusually strict environments for the same backend concerns: concurrency, recovery, authorization, observability, and real-time state.

01

Production debugging

A transaction hash was not success.

Production traces exposed sponsored transactions that were submitted and mined but reverted out of gas. Estimate-based buffers and receipt verification made the UI report actual completion.

Merged PR ↗
02

Recovery

Publishing that survives restarts.

Batch writes, persisted progress, and idempotently resumable steps let interrupted contract-publication runs recover instead of starting over.

Merged PR ↗
03

Historical production game · 2024–2025 · part-time lead

Recoverable real-time matchmaking

Atomic match creation, persisted queue state, delivery acknowledgements, lock recovery, and health monitoring for a live multiplayer game.

04

DAO governance and game development · 2023–present

Deterministic long-running simulation

A 60-second server tick, deterministic battle engine, SSE state delivery, audit ledgers, and recoverable transaction workflows.

Product systems beyond the protocol layer

Products beyond Web3

Backend, full-stack, real-time, payments, and applied-AI systems with product ownership from requirements through operations.

01

2014–present · long-term part-time

TCDF and ChatTCDF

Twelve years delivering government audit workflows across backend services and Vue/TypeScript interfaces, plus the Court's internal RAG chatbot with Python, LangChain, Elasticsearch, SQL Server, and Docker.

Engineering range

Protocol, backend, product, and operations.

The systems I ship usually cross all four—from contracts and indexed data through durable services, user-facing interfaces, and production infrastructure.

Protocol and wallet systems
Solidity, EVM, Foundry, Safe, SIWE, EAS, wagmi, viem, The Graph, Ponder.
Backend and distributed workflows
Go, TypeScript, Python, PostgreSQL, Redis, queues, SSE, WebSockets, durable execution, idempotency.
Product interfaces
React, Next.js, Vue, wallet onboarding, real-time state, accessibility, i18n, responsive interfaces.
Infrastructure and operations
GCP, AWS, Docker, Terraform, private networking, observability, deployment and recovery.

Full-time remote · international contractor

Build the whole system.

Available from Brasília, UTC−3, with four or more hours of U.S. Eastern overlap.