Trace
A side project Nevin and I built to index engineers by shipped work, open-source commits, and technical writing instead of self-reported profile keywords.
Query people by shipped work
Type a natural-language query to filter six sample profiles by verified commits, systems owned, and technical writing.
Joseph Zinga
Backend engineer at Northstar Pay · New York
Payment ledger at Northstar Pay
Owned ledger entries, balance checks, and the daily reconciliation process. The service rejects duplicate events before posting a balance change.
pg-audit-stream
An open-source Postgres change stream with Rust consumers. Includes replay tests and examples of recovering a consumer after an interrupted batch.
Reconciling an interrupted payout
Explains how the ledger records an intent separately from its settlement, then matches the provider receipt without posting a second debit.
Titles lie; shipped work usually doesn’t
Most people-search tools scrape resume titles and keyword lists, which tells you almost nothing about what someone has actually built. Real signals live in scattered places: engineering blogs, open-source commits, papers, and small project write-ups.
We built Trace as a weekend indexing experiment so a query like “payments and open source” returned concrete receipts: a settlement ledger someone worked on, a Postgres extension they maintain, or architecture notes they published, all tied to one resolved person node instead of a pile of unverified links.
Merging records without
inventing people
Entity resolution is the hardest part of any people graph. Merge too aggressively and two engineers named Alex Kim collapse into one fictional resume; merge too timidly and the same person shows up four times across GitHub, personal sites, and conference pages.
Hard identifiers like normalized work emails and canonical profile URLs link automatically, while ambiguous overlaps stay split for review. When a human fixes a bad match, that correction sticks as a pinned edge in the identity graph instead of getting clobbered on the next crawl.
Canonicalize before merging
Commit headers and company author bios rarely format addresses identically. Normalizing case and stray whitespace links both receipts automatically.
J. Zinga
pg-audit-stream · main branch
joseph@northstar.ioJoseph Zinga
Northstar Pay · New York
joseph@northstar.io1 unified person node in graph
Normalized keys are identical, so both work receipts attach to a single person ID.
prs_unified_01Joseph ZingaWhat I took away from it
We wired the identity graph up behind a small REST API and an MCP tool server so local agents could query structured receipts directly without hallucinating backgrounds.
The fun part of the project was strictly the graph canonicalization and evidence ranking rules. Once the resolution pipeline and query parser worked cleanly on a test corpus, I archived the crawler and kept the interactive search and entity-matching sandboxes here as notes.