01 · Roasts
85% Graveyard by Volume
staleRepoRatio = 0.85 — you have 41 public repos and 35 of them haven't been touched in over 2 years. That's not a portfolio, that's a digital landfill.
Udacity Trilogy
All three scored repos are the same Udacity cloud course, each with a README that says 'please go look at someone else's repo.' You didn't just archive the course, you archived it three separate times.
210 PRs, 0 Here
You merged 210 pull requests this year, but none of that work is visible in your public repos. Your GitHub profile is a facade for a CTO whose real job lives in a private org.
19 Stars Across 41 Repos
41 repos, 19 total stars — that's 0.46 stars per repo. Even your most-starred work is a deprecated Udacity scaffold that people forked because they had to, not because they wanted to.
Python Monoculture
86% Python, 7% Jupyter — you're basically a Python monolith with a notebook habit. The 1% TypeScript trace is probably an accidentally committed config file.
Built using
Zoral
Shadows one worker for a week, then takes over their job with zero extra setup. Behaves exactly like the original.
zoral.ai
02 · Category breakdown
- Impact25% weight18F
- Consistency20% weight55D
- Quality20% weight10F
- Depth15% weight50D
- Breadth10% weight25F
- Community10% weight50D
03 · Stats
365-day commit heatmap
198 active days
Language distribution
- Python86%
- Jupyter Notebook7%
- CSS4%
- JavaScript1%
- HTML1%
- TypeScript0%
- Other1%
04 · Numbers
Owned repos
non-fork
20
Commits
last 12 months
217
Followers
130
Joined GitHub
Mar 2016
05 · Top repos
grutt /
udacity-c2-restapi
Udacity course project scaffold with all content moved to official Udacity repo. No meaningful code present, no tests/CI, untyped, archived in practice though technically contains 5MB of files.
grutt /
udacity-c2-frontend
Udacity course project archive with minimal stars (4), no source files accessible, and content redirected to official Udacity repository. 19 of 30 recent commits but no tests, CI, or license.
grutt /
udacity-c2-basic-server
Tutorial/course archive repo with content moved to Udacity's main repository. 48 KB minimal codebase, no tests, no CI, no license, no typed language. README indicates this is deprecated.
06 · Timeline
- Mar 10, 2016Joined GitHub
- Mar 19, 2019Created udacity-c2-frontend — C2 Project
- Mar 25, 2019Created udacity-c2-restapi
- Apr 1, 2019Created udacity-c2-basic-server
- Nov 22, 2019Most recent push to udacity-c2-basic-server
07 · Compare
08 · Rubric
How this score was produced
Overall = Σ (category × weight) + gentle top-end curve
Tier thresholds
▸ How the pipeline works
- 01Scrape.Pull every non-fork repo pushed in the last 90 days, plus your contribution calendar, followers, and language byte counts — straight from GitHub's REST & GraphQL APIs.
- 02Triage.A small model reads every repo's file tree + README and picks the 20 files per repo that actually reveal how you code.
- 03Grade each repo. All repos run in parallel through a fast scoring model that reads the picked files and rates each one independently on Impact, Quality, and Depth — with evidence citations.
- 04Aggregate. A larger reasoning model combines the per-repo scores with server-computed stats (heatmap, commit cadence, language entropy, follower count) to produce the 6-dimension profile score + roasts.
- 05Correct.Deterministic server-side checks enforce anchor-scale floors (e.g. a profile with 2,000+ public commits can't score 30 Consistency) and recompute the final verdict.
~90 seconds per profile, ~$0.25 in compute. Total of ~240 files read across your top-12 repos. One rating per GitHub account per day.
▸ Data sources & caveats
- Heatmap & commit totals: GitHub GraphQL
contributionsCollection— covers the last 365 days, includes private repos when the user has opted in (default). - Language %: byte totals across the top 30 owned non-fork repos.
- Curve: a small upward nudge centered on raw score ≈ 70, capping at 100. Prevents specialists from being unfairly penalised for narrow breadth.
- Anchor corrections: when server-measured signals (e.g. privateWorkLikely, multiRepoVolume, follower count) mandate a minimum category score, the aggregation step enforces it. These are signal-conditional, not identity-based floors.