01 · Roasts
One Hit Wonder (Almost)
91 of your 138 total stars live in a single repo. The other 110 repos are basically a star-free graveyard — pgsink is carrying the entire portfolio on its back.
96% Abandoned
staleRepoRatio = 0.96. You've left 96% of your public repos to collect dust for 2+ years. That's not a portfolio, that's an archaeological dig site.
2 Commits in 12 Months
totalCommitsYear = 2. Two. That heatmap from weeks 1–40 looks impressive until you realize it's all ancient history — the last 12 weeks are practically a flatline.
CoffeeScript? Really?
webcrawler is still sitting there in CoffeeScript, last touched in 2016, no license, 6 stars. It's not vintage, it's just old.
111 Repos, 3 Worth Mentioning
You've created 111 public repos over 12 years and only 3 made it into the scoring pass. That's a 2.7% hit rate. Quantity is not a strategy.
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% weight63C
- Consistency20% weight60C
- Quality20% weight72B
- Depth15% weight65C
- Breadth10% weight80A
- Community10% weight40D
03 · Stats
365-day commit heatmap
247 active days
Language distribution
- Python21%
- Go20%
- Ruby19%
- C16%
- CSS8%
- CoffeeScript4%
- Other12%
04 · Numbers
Owned repos
non-fork
51
Commits
last 12 months
2
Followers
146
Joined GitHub
Feb 2013
05 · Top repos
lawrencejones /
pgsink
Production-ready Postgres logical replication tool with strong engineering: typed Go, comprehensive tests, CI/CD, multiple sink backends (files, BigQuery). 91 stars, 4-year active development from 2019. Solves real problem better than Debezium/Netflix dblog per README.
lawrencejones /
diggit
Ruby code-analysis tool for detecting VCS patterns and refactoring issues. Well-typed architecture with tests and CI (circle.yml), but minimal adoption (19 stars), last pushed mid-2016, and likely experimental/abandoned.
lawrencejones /
webcrawler
Personal web-crawling tool built in CoffeeScript with CLI and web UI. Has tests and CI, but no license, minimal adoption (6 stars), and last updated 2016. Typed structure insufficient for higher quality tier.
06 · Timeline
- Feb 9, 2013Joined GitHub
- Dec 2, 2014Created webcrawler — A simple tool designed to crawl websites, producing data on what each page links to and what static assets they depend on.
- Dec 28, 2015Created diggit — Attempt to parse developer behaviour and programming behaviours from VCS
- Apr 8, 2019Created pgsink — Logically replicate data out of Postgres into sinks (files, Google BigQuery, etc)
- Mar 7, 2023Most recent push to pgsink
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.