<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: chitranjan Jegadeesan</title>
    <description>The latest articles on DEV Community by chitranjan Jegadeesan (@chitranjan_jegadeesan).</description>
    <link>https://dev.to/chitranjan_jegadeesan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3977380%2F9c580bd3-0fa7-4112-bdf9-2a0604ce591c.jpg</url>
      <title>DEV Community: chitranjan Jegadeesan</title>
      <link>https://dev.to/chitranjan_jegadeesan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chitranjan_jegadeesan"/>
    <language>en</language>
    <item>
      <title>I mapped every college in Tamil Nadu. 97% are invisible to the national rankings.</title>
      <dc:creator>chitranjan Jegadeesan</dc:creator>
      <pubDate>Wed, 24 Jun 2026 08:24:31 +0000</pubDate>
      <link>https://dev.to/chitranjan_jegadeesan/i-mapped-every-college-in-tamil-nadu-97-are-invisible-to-the-national-rankings-154p</link>
      <guid>https://dev.to/chitranjan_jegadeesan/i-mapped-every-college-in-tamil-nadu-97-are-invisible-to-the-national-rankings-154p</guid>
      <description>&lt;p&gt;Tamil Nadu is often held up as a success story in Indian higher education — wide access, a dense network of colleges, strong enrolment. I wanted to check a narrower question against the actual government data: of all those colleges, how many can the national systems actually see?&lt;/p&gt;

&lt;p&gt;The answer surprised me, so I built a small site to show it: The State of Tamil Nadu's Colleges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What the data says&lt;/strong&gt;&lt;br&gt;
Tamil Nadu has 2,829 colleges (AISHE 2021-22). Only 84 appear in any NIRF 2025 ranking. That is 97.0% invisible — operating with no public quality signal at all.&lt;br&gt;
Half of the ranked institutions sit in two cities. Chennai and Coimbatore together hold 51% of every ranked institution in the state.&lt;br&gt;
Several large districts — Kancheepuram, Namakkal, Kanniyakumari, Viluppuram — have zero nationally ranked institutions despite having 80+ colleges each.&lt;br&gt;
And year on year, the state lost ground: comparing NIRF 2024 to 2025, 83 Tamil Nadu institutions slipped in rank while only 36 climbed.&lt;br&gt;
None of these numbers exist on the NIRF or AISHE sites directly. They come from joining three datasets that nobody combines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The interesting part was the data, not the charts&lt;/strong&gt;&lt;br&gt;
This was less a visualization project than a data-cleaning one. Three lessons that cost me real time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Government PDFs lie about their structure. The UGC list of accredited colleges is a 149-page PDF where the state name sits in a merged cell that renders at the vertical centre of each block — not the top. My first parser confidently assigned hundreds of Andhra colleges to the Andaman Islands. The fix was to stop trusting cell position and anchor on a fixed list of 36 state names instead. Detect known values; never trust layout.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A silent join can hand you a confident, wrong answer. When I joined the accredited list to the AISHE base, Chhattisgarh came back at 0% accredited. It wasn't — one source spells it Chhattisgarh, the other Chhatisgarh. The join matched nothing and returned a clean, publishable, completely false zero. The only reason I caught it is that I knew Chhattisgarh has ~199 accredited colleges. Always sanity-check a join against a number you already know.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"Current" data is rarely as current as you'd like. NIRF publishes its rankings before it publishes the detailed scorecards. When I refreshed to 2025, the whole College category's scorecard PDFs were still stubs. Rather than mix vintages silently, every scorecard on the site now states which year its data comes from, and 55% honestly say "2024, because the 2025 version isn't out yet."&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;br&gt;
Collection — NIRF ranking tables and per-institute scorecard PDFs, the UGC accredited list, the AISHE college base from data.gov.in. All public, all official, all cited.&lt;br&gt;
Cleaning and joining — pandas and pdfplumber, fuzzy name matching with rapidfuzz (with a distinctive-word guard, because "SNS College of Technology" scores 92 against "PSG College of Technology" on tokens alone).&lt;br&gt;
The site — a single static HTML page with a d3 choropleth of the 32 districts and a search over all 2,500 colleges. No backend; the whole thing is JSON files and runs free on GitHub Pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Honest limitations&lt;/strong&gt;&lt;br&gt;
I'd rather state these than have someone find them. District-level counts use the 2012-13 AISHE college list (the most recent cleanly downloadable one). Ranked counts are matched to districts by the institution's listed city, so a district shown as a "desert" means none were matched there, not a guaranteed zero. "Invisible" means not in NIRF, which only ranks ~100 per field — it is not a verdict on any college's quality. Full notes are on the site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it&lt;/strong&gt;&lt;br&gt;
Live: &lt;a href="https://bubblywolf.github.io/tamil-nadu-college-visibility/" rel="noopener noreferrer"&gt;https://bubblywolf.github.io/tamil-nadu-college-visibility/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can search any college in the state and, if it's ranked, see exactly which parameter is dragging it down relative to its peers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbptu3o2iqoql0kxl02dl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbptu3o2iqoql0kxl02dl.png" alt=" " width="800" height="670"&gt;&lt;/a&gt;Data from public NIRF, AISHE and UGC sources; this is an independent project, not affiliated with any government body.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>python</category>
      <category>india</category>
      <category>dataviz</category>
    </item>
    <item>
      <title>Learn a real production Kubernetes platform by running one — offline, on your laptop, in 5 minutes</title>
      <dc:creator>chitranjan Jegadeesan</dc:creator>
      <pubDate>Thu, 18 Jun 2026 07:49:22 +0000</pubDate>
      <link>https://dev.to/chitranjan_jegadeesan/learn-a-real-production-kubernetes-platform-by-running-one-offline-on-your-laptop-in-5-minutes-89o</link>
      <guid>https://dev.to/chitranjan_jegadeesan/learn-a-real-production-kubernetes-platform-by-running-one-offline-on-your-laptop-in-5-minutes-89o</guid>
      <description>&lt;p&gt;TL;DR: lab-in-a-box is a single-command, fully offline Kubernetes stack with GitOps, observability, security policies, and a full CI/CD pipeline — and a guided walkthrough that teaches you each layer as it runs. No cloud, no bill. github.com/BubblyWolf/lab-in-a-box&lt;/p&gt;

&lt;p&gt;I wanted to understand how platform teams actually build and run things. Not just "hello world" Kubernetes — the real stuff: Argo CD syncing apps from Git, Prometheus scraping custom metrics, policies blocking bad deployments before they reach the cluster, CI pipelines that sign container images and generate SBOMs.&lt;/p&gt;

&lt;p&gt;The problem? Doing this in the cloud costs money. Tutorials are fragmented. And you never see the wiring between tools.&lt;/p&gt;

&lt;p&gt;So I spent weekends wiring everything together into one reproducible repo. Then I made it run locally with one command.&lt;/p&gt;

&lt;p&gt;What you get in 5 minutes:&lt;/p&gt;

&lt;p&gt;make up         # Kind cluster + Argo CD + Prometheus/Grafana/Loki + Kyverno&lt;br&gt;
make deploy-local  # 3-microservice "Pulse" app with health checks and metrics&lt;br&gt;
make demo       # Argo CD, Grafana, and the app — all open in browser&lt;br&gt;
The full stack:&lt;/p&gt;

&lt;p&gt;☸️ Kind — multi-node Kubernetes cluster in Docker&lt;br&gt;
🔄 Argo CD — GitOps with app-of-apps pattern, Git as source of truth&lt;br&gt;
📊 Prometheus + Grafana + Loki — custom "Pulse" dashboard, metrics-to-logs correlation&lt;br&gt;
🔐 Kyverno + Sealed Secrets + Trivy — admission policies, encrypted secrets, vulnerability scanning&lt;br&gt;
🚀 GitHub Actions — build, scan, SBOM, cosign sign, push to GHCR&lt;br&gt;
🎯 Pulse app — Node.js API, worker, and frontend + Redis — all wired for observability&lt;br&gt;
Why this exists:&lt;/p&gt;

&lt;p&gt;It's a learning environment that doesn't lie. The policies actually block things. The dashboards show real data. The GitOps sync fails if you break the manifests. You can experiment, break, fix, and understand — without a $200 cloud bill or a 2am page.&lt;/p&gt;

&lt;p&gt;What I'd love:&lt;/p&gt;

&lt;p&gt;⭐ Star it if it saves you time or teaches you something&lt;br&gt;
🍴 Fork it to build your own internal platform demo&lt;br&gt;
💬 Tell me what you built, what broke, what I got wrong&lt;br&gt;
Issues, ideas, and PRs welcome. This is a community learning project first.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/BubblyWolf" rel="noopener noreferrer"&gt;
        BubblyWolf
      &lt;/a&gt; / &lt;a href="https://github.com/BubblyWolf/lab-in-a-box" rel="noopener noreferrer"&gt;
        lab-in-a-box
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      One command, fully offline, production-grade Kubernetes platform for learning — Kind + Argo CD GitOps, Prometheus/Grafana/Loki observability, Kyverno security policies, and a CI/CD pipeline with image signing. Runs free on your laptop.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🧪 lab-in-a-box&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Learn a real production Kubernetes platform by running one — on your laptop, offline, in 5 minutes.&lt;/strong&gt; No cloud account. No bill. No 40-tab tutorial.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://opensource.org/licenses/MIT" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://github.com/BubblyWolf/lab-in-a-box/actions" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/BubblyWolf/lab-in-a-box/actions/workflows/ci.yml/badge.svg" alt="CI"&gt;&lt;/a&gt;
&lt;a href="https://kubernetes.io/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/efd5577be95701ba140c8ffb856fdadd685ed310135e83759e01d53be60ed5b2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6b756265726e657465732d2532333332366365352e7376673f7374796c653d666c6174266c6f676f3d6b756265726e65746573266c6f676f436f6c6f723d7768697465" alt="Kubernetes"&gt;&lt;/a&gt;
&lt;a href="https://helm.sh/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e84a88745bba074a7a1771127b39e033747e3e81d5ceb1ed45198807014c67b7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f68656c6d2d2532333046313638392e7376673f7374796c653d666c6174266c6f676f3d68656c6d266c6f676f436f6c6f723d7768697465" alt="Helm"&gt;&lt;/a&gt;
&lt;a href="https://argoproj.github.io/cd/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/518a6d4e042a858fdeec57fdf8fd4cc30031bdf5c39dd075ce990d573016fc69/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6172676f25323063642d2532334546374234442e7376673f7374796c653d666c6174266c6f676f3d6172676f266c6f676f436f6c6f723d7768697465" alt="Argo CD"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⚡ TL;DR&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;💻 &lt;strong&gt;Runs offline on your laptop&lt;/strong&gt; — &lt;a href="https://kind.sigs.k8s.io/" rel="nofollow noopener noreferrer"&gt;Kind&lt;/a&gt; (Kubernetes-in-Docker). No cloud account, no credit card, no surprise bill.&lt;/li&gt;
&lt;li&gt;🎓 &lt;strong&gt;Built to learn from&lt;/strong&gt; — every piece is wired &lt;em&gt;and explained&lt;/em&gt;. Start the cluster, then read the &lt;a href="https://github.com/BubblyWolf/lab-in-a-box/docs/walkthrough.md" rel="noopener noreferrer"&gt;guided walkthrough&lt;/a&gt; and watch each layer work.&lt;/li&gt;
&lt;li&gt;🧱 &lt;strong&gt;Real production patterns&lt;/strong&gt; — GitOps (app-of-apps), observability, admission-control security, signed images + SBOMs. Not toy YAML.&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;Working demo app&lt;/strong&gt; — "Pulse" (3 Node.js microservices + Redis) with a live Grafana dashboard you can watch update.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;make up            &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Kind cluster + Argo CD + Monitoring + Security stack&lt;/span&gt;
make deploy-local  &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Pulse app via Helm (no remote Git push needed)&lt;/span&gt;
make demo          &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Port-forward all UIs: Argo CD, Grafana, Pulse frontend&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;🆚 &lt;strong&gt;How this differs&lt;/strong&gt;…&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/BubblyWolf/lab-in-a-box" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>showdev</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
