Publishing & Visibility — Where to Ship, How to Be Found

Who this file is for: You, in the moments where a rung is technically done and you’re deciding where to publish it and how loudly to announce it. Bias this file has: India-specific. LinkedIn matters more here than in the US market. Hashnode matters more than Medium. This file assumes you’re job-hunting inside the Indian tech ecosystem (Bangalore / Chennai / Hyderabad / Pune / remote-India).


The Rule

A rung that ships on GitHub but is not findable delivers 30% of the signal it could. Publishing across the right surfaces — correctly — is not “marketing.” It is distribution of proof. If a recruiter cannot find your rung, it did not happen.

This file is a channel-by-channel playbook. Skim it once now, come back to it every time you ship a rung.

Channel 1: GitHub — The Primary Surface

GitHub is where 90% of your evaluation happens. Everything else exists to drive traffic to GitHub or supplement it.

Profile README (the landing tile)

Create github.com/RaghulR2003/RaghulR2003 — a special repo whose README displays on your profile. This is the first thing anyone sees. Make it:

  • A single, honest sentence at the top: “Applied ML engineer at Zoho rebuilding Java fluency and shipping ML services in Java 21.”

  • A pinned rungs table (mirror your portfolio ladder)

  • A now section: “Currently building: Rung 4 — Java 6-to-21 refactor case study.”

  • Links to blog, LinkedIn, portfolio site

  • No emojis unless you’re deliberately committed to that style. This directory recommends none.

Update the now section monthly. Recruiters read this.

Pinning strategy

GitHub gives you 6 pinned repo slots. They are your most valuable real estate. Rotation strategy over the 13 months:

Month

Pin 1

Pin 2

Pin 3

Pin 4

Pin 5

Pin 6

M2 (Aug 2026)

Rung 1

M4 (Oct 2026)

Rung 2

Rung 1

M5 (Nov 2026)

Rung 3

Rung 2

Rung 1

M6 (Dec 2026)

Rung 4

Rung 3

Rung 2

Rung 1

M8 (Feb 2027)

Rung 5

Rung 4

Rung 3

Rung 2

Rung 1

M9 (Mar 2027)

Rung 6

Rung 5

Rung 4

Rung 3

Rung 2

Rung 1

M11 (May 2027)

Rung 7

Rung 6

Rung 5

Rung 4

Rung 3

Rung 2

M13 (Jul 2027)

Rung 8

Rung 7

Rung 6

Rung 5

Rung 4

Rung 3

By M13, Rung 1 has been unpinned to make room. That is correct — Rung 1 has served its purpose (getting you on the ladder) and its shelf life is over. Later rungs outshine it.

Commit graph as signal

The green-square commit graph on your profile is itself an evaluated artifact. Recruiters glance at it before they read anything else. Rules:

  • Commit on at least 5 different days per week during active study weeks

  • Commits should be substantive (not “fix typo” x 40) — but small is fine

  • Avoid “commit farming” scripts. Recruiters can tell. Real commits from real work are what matters.

  • Do not stress about a perfect graph. A few gaps are fine; multi-week deserts are not.

Repo hygiene per rung

  • A real description in the repo settings (not blank)

  • Topics (at least 5 relevant ones — java, java21, spring-boot, kubernetes, ml-serving, etc.). Topics are searchable.

  • A LICENSE file (MIT is fine unless you have a reason otherwise)

  • A working CI badge in the README

  • A CONTRIBUTING.md if the repo could plausibly accept contributions (Rungs 3, 5, and later)

  • Screenshots or a demo GIF in the README for any rung with a UI or a visible output

Channel 2: LinkedIn — The India Recruiter Machine

In the US, LinkedIn is a passive resume. In India, LinkedIn is where recruiters actively source. Optimize for it deliberately.

Profile

  • Headline: “Applied ML @ Zoho · Building Java 21 + ML serving systems” (or your equivalent). Not “passionate about learning.” Concrete.

  • About: Two paragraphs. One about your current role. One about your public work (your rungs). Link to GitHub profile and portfolio page.

  • Featured section: Pin your 3 strongest rung announcements + your portfolio landing page. This is LinkedIn’s version of GitHub pinning.

  • Skills: Java, Spring Boot, Kubernetes, JVM performance, Machine Learning, ONNX — in that order once Rung 8 ships. Endorsements will accrue if you post.

Posting cadence

Do not post daily. That’s a content-marketer’s playbook and it does not fit an engineer. Instead:

  • One post per shipped rung (rungs 4-8 warrant posts; rungs 1-3 warrant a brief note in a monthly recap)

  • One monthly recap post listing what shipped, what’s next, what surprised you

  • One “reflection” post per hard gate (after Rung 5 ships, after Rung 8 ships)

That’s roughly 15-20 posts across 13 months. High signal, low noise.

Post format that works in India

  • Hook (first line — visible before “see more”)

  • 4-8 short paragraphs, each 1-3 lines

  • One or two lines of concrete numbers or code

  • Optional: one relevant image (chart, code snippet, flame graph)

  • Link (put it in a comment, not the post body — LinkedIn deranks external links)

  • 5-8 relevant hashtags at the bottom: #java #java21 #springboot #kubernetes #mlops #bengaluru (mix general + India-specific)

Tag relevant people sparingly — only if you’re referencing their content. Never tag recruiters or hiring managers directly to “get their attention.” It backfires.

Connecting with recruiters

  • Accept incoming connection requests from Java-focused recruiters at Freshworks, Chargebee, Postman, Zoho competitors, Razorpay, Swiggy engineering, Flipkart, Amazon India, Google India, Microsoft India

  • Do not initiate cold DMs to recruiters until Rung 5 has shipped. Before that, you have nothing to show them.

  • After Rung 5: template DM = “Hi [name], noticed you hire Java engineers at [company]. I’m not actively job-hunting yet, but I’ll be by [Month Year]. My in-progress portfolio is at [GitHub link]. Happy to stay in touch.” Sends signal, no ask.

Channel 3: Blogging — Hashnode Primary, dev.to Secondary

Why Hashnode

Hashnode is a rising blogging platform popular with Indian developers. It has:

  • Custom domains on the free tier (raghulr2003.hashnode.dev or blog.raghulr2003.dev)

  • Real markdown, real syntax highlighting, real code embeds

  • SEO that actually works (unlike Medium, which increasingly hides posts behind a soft paywall)

  • A community that reads Java content (Medium’s Java community has been in decline)

Why dev.to as secondary

dev.to has:

  • Broader reach outside India

  • Excellent SEO for evergreen technical content

  • A cross-posting flow that respects canonical URLs (crucial for SEO)

Always set the canonical URL on the dev.to post to point at Hashnode. This tells Google that Hashnode is the source, avoiding duplicate-content penalties.

Why not Medium

Medium’s paywall is a bad fit for a developer audience. Java developers overwhelmingly Google their answers; if your post is paywalled, they hit the back button and land on someone else’s. If you already have Medium presence, maintain it, but don’t originate content there.

Blog cadence

Rung

Blog Requirement

1

Optional

2

Optional (one pattern-explainer post is a good stretch)

3

1 post required (the “I rewrote java.util” post)

4

1 post required (the refactor case study)

5

1 post required (virtual-threads chart post)

6

1 post required (perf case study)

7

1 post required (decisions post)

8

3-post series required

Across 13 months: ~8-9 blog posts. All under raghulr2003.hashnode.dev. All cross-posted to dev.to with canonicals.

Blog post quality bar

  • Not a tutorial. Never a tutorial. Tutorials are worth zero signal. Case studies, decisions posts, and negative-result posts are worth all the signal.

  • Real numbers, real code, real screenshots

  • Header image (use excalidraw or a simple screenshot — do not use stock Java-themed clipart)

  • Word count: 800-2500 words per post. Long enough to be substantial, short enough to be read.

Channel 4: Twitter/X and Bluesky — Optional Amplifiers

Optional. Not required. But if you enjoy short-form writing, they compound over time.

  • Bluesky’s Java community is small but earnest and growing

  • Twitter/X still has the highest reach for Java content in absolute terms, but engagement is noisier

  • Follow: @_josh_long, @rebeccawb, @nipafx, @JavaChampions, @InsideJava

  • Post when a rung ships, not on a schedule. Three tweets: hook, best snippet, link to blog / repo.

  • Skip if these platforms drain you. They are amplifiers, not primary channels.

Channel 5: HackerRank / LeetCode / HackerEarth Profiles

In the Indian tech market, competitive-programming profiles carry real weight, especially at MNCs (TCS, Infosys, Wipro, Accenture) and MAANG India. They also matter at Zoho competitors like Chargebee and Freshworks.

  • LeetCode: Match your display name to your GitHub handle. Update the profile bio with a link back to GitHub. Aim for a 1600+ contest rating by end of M4 if contests interest you (optional but a nice signal).

  • HackerRank: 5-star badges in Java, Problem Solving, and SQL. Take ~10 hours in Phase 02 to grind these once. They’re checkbox items for MNC recruiter filters.

  • HackerEarth: Lower priority. Skip unless a specific target company uses it.

  • CodeChef: Same as HackerEarth — skip unless targeting companies that specifically look at it.

Cross-link all these from your GitHub profile README. Recruiter tools scrape these links.

Channel 6: Meetups & Speaking (M10+)

Once you’re past Rung 5 (the point where you have novel technical content), consider:

  • Bangalore JUG — The Java User Group is active and welcoming. A 15-minute lightning talk on your Rung 5 or Rung 6 material is achievable and high-signal.

  • Chennai JUG — Similar; smaller but tighter-knit.

  • JavaOne / Devoxx India — Speaker CFPs are competitive but submitting is a resume item.

  • Zoho internal tech talks — Free real estate. Present Rung 6 or Rung 8 to internal audiences. Zoho tolerates this and it builds internal reputation.

One meetup talk in M10-M13 is a strong differentiator. Two is exceptional. Zero is fine.

Channel 7: OSS Contributions (Optional, High-Value)

One merged PR to a mid-size Java OSS project is worth massively more than any blog post. It cannot be faked. Targets:

  • Spring / Spring Boot — documentation improvements are entry-level and accepted

  • Micronaut / Quarkus — smaller communities, easier to get a first PR merged

  • Testcontainers — you’ll use it in Rung 7 and 8 anyway; contribute a small fix if you hit one

  • JMH / async-profiler — rungs 5 and 6 will teach you enough to file a doc improvement

One merged PR by M13 is the goal. Even a doc fix counts.

Certifications (Optional)

Oracle Certified Professional: Java SE 21 Developer (1Z0-830) is available and moderately valuable in the India MNC market. Not a gate. Nice-to-have. If you’re between Rungs 6 and 7 and want a break from building, an exam window is a reasonable use of ~30 hours.

Do not do it instead of any rung. The rungs are the primary artifact; certifications are a secondary signal.

The Weekly Distribution Ritual

Every Sunday for 30 minutes:

  1. Update the now section of your GitHub profile README with what you shipped this week

  2. Cross-post any blog post drafted this week from Hashnode to dev.to (canonical set)

  3. Draft next week’s LinkedIn post if a rung is shipping

  4. Update your portfolio landing page with any new rung tile

  5. Update PROGRESS.md in the active rung’s repo

Thirty minutes weekly. Two hours monthly. That is the whole distribution overhead.


Return to README.md · Next: 11_the_portfolio_landing_page.md