01 · Roasts
166 repos, 156 stars — math is not mathing
With 166 public repos and only 156 total stars, that's less than 1 star per repo on average. kicad-parts-placer is carrying this entire portfolio on its back with 36 of them.
README? Never heard of her
openscad-utilities has 30+ commits and zero documentation. Your OpenSCAD shapes and fastener abstractions are a mystery to everyone — including, probably, future-you.
The Zephyr Burst Pattern
Four Zephyr repos created within days of each other (Dec 2025–Feb 2026) with a combined 19 commits and 0 stars. That's not a project — that's a fever dream in device tree syntax.
63% solo, 462 following, 65 followers
You're following 462 people but only 65 follow back. You're the guy at the party who knows everyone's name but nobody knows yours. Ship more, lurk less.
CI is a myth in this household
Out of 8 analyzed repos, exactly 1 has CI (CppUtilities). Your Python-dominant portfolio — 74% of your code — runs on vibes, pre-commit hooks, and hope.
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% weight55D
- Consistency20% weight65C
- Quality20% weight62C
- Depth15% weight58D
- Breadth10% weight65C
- Community10% weight40D
03 · Stats
365-day commit heatmap
214 active days
Language distribution
- Python74%
- C++12%
- TeX7%
- Makefile2%
- OpenSCAD1%
- JavaScript1%
- Other3%
04 · Numbers
Owned repos
non-fork
59
Commits
last 12 months
331
Followers
65
Joined GitHub
Jul 2016
05 · Top repos
snhobbs /
kicad-parts-placer
KiCad PCB component placement automation tool with 36 stars, comprehensive test coverage, Python type hints, structured src/ layout, and clear documentation. Solves a real domain problem with documented CLI and working examples.
snhobbs /
CppUtilities
C++17 header-only utilities library with typed, structured multi-file layout, CI/tests, and 5.9MB codebase. No README limits discoverability. Active portfolio project with working implementations of ring buffers, bit fields, serializers, and linear regression.
snhobbs /
zephyr-instrument-template
Early-stage Zephyr embedded systems template for RP2350 test instrument with SCPI control, USB/Ethernet, MCUBoot integration, and modular Kconfig-driven features. ~5 weeks old, minimal adoption.
snhobbs /
kicad-auto-silkscreen
KiCad PCB silkscreen auto-placement tool using simulated annealing/brute-force. Small 74KB Python project with README, tests, and MIT license; minimal adoption (4 stars), but functional with solid domain-specific optimization logic.
snhobbs /
openscad-utilities
Personal utility library for OpenSCAD parametric 3D modeling, providing shape, fastener, and cutting-tool abstractions. Minimal stars (1), no docs, but 30+ commits suggest sustained tinkering with modest scope.
snhobbs /
rp2350-eth-zephyr-board
Bare Zephyr board definition for RP2350 Ethernet with device tree overlays. No README, tests, CI, or documentation; minimal project structure for embedded firmware configuration.
snhobbs /
zephyr-adc-mux-driver
Early-stage Zephyr ADC driver for mux + SPI device. README present but minimal codebase (~2 KB), only 2 commits in ~15 minutes on 2026-02-02. Device tree bindings defined but no implementation, tests, or CI.
snhobbs /
zephyr-examples
Minimal example repository with no README, tests, CI, or documentation; 70KB codebase with 13 commits over ~66 days suggests exploratory work on Zephyr RTOS examples but lacks structure and adoption signals.
06 · Timeline
- Jul 22, 2016Joined GitHub
- May 12, 2020Created CppUtilities
- Nov 17, 2022Created kicad-parts-placer — Auto place components into pcbnew from a centroid file. Useful for maintaining a common board form factor.
- Dec 30, 2022Created openscad-utilities
- Oct 29, 2023Created kicad-auto-silkscreen — This KiCad plugin automatically calculate the optimal silkscreen placement of reference designators.
- Dec 29, 2025Created zephyr-examples
- Dec 29, 2025Created rp2350-eth-zephyr-board
- Feb 2, 2026Created zephyr-adc-mux-driver — Zephyr ADC with MUX inputs driver
- Feb 4, 2026Created zephyr-instrument-template — Zephyr Laboratory Instrument Template
- Apr 21, 2026Most recent push to kicad-auto-silkscreen
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.