I work on Dart and Flutter, and on backends in Go. Most of my open source work is on the Model Context Protocol for Dart.
I contribute to dart-lang/ai, the repository behind package:dart_mcp. Most of that work moves the package to the MCP 2026-07-28 revision:
- Streamable HTTP: the server POST handler, the client channel, origin validation, request body limits, and cancellation when an SSE response closes
subscriptions/listen: the types and the notification stream- Input-required results, from the result types to answering the input requests
- Caching hints on the server and the client
- A conformance probe and a weekly run against the protocol's own suite
My merged pull requests in dart-lang/ai
- Dart SDK: seven analyzer, analysis server and linter changes, among them rejecting Struct-constrained mixin applications and handling
NativeCallablearguments independently of source order - dart-lang/native:
code_assetsvalidates a dynamic library's architecture from its file headers - MCP in other languages: three fixes in mcp-go and request metadata and discovery types in the Kotlin SDK
- Smaller fixes elsewhere, including Flutter, grpc-go and simdjson
Twenty-three on pub.dev. A few of them:
- mcp_probe: conformance checks and a test harness for MCP servers
- instructor_dart: typed, validated structured outputs from LLMs
- stream_struct: fills a typed object from an LLM's structured output while it streams
- re2: linear-time regular expressions over Google's RE2, compiled from source by Dart's build hooks
- simdjson_dart: reads a few fields out of a large JSON payload without decoding the rest
- resilience: circuit breaker, bulkhead, retry, timeout and rate limiter policies for async calls
- redis_task_queue: a Redis-backed task queue with retries and a dead-letter list



