01 · Roasts
Speed-Runner Energy
datastory was built in 2 days, blink in 3.5 hours, aoc2015 in 9 minutes. Your GitHub is less a portfolio and more a highlight reel of sprints — impressive velocity, zero follow-through.
The Test Desert
4 repos scored, 0 test suites found. Not a single HAS_TESTS flag fires across your entire public portfolio. For an EECS @ Berkeley student, that's a bold stance against literally all software engineering best practices.
21 Stars, 83% Night Owl
You commit at 3 AM with the dedication of someone shipping to millions — the audience being yourself and, generously, two forks. The stars-per-hour-of-lost-sleep ratio is not in your favor.
AoC Dropout
aoc2015: 3 solutions, 8 KB, pushed in one go, then abandoned. Day 4 (MD5 mining) apparently broke your spirit. The Rust Cargo.toml also specifies edition '2024', which doesn't exist — maybe that's what stopped you.
Portfolio Width vs. Depth
TypeScript, JavaScript, Python, Rust, C, Shell — genuinely impressive language spread for a year-old account. Now pick one project and maintain it for more than a week. Any of them. Please.
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% weight50D
- Quality20% weight62C
- Depth15% weight50D
- Breadth10% weight65C
- Community10% weight40D
03 · Stats
365-day commit heatmap
253 active days
Language distribution
- TypeScript63%
- JavaScript10%
- Python7%
- Rust4%
- HTML4%
- C3%
- Other9%
04 · Numbers
Owned repos
non-fork
16
Commits
last 12 months
260
Followers
55
Joined GitHub
Jan 2025
05 · Top repos
neilthomass /
datastory
Student club website built with React 19, TypeScript, and Tailwind CSS. Professional design with GSAP animations and structured component architecture, but experimental/single-client scope limits impact. 14 commits in 2 days indicates early-stage development.
neilthomass /
seurat
Client-side video-to-ASCII converter with 3157 KB codebase, 21 commits across 5 months. Typed JavaScript frontend with CSS styling, functional converter & player interfaces, deployed via GitHub Pages CI. No tests or npm build step.
neilthomass /
blink
Nascent personal project: functional shell-based DNS blocker with interactive math challenges. Created 2026-04-08, 2 commits in ~4 hours, 17 KB total. No tests, CI, or license. Reasonable code structure but minimal sustained effort and zero production evidence.
neilthomass /
aoc2015
AOC 2015 solutions in Rust; 3 working day-solutions (day1–3) in src/bin/ with minimal scope. One-shot dump with single push, no tests/CI, but valid typed Rust code and brief README.
06 · Timeline
- Jan 18, 2025Joined GitHub
- Nov 25, 2025Created seurat — Convert video to vectorized pointillism or ascii art
- Mar 5, 2026Created aoc2015 — AOC 2015 in Rust
- Apr 8, 2026Created blink — Block distracting websites with DNS-based blocking and challenges to unlock
- Apr 12, 2026Created datastory
- Apr 14, 2026Most recent push to datastory
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.