Skip to content
View MutharasuArchunan13's full-sized avatar
🎯
acquisitive
🎯
acquisitive

Block or report MutharasuArchunan13

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse


Β  Β 



πŸ§‘β€πŸ’» About Me

class Mutharasu: role = "Senior Software Engineer" company = "10xScale.ai" location = "Hyderabad, India" languages = ["Python", "Java", "JavaScript", "SQL"] architect_of = { "Identity Provider": "Centralized OAuth 2.0 + OIDC β†’ 5 products", "ETL Pipelines": "Airflow + PySpark β†’ 200K+ records", "Search Infra": "Typesense + pgvector β†’ semantic search", "Web Scrapers": "Redis/Celery β†’ distributed workers" } open_source = "Typesense #2638 β€” Raft consensus thread starvation" taught = "Java β†’ 200+ students" superpower = "I build the platform others build on."

πŸ—οΈ What I've Built

πŸ” Centralized Identity Provider

OAuth 2.0 + OIDC compliant IdP for 5 products

  • JWT with EdDSA signing Β· PKCE for public clients
  • Refresh token families with cascade revocation
  • Per-product token isolation & subscription-based auth
  • 29 endpoints Β· Auth, Session, OIDC, Audit routers
  • FastAPI + Tortoise ORM + asyncpg + Redis + Taskiq

πŸ“Š ETL Pipeline Architecture

End-to-end data processing from scratch

  • Airflow orchestration + PySpark transforms
  • 200K+ recruitment records processed
  • Idempotent design β€” safe re-execution guaranteed
  • PostgreSQL + pgvector for semantic search
  • Schema-inconsistency handling across sources

πŸ•·οΈ Distributed Web Scraping

High-throughput scraping infrastructure

  • Source-specific worker pools (LinkedIn, Naukri)
  • Redis/Celery task distribution
  • Planned Kubernetes + KEDA autoscaling
  • Rate limiting & anti-detection strategies

πŸ” Open Source β€” Typesense #2638

Diagnosed critical issue in 25K+ ⭐ project

  • Raft consensus thread starvation Β· 228K bulk inserts
  • Write queue blocking /health & /search APIs
  • Proposed decoupled health endpoints + backpressure
  • Systems-level debugging at consensus layer

πŸ” Architecture β€” Identity Provider

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ CENTRALIZED IDENTITY PROVIDER β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚Product 1β”‚ β”‚Product 2β”‚ β”‚Product 3β”‚ β”‚Product 4β”‚ β”‚Product 5β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ API Gateway β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚Auth Routerβ”‚ β”‚OIDC Router β”‚ β”‚Audit Router β”‚ β”‚ β”‚ β”‚Login, Reg β”‚ β”‚Authorize, β”‚ β”‚Logs, Events β”‚ β”‚ β”‚ β”‚PKCE β”‚ β”‚Token, JWKS β”‚ β”‚Sessions β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ FastAPI + Async Core β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚PostgreSQL β”‚ β”‚ Redis β”‚ β”‚ Taskiq β”‚ β”‚ β”‚ β”‚26 Tables β”‚ β”‚Sessions β”‚ β”‚Async Jobsβ”‚ β”‚ β”‚ β”‚Snowflake β”‚ β”‚Cache β”‚ β”‚Email, β”‚ β”‚ β”‚ β”‚IDs+Aerich β”‚ β”‚Rate Lim β”‚ β”‚Webhooks β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ Security: EdDSA JWT Β· PKCE Β· HttpOnly+SameSite Β· No Enumeration β”‚ β”‚ Per-App: Token Isolation Β· Unique Audience Β· Refresh Families β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ 

πŸ› οΈ Tech Stack

Languages & Backend

Frontend

Databases, Search & Messaging

Cloud, DevOps & Infra

Data & ETL

Auth & Security

ORM & Async


πŸ‘¨β€πŸ« Teaching & Mentoring

πŸŽ“ 200+ Students Taught πŸŽ₯ Content Creator πŸ“Š Data Engineering
Core Java, OOP, Backend Live β†’ Recorded tutorials Intermediate DE series

πŸ“ˆ GitHub Stats



github-snake

πŸ’Ž Open Source

Issue #2638 β€” Diagnosed Raft consensus thread starvation during 228K document bulk inserts. Proposed decoupled health endpoints and configurable write backpressure.


"I don't just write code β€” I architect systems, debug at the protocol level, and teach others to do the same."


Pinned Loading

  1. Learn-Practice-Implement Learn-Practice-Implement Public

    Python