01 · Roasts
Publish-and-Perish Workflow
SparsePortfolioSelection.jl last saw a commit in 2021 and MatrixPerspectiveSoftware went quiet shortly after — both repos exist to accompany papers, not to be maintained. GitHub as CV bullet point, not engineering practice.
0 PRs, 0 Issues, 100% Solo
soloPct = 100%, totalPRsYear = 0, totalIssuesYear = 0. In an entire year, not a single external PR opened or issue filed. The entire 33-follower community is apparently watching in respectful silence.
71% Graveyard Rate
staleRepoRatio = 0.71 — nearly three quarters of your repos haven't been touched in over two years. That's not a portfolio, that's an archaeological dig site.
Tests? Never Heard of Them
HAS_TESTS=no across every single repo. For optimization algorithms with numerical outputs that could silently be wrong, the absence of any test suite is a bold choice to put in production-adjacent research code.
181 Commits, Mostly on Thursdays
The heatmap shows a striking pattern: commits materialize in isolated bursts with long dead zones, and most activity is mid-week. 181 commits/year sounds okay until you see ~30 weeks with zero activity.
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% weight43D
- Consistency20% weight35F
- Quality20% weight37F
- Depth15% weight45D
- Breadth10% weight55D
- Community10% weight40D
03 · Stats
365-day commit heatmap
45 active days
Language distribution
- Julia40%
- Jupyter Notebook40%
- HTML14%
- MATLAB4%
- CSS2%
- JavaScript1%
04 · Numbers
Owned repos
non-fork
7
Commits
last 12 months
181
Followers
33
Joined GitHub
Dec 2017
05 · Top repos
ryancorywright /
SparsePortfolioSelection.jl
Julia implementation of sparse portfolio selection algorithm from peer-reviewed paper; ~166 KB codebase with structured src/, comprehensive README, but no tests/CI and last push 2021. Niche academic tool with basic documentation.
ryancorywright /
MatrixPerspectiveSoftware
Academic paper supplement implementing low-rank optimization algorithms in Julia. Typed code with structured modules and good documentation, but narrow research focus, minimal engagement (5 stars), and sparse commit history (5 of last 30 commits) limit broader impact.
ryancorywright /
ryancorywright.github.io
Personal portfolio website built in HTML, active since 2017 with regular updates through 2026. No tests, CI, or license; minimal README documentation beyond a link. 86910 KB codebase suggests static assets (images, CSS) rather than substantial code architecture.
06 · Timeline
- Dec 7, 2017Joined GitHub
- Dec 22, 2017Created ryancorywright.github.io — Professional website of Ryan Cory-Wright
- Apr 23, 2020Created SparsePortfolioSelection.jl — Julia implementation of the algorithm described in the paper "A scalable algorithm for sparse portfolio selection" by Bertsimas and Cory-Wright
- May 12, 2021Created MatrixPerspectiveSoftware — Code accompanying the Matrix Perspective paper by Bertsimas, Cory-Wright and Pauphilet
- Apr 21, 2026Most recent push to ryancorywright.github.io
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.