📊 Live dashboard · 🌍 Open source · 🚀 Projects · 💼 Experience · 📫 Contact
I build small, well-documented systems end to end — data → model → API → UI → deployment — and contribute fixes to the open-source tools I use. Analyst at Accenture; previously a computer vision intern. I care about honest evaluation, reproducible fixes and maintainable tooling.
Not a decorative score. These charts are rendered from my public GitHub data, refreshed daily, and versioned together so the numbers and pictures agree.
Read the signal honestly: merged means accepted upstream; open means still in review. Language share measures repository bytes, not skill. The calendar shows public activity visible to GitHub Actions. Every chart has a text alternative, light/dark artwork, and a dated, machine-readable snapshot.
🔎 Inspect the data · 📈 Daily metric history · ⚙️ How it stays live
- MCP security & AI infrastructure — Vexar-MCP and vexar-autofix: static analysis, CI policy gates and reviewable patches
- Local-first AI & developer tools — Quasnooze and Wrytrove
- Machine learning & computer vision — object detection, auto-labelling, model cards and honest evaluation
- Research & systems code — maintenance fixes in large, unfamiliar codebases, from ML infrastructure to shader transpilers
- Building in public — documented setup, tests or live demos, and limitations stated clearly
94 pull requests to 52 external projects · 23 merged upstream · 7 in review right now · auto-updated 14 Nov 2026 - every number below links to a live search you can verify.
Status key: 🟣 Merged = merged upstream · 🟢 In review = open PR, not yet merged - I don't claim orgs I haven't landed in (yet).
🟣 Merged upstream in: CrossGL · Kubeflow · Ultralytics · Amazon Web Services · Opencollab MCP · Golang Cafe · +6 merged PRs in other projects
🟢 Currently in review at: Kubeflow
| Organisation | Project | What my PRs touch | 🟣 Merged | 🟢 In review | Latest PR |
|---|---|---|---|---|---|
| CrossGL/crosstl (★2.2k) | Shader transpiler (GLSL/HLSL/Metal/SPIR-V/Slang/WGSL) - backend lowering, resource binding & provenance, conformance harness | 10 | · | 🟣 #3050 | |
| kubeflow/mcp-server (★59) | MCP server for Kubeflow Trainer - rate-limit/circuit-breaker & RED metrics, schedulable-GPU counting, training lifecycle fixes | 1 | 7 | 🟣 #479 | |
| ultralytics/yolov3 (★11k) | YOLOv3 object detection - requirements fix | 1 | · | 🟣 #2333 | |
| aws-samples/step-functions-workflows-collection (★281) | AWS Step Functions workflow collection - template update | 1 | · | 🟣 #283 | |
| prakhar1605/Opencollab-mcp (★43) | Contribution-matchmaking MCP - shared GitHub paginator, closing-PR vs. plain-mention detection | 2 | · | 🟣 #216 | |
| golang-cafe/job-board (★228) | Go job board - golangci-lint workflow updates | 2 | · | 🟣 #121 |
Plus 6 earlier merged PRs in smaller projects - see every upstream-merged PR.
📂 Expand — every featured PR, grouped by organisation (auto-updated)
CrossGL — CrossGL/crosstl · 10 merged · 0 in review
- 🟣 Merged · 2026-10-26 · Refuse HLSL dx::MaybeReorderThread for targets other than Direct3D
- 🟣 Merged · 2026-10-25 · Keep integer min and max integer in CUDA and HIP output
- 🟣 Merged · 2026-10-25 · Wrap 8- and 16-bit scalar integer arithmetic in GLSL
- 🟣 Merged · 2026-10-25 · Preserve resource provenance for pointer-bearing aggregate members
- 🟣 Merged · 2026-10-25 · Bind multiple input buffers in the conformance harness
- 🟣 Merged · 2026-10-25 · Keep generated include order when formatting with clang-format
- 🟣 Merged · 2026-10-25 · Assign implicit WGSL resources to the lowest free bindings
- 🟣 Merged · 2026-10-25 · fix(slang): lower bitCount, findMSB, findLSB and bitfieldReverse
- 🟣 Merged · 2026-10-25 · Declare CrossGL storage buffers as structured buffers in Slang
- 🟣 Merged · 2026-10-21 · Fix parser hang on unterminated shader declarations
Kubeflow — kubeflow/mcp-server · 1 merged · 7 in review
- 🟣 Merged · 2026-11-10 · fix(trainer): stop wait_for_training early when the job is already Complete
- 🟢 In review · 2026-11-02 · fix(trainer): report a missing step instead of an empty log in get_training_logs
- 🟢 In review · 2026-11-02 · fix(trainer): round GPU memory estimates up before picking a tier
- 🟢 In review · 2026-11-02 · fix(trainer): count only schedulable GPUs, from any vendor, in get_cluster_resources
- 🟢 In review · 2026-11-01 · feat(core): add HTTP RED metrics and a readiness gauge
- 🟢 In review · 2026-11-01 · feat(core): add rate-limit and circuit-breaker metrics
- 🟢 In review · 2026-10-28 · fix(core): validate logging format values across configuration sources
- 🟢 In review · 2026-10-23 · fix(ci): harden E2E dependency cache isolation
Ultralytics — ultralytics/yolov3 · 1 merged · 0 in review
- 🟣 Merged · 2025-06-06 · Update requirements.txt
Amazon Web Services — aws-samples/step-functions-workflows-collection · 1 merged · 0 in review
- 🟣 Merged · 2023-09-04 · Update template.yaml
Opencollab MCP — prakhar1605/Opencollab-mcp · 2 merged · 0 in review
- 🟣 Merged · 2026-10-21 · fix(client): add shared github_get_all paginator and paginate issue timelines
- 🟣 Merged · 2026-10-20 · fix(issues): distinguish closing PRs from plain mentions in check_issue_availability
Golang Cafe — golang-cafe/job-board · 2 merged · 0 in review
- 🟣 Merged · 2023-05-03 · Update golangci-lint.yml
- 🟣 Merged · 2023-05-02 · Update golangci-lint.yml
⚡ Latest merged & in-review pull requests
- 🟣 Merged · 2026-11-10 · fix(trainer): stop wait_for_training early when the job is already Complete in kubeflow/mcp-server
- 🟢 In review · 2026-11-02 · fix(trainer): report a missing step instead of an empty log in get_training_logs in kubeflow/mcp-server
- 🟢 In review · 2026-11-02 · fix(trainer): round GPU memory estimates up before picking a tier in kubeflow/mcp-server
- 🟣 Merged · 2026-10-26 · Refuse HLSL dx::MaybeReorderThread for targets other than Direct3D in CrossGL/crosstl
- 🟣 Merged · 2026-10-25 · Keep integer min and max integer in CUDA and HIP output in CrossGL/crosstl
- 🟣 Merged · 2026-10-25 · Wrap 8- and 16-bit scalar integer arithmetic in GLSL in CrossGL/crosstl
- 🟣 Merged · 2026-10-21 · fix(client): add shared github_get_all paginator and paginate issue timelines in prakhar1605/Opencollab-mcp
- 🟣 Merged · 2026-10-20 · fix(issues): distinguish closing PRs from plain mentions in check_issue_availability in prakhar1605/Opencollab-mcp
- 🟣 Merged · 2025-06-06 · Update requirements.txt in ultralytics/yolov3
- 🟣 Merged · 2023-09-05 · update on icpp.toml in icppWorld/icpp-pro
- 🟣 Merged · 2023-09-04 · Update template.yaml in aws-samples/step-functions-workflows-collection
- 🟣 Merged · 2023-05-23 · Update little_anyhow.rs in EricCrosson/git-disjoint
Reproduce first, patch second. Start with the failing case, make the smallest defensible change, add tests where the project has a harness, and stay on the PR thread through review.
| Your goal | Start here | Evaluation boundary |
|---|---|---|
| Check an MCP server before shipping | Vexar-MCP | Static findings and coverage, not a security certification |
| Explore reviewable model-generated fixes | vexar-autofix | Start with mock mode and a disposable clone |
| Run an assistant on your own device | Quasnooze | Local model default; powerful tools need careful review |
| Try a lightweight Windows editor | Wrytrove | Early preview; check release signing notes and use non-critical files |
| Learn everyday Kannada | Kannada Saathi | Browser learning aid, not a professional interpreter |
| Practice interview problem-solving | DSA Mastery Plan | Browser progress; export a backup |
For research and notebook projects, read their data and evaluation limitations before interpreting metrics. An open PR is not an endorsement by its upstream organisation.
📋 Compare all featured projects — descriptions, stack, stars and last push
| Project | What it is | Stack | ★ | Language | Last push |
|---|---|---|---|---|---|
| CardioLens 3D · live demo | Research-only coronary-artery visualisation - interactive three.js schematic + scikit-learn baseline served from FastAPI, with a model card and documented limits (not for clinical use) | React - three.js - FastAPI - scikit-learn | 3 | JavaScript | 2026-11-14 |
| Quasnooze | A private, local-first personal AI assistant for Telegram, Discord, Slack, WhatsApp and the phone browser - permission-gated tools, reminders and token streaming | Node.js - Ollama - MCP - PWA - zero runtime deps | 14 | JavaScript | 2026-11-13 |
| Vexar-MCP · live demo | Security, schema and token-cost scanner for MCP servers - static analysis that never runs your code, CI policy gates, SARIF output, and an explicit 'n/a' when a scan could not read a file | Python - MCP - SARIF - GitHub Actions | 3 | Python | 2026-11-03 |
| vexar-autofix · live demo | An MCP security agent that has to prove its own patches: the finding must drop, nothing else may break, the target's pytest suite must still pass (Nebius x NVIDIA hackathon build) | Python - NVIDIA Nemotron - Nebius Token Factory - MCP | 3 | Python | 2026-11-02 |
| Wrytrove · live demo | A calm, open-source Windows text and code editor with optional local AI suggestions; unsigned early preview | TypeScript - Rust - local AI | 3 | TypeScript | 2026-11-14 |
| Kannada Saathi · live demo | Offline-first, installable Kannada companion for everyday situations - reviewed phrases with bundled audio and strict TypeScript (Kannada Digital Innovation Hackathon 2026) | React - TypeScript - Vite - PWA | 4 | TypeScript | 2026-11-10 |
| DSA Mastery Plan 2026 · live demo | Pattern-first DSA roadmap - verified free LeetCode problems, pattern playbooks and a browser-only progress tracker | vanilla JS - GitHub Pages | 4 | JavaScript | 2026-11-13 |
| Grounding DINO Auto-Labelling | Zero-shot labelling for object-detection datasets - describe classes in English, review detections, export Pascal VOC | PyTorch - Grounding DINO - supervision | 4 | Python | 2026-11-01 |
| YOLOv3 Custom Training | Step-by-step guide + notebook for training YOLOv3 on your own dataset with Darknet in Google Colab | Darknet - YOLOv3 - Colab | 6 | Jupyter Notebook | 2026-11-02 |
Also public on this profile, just not featured above: linear-regression-machine-learning (Jupyter Notebook · ★5) · rock-paper-scissors (HTML · ★5) · musicgenre (Jupyter Notebook · ★4) · career-forge (Python · ★3) · LiveBridge (JavaScript · ★2)
| Role | Organisation | Focus |
|---|---|---|
| Analyst | Accenture | Machine learning & computer vision |
| Computer Vision Intern | SeeWise.AI | Industrial-safety detection — PPE, people and machinery detection for workplace safety |
| Open-source contributor | Independent | Bug fixes, metrics/observability, shader backend lowering, testing and docs — receipts in Open Source |
🟣 Merged upstream: CrossGL · Kubeflow · Ultralytics · Amazon Web Services · Opencollab MCP · Golang Cafe · +6 earlier in smaller projects · 🟢 In review: Kubeflow → full breakdown
Core: Python (pandas, NumPy, scikit-learn, PyTorch, TensorFlow/Keras, OpenCV, FastAPI) · JavaScript/TypeScript (React, three.js, Vite) · C++ · SQL
MLOps & infra: Docker · Git & GitHub Actions · MCP (Model Context Protocol) · Kubeflow · Jupyter / Google Colab · Linux
AI security & agents: AST-based scanners · SARIF · policy-as-code CI gates · reviewable LLM-generated patches
Via open source: I also read and patch Go, Java, Rust and shader languages (GLSL / HLSL / Slang / WGSL) when the project calls for it.
LinkedIn · open an issue on any repository above. If you're maintainer-reviewing one of my PRs, the fastest way to reach me is right there on the PR thread.
Ranjith Rosan maintains the original projects linked on this profile and contributes to other open-source projects. Each repository documents its purpose, setup and limitations; upstream contribution status is separate from project ownership.
Refreshed daily at 00:17 UTC by GitHub Actions. Last successful data snapshot: 14 Nov 2026, 08:30 UTC. On GitHub since 2021 · 16 public repositories (including forks and this profile). Charts use GitHub REST + GraphQL; no third-party chart service.



