▸ This tool was built by an AI agent from Zoral
← RATE MY GITHUB

#359 — Top 70.0%

M-Rodani1

Mohamed Rodani

D

README enthusiast

Overall

0.0

/ 100

01 · Roasts

Jupyter Notebook Maximalist

69% of your codebase is Jupyter Notebooks. Bold strategy for someone who also has a TypeScript full-stack app — it's like showing up to a track meet in slippers and then running a 100m PR.

0 Stars, 0 Forks, 1,495 Commits

You committed 1,495 times this year to a portfolio that has accumulated exactly zero stars. The universe is aware of your work. It has chosen silence.

Tests Are for Other People

4 of 5 repos have HAS_TESTS=no. Gweizy has pytest AND vitest AND flake8, then you went back to vibes-based development for everything else. Consistency is a virtue.

Competition Beast, GitHub Ghost

2nd place out of 93 teams, QMUL AI x Coinbase hackathon winner — yet 2 followers and 0 external PRs. You're leaving a paper trail of Ws that nobody on GitHub can find.

Account Age: 9 Months, Commits: 1,495

Joined July 2025, already at 1,495 commits. Either you are extremely motivated or you discovered git commit --amend very recently. Either way, the heatmap doesn't lie.

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

  • Impact
    25% weight
    48D
  • Consistency
    20% weight
    65C
  • Quality
    20% weight
    57D
  • Depth
    15% weight
    55D
  • Breadth
    10% weight
    55D
  • Community
    10% weight
    25F

03 · Stats

365-day commit heatmap

82 active days

Less
More

Language distribution

6 langs
  • Jupyter Notebook69%
  • TypeScript15%
  • Python14%
  • HTML1%
  • CSS1%
  • JavaScript1%

04 · Numbers

Owned repos

non-fork

11

Commits

last 12 months

1,495

Followers

2

Joined GitHub

Jul 2025

05 · Top repos

M-Rodani1 /

Gweizy

50/100

Ambitious ML + blockchain project (Base gas optimizer) with TypeScript frontend, Python backend, 312MB codebase, proven functionality, but lacks production hardening and real-world traction (0 stars, private development).

I40Q60D50
READMETestsCITyped
TypeScript01mo ago

M-Rodani1 /

portfolio-website

45/100

Portfolio website for physics/ML student showcasing hackathon wins and quant finance projects. Typed HTML/CSS/JS, structured multi-file layout with design docs, no tests/CI but comprehensive styling and accessibility features present.

I25Q55D50
HTML01mo ago

M-Rodani1 /

qmml-market-making-hackathon

42/100

Hackathon submission documenting a quantitative trading competition entry that achieved 2nd place and 1st Sortino ratio. Jupyter notebooks (9 rounds) + 3 Python strategy scripts with model selection, Kelly criterion sizing, and market maker analysis.

I25Q50D50
README
Jupyter Notebook01mo ago

M-Rodani1 /

ML-mini-projects

38/100

Educational ML learning repo with 4 completed projects (linear regression from scratch, classification pipeline, diabetes prediction, car price prediction) mixing NumPy implementations with scikit-learn workflows. Untyped Python with README but no tests/CI; 178 KB, ~30 commits over 2.5 months, modest scope.

I25Q50D35
README
Python03mo ago

M-Rodani1 /

qmml-valentines-hackathon

23/100

Kaggle hackathon submission notebook (2nd place, 0.59235 AUC) with feature engineering, hyperparameter tuning via Optuna, and ensemble modeling—minimal documentation, single Jupyter file, <30 commits in 1 day, no tests/CI/structure.

I15Q35D20
README
Jupyter Notebook03mo ago

06 · Timeline

  1. Jul 6, 2025
    Joined GitHub
  2. Nov 22, 2025
    Created ML-mini-projects
  3. Nov 28, 2025
    Created portfolio-website
  4. Dec 14, 2025
    Created Gweizy
  5. Feb 24, 2026
    Created qmml-valentines-hackathon
  6. Mar 26, 2026
    Created qmml-market-making-hackathon
  7. Apr 21, 2026
    Most recent push to portfolio-website

07 · Compare

github.com/
M-Rodani1 · 6dmedian coder

08 · Rubric

How this score was produced

Overall = Σ (category × weight) + gentle top-end curve

CategoryWeightScoreContrib.
Raw total52.6
Top-end curve+3.3
Final overall55.9

Tier thresholds

S90100Mass-producing humansA8089Ship machineB7079Solid engineerC6069Getting thereD4059README enthusiastF039GitHub tourist
▸ How the pipeline works
  1. 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.
  2. 02Triage.A small model reads every repo's file tree + README and picks the 20 files per repo that actually reveal how you code.
  3. 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.
  4. 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.
  5. 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.
M-Rodani1 · 55.9/100 — Rate My GitHub