Go

I write Go at Clear Street, mostly corporate actions infrastructure and other asset custody functionality. On the side I contribute changes upstream to Go, usually performance optimizations. Here's a list of my Go work.

GitHub · Gerrit · Resume

Production Go

Clear Street · Software Engineer New York · since 2026

Corporate actions infrastructure for a prime broker: dividends, splits, mergers, and the platform around them.

  • Replaced a 5-minute batch refresh of voluntary corporate actions with real-time processing driven by Kafka events, keeping ordering consistent across async workers and entitlement processing. Far fewer jobs for the same result, and intraday database load dropped by roughly 80%.
  • Optimized the job-running framework to raise throughput over 3x, from 445K to 1.6M jobs in the same daily window, which removed the month-end bottleneck.
  • Cut database and CPU pressure on the Go services behind that real-time path with query redesign, lazy deserialization, and hot-path allocation reduction. Ledger ingestion went from 40K to 90K/sec and rollover processing from 10 to 6 minutes.
  • Added workflow-duration and TTL alerting after finding a production workflow that had stalled without raising an error.
  • Built shared metrics libraries, Kafka and service dashboards, and end-to-end job telemetry now used by several teams.
CrowdStrike · Software Engineer Remote · 2024 to 2026

Threat detection for a PB-scale SIEM: detection provisioning and the query pipeline behind it.

  • Built and owned the Correlation Rules API that provisions security detections, coordinating state across downstream services, with 95%+ test coverage and SLOs.
  • Built the lexer, parser, and bytecode VM for LogScale Query Language with one other engineer, compiling queries to a custom instruction set on a high-throughput event-processing path.
  • Diagnosed production failures across OpenSearch latency, Redis throughput, and Kubernetes lifecycle behavior in a PB-scale pipeline, and shipped mitigations that replayed 10K+ rule executions.

Selected open source work

Typed scans into int64, float64, and bool pointers no longer go through reflection or a decimal string round-trip.

Int64 → *Int 52.99 ns → 2.27 ns −95.7% geomean −47.1%

Err took a lock shared by every canceled context in the process just to confirm Done was closed, which the closedchan case can decide without one.

Err geomean −84% parallel −98%

runtime.Stack writes its traceback into the calling goroutine's own buffer, so the process-global print lock protected nothing and concurrent callers serialized for no reason.

Stack −38% parallel −93%

Skips building an interface for values whose type has no methods, since none of the four method interfaces fmt checks can match.

SprintfSliceInt −44% SprintfStructure −25% allocs 10 → 2

Contribution index

internal/strconv check for digits first in readFloat −6.6 to −14.1% geo
archive/tar check for non-ASCII bytes without decoding runes −43.8% USTAR, −30.8% geo
archive/tar split computeChecksum around the checksum field −12 to −16% writer

Deltas are benchstat geomeans over each package's own suite unless a single benchmark is named, measured on an Apple M2 Pro (darwin/arm64). The full tables are in each CL description on Gerrit.