01 · Roasts
Hackathon Hero, Maintenance Zero
GUHack2024 got 9 stars and a 3-day build window — then silence. The last push was 2024-11-12, three days after creation. You shipped, then ghosted your own project like it was a group chat.
66% Graveyard Curator
staleRepoRatio=0.66: two-thirds of your 38 repos haven't been touched in 2+ years. That's not a portfolio, that's a digital attic. At least label the boxes.
63 Commits, Infinite Ambition
63 commits in a year across 38 repos works out to ~1.6 commits per repo annually. Your heatmap looks like a heartbeat monitor on a comatose patient — sporadic spikes, then nothing for weeks.
Debug Prints Left in Production
LongestPalindrome.py still has debug print() statements in it. MyRoadToLeetCode.c has uninitialized pointers and missing switch breaks. The repo is literally named 'I am not very good yet' — at least it's honest.
Solo 100%, Community 19 PRs
soloPct=100 on every owned repo, but somehow 19 external PRs this year. You collaborate everywhere except your own code. Classic only-child energy.
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% weight33F
- Consistency20% weight55D
- Quality20% weight52D
- Depth15% weight50D
- Breadth10% weight65C
- Community10% weight40D
03 · Stats
365-day commit heatmap
34 active days
Language distribution
- Jupyter Notebook30%
- Python25%
- TypeScript10%
- JavaScript8%
- HTML7%
- Swift6%
- Other14%
04 · Numbers
Owned repos
non-fork
35
Commits
last 12 months
63
Followers
37
Joined GitHub
Jun 2020
05 · Top repos
TomSmail /
Lazarus
School lightning-strike detection system for Quebec's boreal forest. Embedded C project with websocket server, trilateration algorithm, and web dashboard. Reached top 5 of ~65 ICL projects. Typed, documented, structured codebase with real domain purpose but minimal adoption/external use.
TomSmail /
GUHack2024
Hackathon submission: TypeScript multiplayer geography-history guessing game built with Next.js, PartyKit, Mapbox, using real-time WebSocket multiplayer. Shows working game mechanics but minimal documentation and scaffolding-heavy frontend.
TomSmail /
MyRoadToLeetCode
Personal LeetCode practice repository with 13 solutions across C, Java, and Python. Minimal scope, no documentation, no tests, and code quality issues (uninitialized pointers, logic bugs, missing breaks in switch statement).
06 · Timeline
- Jun 30, 2020Joined GitHub
- Jun 26, 2023Created Lazarus
- Jul 8, 2023Created MyRoadToLeetCode — My attempt to answer LeetCode questions in a variety of languages. Note: I am not very good yet.
- Nov 9, 2024Created GUHack2024
- Nov 12, 2024Most recent push to GUHack2024
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.