About
Securing blockchain protocols and shipping payment and trading systems taught me that the happy path is the easy part. The hard part is the retry that charges twice, the message that arrives out of order, and the state that's gone after a restart.
AI agents now run into the same problems. They call real APIs, retry when a step fails, and carry state through tasks that run for hours. It's the area I find most interesting right now, and nobody has clean answers yet, me included.
Experience
-
Principal / Founding Engineer · Stealth Startup (NDA)
2025 — 2026
Architected an event-sourced trading platform: 15 microservices on EventStoreDB and NATS JetStream, safe settlement retries through idempotent commands and outboxes, and multi-tenant encryption. Wrote the 41-document spec it's built from and backed it with 30,000+ tests.
-
Co-Founder & Lead Smart Contract Auditor · Chain Integrity
2021 — 2025
Co-founded a blockchain security firm and led 50+ audits and builds for production DeFi protocols. Built our audit methodology and tooling for invariants, access control and economic exploits, and ran client delivery from scoping to presenting findings to leadership.
-
Cybersecurity Platform Engineer & Researcher · JS Security
2020 — 2021
Worked on the security layer of a decentralized enterprise storage platform on Hyperledger Fabric: cryptographic access control and a software HSM integration for key management.
-
Full-Stack Blockchain Engineer · Freelance
2016 — 2020
Designed and delivered gas-optimized smart contracts and full-stack DApps for clients across DeFi staking, linear vesting and NFT lending, working directly with each client from spec to launch.
Skills
- Languages
- TypeScript · Python · Rust · Solidity
- Distributed Systems
- Event sourcing and CQRS · Exactly-once processing · Workflow orchestration · NATS JetStream
- AI Agents
- MCP servers · Agent evaluation and replay · Durable agent state · LLM gateways & observability
- Security
- Least privilege · Key management · Tenant isolation · Agent security · Smart contracts · Container hardening
- Platform
- PostgreSQL · GraphQL Federation · OpenTelemetry · Prometheus & Grafana · AWS
- Blockchain
- Bitcoin Core · EVM · SVM · Foundry · DeFi · Market making · Mechanism design
Upstream
-
pydantic/logfireReturn the LLM response when recording it fails
-
pydantic/logfireRead stable database semconv attributes in DB span messages
-
pydantic/logfireDon't let Litestar routing errors escape span naming
-
promptfoo/promptfooHonor the cache setting from a config passed with
-c -
LuganoPlanB/bitcoin-rootsReport the configured RBF policy in
getmempoolinfo -
LuganoPlanB/bitcoin-rootsAccount for priority-selected ancestors when building blocks
-
celery/celeryUpsert CosmosDB results so later task states are stored
-
temporalio/sdk-pythonFix Google ADK agents with
output_schema -
deepset-ai/haystack-core-integrationsKeep every bound when merging same-field range filters
-
anthropics/buffaReturn a borrowed empty message for unset message fields
Open source
-
roots-reviewRead-only MCP server for reviewing the verified Bitcoin Roots patch series.
-
natsaclLeast-privilege NATS permissions compiled from your TypeScript, with a CI gate that catches drift.
-
graphlockCatches LangGraph changes that would break paused threads before you deploy them.
-
ballastVersion control for what a model has learned, with deletes you can prove.
-
punchinForks a recorded voice-agent call at the turn it went wrong, replays the prefix and runs the rest live.
-
lashingMCP server that lets AI agents book and track container shipments through the DCSA standards.
-
subliftMeasures what a subscription retention experiment was actually worth.
-
nodriftChecks the owners, roles, proxies and parameters of deployed contracts against a YAML file, and fails CI when they drift.
-
robinhood-market-making-toolsTypeScript SDK for market making on Robinhood Chain, with built-in strategies, risk limits and paper mode.
Writing
- Security Is Not a Tool the Agent CallsSecurity / Agents 6 min read
- Tokens Are the Cheapest PartAI Engineering / Efficiency 6 min read
- Usage Is Not Quality, and Neither Is ValueAI Quality / Leadership 11 min read
- Agent Patterns Are Sorted by the Wrong AxisAgents / Architecture 10 min read
- Agents Need Idempotency KeysAgents / Reliability 9 min read
- Retrieval Strips the PermissionsSecurity / Retrieval 11 min read
- Learning Agents Deploy ThemselvesAgents / Evals 10 min read
- Prompt Caches Leak Across TenantsSecurity / Inference 11 min read
Teaching
- Copenhagen Institute of Interaction Design (CIID)Guest Lecturer · Blockchain Architecture
- Polytechnic Institute of Paris (IP Paris)Guest Lecturer · Smart Contract Design
Contact
Open to security, AI and platform engineering roles.
Email is the fastest way to reach me.