Designs by Duhart

J. Michael Duhart · available, fully remote

I build distributed systems and I can show you the code.

Go, Kafka, Cassandra, Redis, Kubernetes. Twenty-eight projects, ranked by what a systems-design loop actually tests — with the measured numbers, the repository paths, and the production bugs I found, fixed, and wrote down.

Three claims, three proofs

3independent Kafka consumer groups off one activity log, fed by a transactional outboxThe activity graph
952orphaned messages in a Redis consumer group’s pending-entries list — found, explained, reclaimedThe war stories
26,176lines of Go carrying chat, presence, push and call signaling in productionThe realtime service

If you’re hiring, start here

Four pages each. Pick the column that matches your stack — it will take about ten minutes and you will know whether to call.

Financial institution

Auditability, enforceable contracts, fail-closed behaviour.

  1. Contracts tested in CI
  2. RS256 identity and authorization
  3. Release gates that can block
  4. A pipeline that refuses to guess

Tier S — the three that carry an interview

1 · Billboard Activity Graph

A Cloudflare Worker cannot open a TCP socket, so Kafka and CQL are permanently unreachable from the edge. The event is therefore written into a Postgres outbox inside the same transaction as the post, and a host-resident Go relay moves it onto a six-partition topic keyed by actor. Three independent consumer groups read it — feed materializer to Cassandra, notification worker to Postgres, fanout to realtime — each absorbing at-least-once delivery with its own named idempotency mechanism. There is no exactly-once claim anywhere in it, and there should not be.

2 · GlobalChat Realtime Messaging

26,176 lines of Go on Cassandra, Redis and Kafka: 1:1 and group chat, presence, typing, receipts, reactions, view-once media, voice transcription, push, and WebRTC call signaling. Twenty-nine test files including WebSocket benchmarks and dedicated race tests — plus an AsyncAPI coverage test that fails the build when the implementation and the contract drift apart.

3 · Match Service

A geo-partitioned Cassandra ranking pipeline, and the two best stories in the portfolio. Ranking loops wrote score updates using the region they were iterating rather than the region the user’s card lived in; because Cassandra UPDATE is an upsert, that silently created a phantom partition per user per region and leaked nameless cards into real users’ decks. Separately, a Redis consumer group’s pending-entries list had grown to 952 unacknowledged messages with no reclaim path. Both found, both fixed, both written up in-source.

All twenty-eight, ranked

Scored on an eight-signal rubric weighted toward what these loops test. Differences under about five points are ties, not an ordering.

1Billboard Activity GraphGo · outbox → Kafka → three consumer groups1032GlobalChat Realtime MessagingGo · Cassandra, Redis, Kafka, WebSocket1063Match Service — Distributed RankingGo · geo-partitioned Cassandra, Redis Streams1014Solomon — Serving, Kubernetes & AutoscalingPython · k3s, Helm, HPA, continuous batching905Solomon — LLM Platform (umbrella)The whole pipeline, end to end896Billboard Production HardeningTypeScript · RS256, 9 tables, CI contract gates847WebRTC Calling PlaneGo · ICE/STUN/TURN, a fatal map race located838Media & Upload InfrastructureGo + TS · R2 multipart, IngestDO, TUS809Push & Notification PipelineGo · Kafka → APNs + PushKit VoIP7910Solomon — Retrieval & Agent TierGo · index, agent loop, grounding guard7511Platform Operations & CI/CDsystemd, Compose, two CI systems, six gates7312Auth & Identity PlatformGo · gRPC/Connect, RS256, 24 protobufs7013GlobalChat Messaging UISwift + React · transport/store/runtime split7014Realtime Gateway TrioGo · 48,582 lines over Kafka + Cassandra6915Cloudflare Edge PlatformTypeScript · 10 Workers, D1/R2/KV/DO6816Solomon — Evaluation Gates & PromotionNine release-blocking gates6517Solomon — Training & Experiment TrackingMLflow, SHA256 manifests, val PPL 40.06318Dating Swipe Deck & Discovery UISwift · 90,161 lines; 49 audited findings6219BoxOffice & the Moderator ConsoleSwift + Next.js · statutory-deadline operator UI6120OpenHouse GlobalTypeScript · 7 forward-only CQL migrations5721Billboard Player — Audio UI & EngineSwift · actor-isolated AVPlayer, vDSP FFT5622Palantir J8 — Exhibit FactoryPython + React · fail-closed financial ingest5523Multiplatform Clients (umbrella)611K lines Swift, 19-module Compose port5424Solomon — The TransformerPyTorch from the paper; KV cache proven equal5325Web Platform UINext.js · every mode, generated protobuf clients5126Solomon — Corpus, Tokenizer & Data Governance130M tokens, 0 UNK, contamination checks4627Technical Documentation CorpusThree 17–20 chapter manuals with gap registers3928Portfolio & Marketing InfrastructureCloudflare Pages; a DNS plan that saves your email17

The top three sit within 5 points of 120 — that is noise. GlobalChat edges the rubric on production evidence and breadth. The Activity Graph is listed first because it leads on the axis that decides a systems-design round: it is the canonical question, with every trade-off already written down.

Infographics

Portfolio rankingAll 28 scored against an eight-signal rubric, in four tiers.The activity graphOutbox → Kafka → three consumer groups, drawn.Platform mapClients, edge, origin, data — and the socket wall.Scale dashboardMeasured lines, services, datastores, tests.Skills matrixEvidence per skill — including the two honest gaps.Solomon pipelineCorpus → nine blocking gates → Kubernetes.

Also worth your time

Résumé bulletsEvery project reduced to lines, pre-sorted by employer, with a table of quotable numbers.Interview storiesEight stories in situation/action/result form, each with the follow-up questions it invites.The full inventoryAll 28 case studies with the scoring rubric and per-employer reading paths.