Skip to content
Twenty

Applied AI Engineer

Arlington, VAOnsite · United States
FullTime · Engineering
POSTED 9 NOV
Apply Ask
Role
6 days opentrue age
Posted 9 Nov
Payats field
$159k–263kposted
▲ +22% vs market median $173k
$156k$263k
Market p25–p75
$156k–$210k
Twenty p25–p75
$211kn=3
Washington DC · n=26 · 365d to 10 Nov
CompanyTwenty →
45open roles
Opened · 30d
+0
Closed · 30d
−0
3d of snapshots · 30d window
Market
3,247open · ML / AI
Opened · 7d
+2979% of open
All ml / ai
6,577open
All tracked boards · live 15 Nov · n=3,247
TypeScriptPythonRust

About the Company

America is under sustained cyber attack. Our adversaries infiltrate our networks, steal our IP, and degrade the digital infrastructure that modern life runs on. They’ve learned—correctly—that those attacks rarely produce consequences.

Twenty was founded to change that, by making our adversaries think twice before they attack us. Our vision is American and allied primacy in cyberspace—a future where they cannot contest us, deterrence is assured, and the free world remains secure.

Founded in 2024, Twenty Technologies (www.twenty.io) industrializes offensive cyber operations for the U.S. and its allies. Headquartered in Arlington, Virginia, Twenty has raised $168M from Khosla Ventures, Accel, Caffeinated Capital, Friends & Family Capital, Point72 Ventures, General Catalyst, and In-Q-Tel.

Mission | On Site | Full Time | U.S. Citizenship Required / No Active Clearance Required

Role Summary

You’ll build an agent environment at Twenty, with an interaction model similar to Claude Code and Codex. Users will give it tasks, supply context, and review its work. They’ll need to see what it’s doing and be able to intervene when it gets something wrong.

Your work will center on the agent harness: the code that assembles context, executes tool calls, tracks progress, and coordinates delegated work. You’ll decide how information carries across a session, how the agent checks its results, and how it recovers when a step fails.

You’ll write production software in Python, TypeScript, or Rust and maintain it after launch. Expect to spend time investigating failed runs, testing changes to the harness, and working with users to understand where the system needs improvement.

What You’ll Do

Build agent harnesses. Write the execution loop that calls the model, runs tools, records results, and determines the next step. Set time and cost limits. Define stopping conditions and detect runs that repeat work without making progress.

Manage context. Choose what the model sees at each step, including instructions, retrieved records, previous actions, and tool results. Build retrieval and summarization into the workflow. Check that summaries preserve task requirements, source references, and unfinished work. Investigate failures caused by missing information or conflicting instructions.

Orchestrate workflows. Combine model calls with application code and human review. Implement branching, parallel execution, and checkpoints where the task requires them. Store task state so work can resume after an interruption. For delegated work, define what each agent receives, what it returns, and how shared state is updated.

Build tool interfaces. Define inputs, outputs, and error responses. Validate arguments before execution and check results before passing them to the next step. Handle retries so a lost response doesn’t cause duplicate writes or messages.

Build the controls people need to work with an agent. Show progress and make tool calls and results inspectable. Let users correct instructions, approve actions, stop a run, and resume unfinished work. Make clear what has completed, what failed, and what still needs review.

Handle failures and control access. Detect invalid tool calls, dropped requirements, and reports of success that don’t match the actual result. Implement retry limits, cancellation, and escalation to a person. Enforce permissions in application code and require approval for actions that need review.

Evaluate changes. Build test cases from representative tasks and production failures. Check results against the task’s requirements. Measure completion rate, failure severity, human intervention, latency, and cost. Run regression tests when changing models, prompts, tools, retrieval, or orchestration.

Operate the system. Keep traces that show what the model saw, which tools ran, and how task state changed. Redact secrets and restrict access to sensitive traces. Version prompts and workflow code, test releases on a limited set of traffic, and support rollback.

Source · TwentyFirst seen 2 Nov1 editsOriginal ↗