Senior Go Backend Engineer
A few backend problems I took from an open-ended problem through an RFC to implementation.
Search was implemented ad hoc per service, using database queries for full-text lookups — no typo tolerance, no relevance ranking, and tenant isolation that depended on every service filtering correctly by hand. I wrote the proposal for a platform-level Meilisearch integration: one shared index per entity type instead of an index per tenant, cryptographically signed tenant tokens enforcing tenant-level filtering at query time, and event-driven sync over NATS JetStream so indexed data never drifts from the source of truth. I then co-built the first implementation of it for profile search.
A reference-data service needed to support multiple languages without breaking every client already depending on it. I designed the API and data model changes: a required default locale per record, an optional locale parameter added to existing read requests, and deterministic fallback when a translation is missing. The proposal was accepted, I implemented the migration and the locale-aware read paths, and later tracked down a cache bug where a shared pointer was being mutated across locales under load.
A payments anti-fraud service processed a live MongoDB change stream from a transactions collection into an analytics collection, and any event that failed processing needed to be retried rather than dropped. I had the stream persist its last processed resume token so it could pick up exactly where it left off after a restart, and routed failed events into a separate backup collection that a background worker retried every 15 seconds until they succeeded. I measured the cost of this: with tokens and the backup path enabled, sustained throughput was around 80 events/second, versus roughly 90/second without them — a trade-off I considered worth it for guaranteeing no silent gaps in fraud coverage.