Loading…
Loading…
Engineering work with the evidence behind it — repositories, commit history, architecture records and measured results.
Documents whose work is active or released.
A GitHub account read as a set of documents: a year of work opened as a retrospective, and a position measured against a population that was enumerated in full rather than sampled.
Open the documentAn editor that reads a GitHub account honestly — and says plainly what it cannot know.
GitFace is the interface you are looking at: a small editor that treats one GitHub account as a set of documents you can open, read and navigate. It is built into this portfolio rather than linked from it.
An explorer on the left, tabs across the top, documents in the middle. Every view comes from one registry, so what the explorer lists, the search palette finds, and a deep link opens are always the same set. Arrow keys move between sections of a document, r replays its reveal.
The contribution calendar is GitHub's own primary activity measure, and it is the one GitFace treats as primary too. It includes work in private and organization repositories as counts only — GitHub publishes the number without exposing the repository.
Three different GitHub measurements are kept structurally apart and never added together: the contribution calendar, the typed contributionsCollection totals, and search-indexed commits on public default branches. They disagree with each other by design — in 2023 the search index reported more commits than the calendar reported contributions.
One year, read as a retrospective in six sections — each answering a question rather than presenting a chart. It is a presentation slice of the same canonical data the rest of GitFace uses, so it cannot drift from the other views.
A comparison against a population that is defined out loud: GitHub accounts whose self-declared location matches Ethiopia or Addis Ababa. Every position carries its value, rank, denominator and percentile together, and is reported against two distinct populations — all matched accounts, and only those active that year.
The population was enumerated in full, offline, once. Opening the document runs no census.
Live GitHub data through wrap-git, an npm package built and published for this purpose, plus direct GraphQL where wrap-git has a gap. Requests are made server-side and cached; the credential never reaches the browser.
Where wrap-git was found to be wrong — its language-by-year function filtered commits with a login where an email was required, and could only see public owned repositories — GitFace implements the capability directly and records the gap rather than patching the package silently.
Private and organization work appears only as aggregate counts. No private repository name, URL, owner, organization or language ever reaches the browser, because those fields are never requested from GitHub in the first place — the protection is in the query, not in a filter afterwards.
The benchmark population is stored as anonymous distributions: no usernames, no locations, no profile data. Third parties appear only as numbers.
That activity volume measures ability. A benchmark position is a description of recorded activity against one self-declared population — not a statement about skill, seniority, code quality, impact or employability, for this account or anyone else's.
Automation is not detected or removed: bot-assisted commits, CI activity and bulk imports count exactly like hand-written work, and no account is excluded for looking suspicious. There are no trophies, badges, levels or leaderboards here, and there is no composite score — the metrics stay separate because they measure different things.