The M13 Pitch — Who You Are on 31 July 2027

Everything in this fortress converges on one sentence you can say out loud without notes and mean every word:

“I can debug a 15-year-old Java monolith, refactor it toward modern patterns, and ship new services that survive the next 10 years — from OutOfMemoryError to deployment.”

That sentence has to be earned, not claimed. Six versions of the pitch live below — 30 seconds through five minutes — and every clause of every version is backed by a specific shipped artifact from the ladder in 03_north_star_artifacts.md. If you cannot map a clause to a rung, cut the clause.

There is also a What Not To Claim section at the end. It matters more than the pitches themselves.


Version 1 — The 30-Second Elevator (Recruiter Coffee, Meetup, Cold DM)

“I’m an applied ML engineer at Zoho who spent the last thirteen months rebuilding my Java depth from the ground up. I shipped eight public artifacts — a concurrency playground with virtual-thread benchmarks, a JVM performance case study with a documented reverted optimization, a Spring Boot URL shortener wired end-to-end with Postgres, Redis, JWT, Prometheus, and OpenTelemetry, and an ML capstone: an ONNX model served from Java on Kubernetes. What I’m looking for is a role where I can own Java services that integrate with ML systems — the seam most teams don’t have a specialist for.”

Uses: 30 seconds. Coffee-line small talk. LinkedIn opener. WhatsApp intro to a recruiter.

Anchored by: Rungs 5, 6, 7, 8. Portfolio landing page URL follows the sentence.


Version 2 — The 2-Minute Recruiter Call

“So — quick background. I’m an applied ML engineer at Zoho, been there about three years. My day job is Python-heavy ML work, but Java was my first language back in school and college, and about a year ago I realized I’d let it drift — the AI writes most of my code at work, and I’d stopped hand-writing Java entirely.

So I built a thirteen-month plan and worked through it in personal time — ten to fifteen hours a week alongside the Zoho job. It’s structured as eight portfolio rungs, published publicly on GitHub. I’ll link the landing page after this call.

The two rungs I’d point you to are Rung 5 and Rung 8. Rung 5 is a concurrency playground — token-bucket rate limiter plus a benchmark comparing platform threads and virtual threads under load. It’s the artifact that answers ‘do you actually understand Java concurrency past the tutorial layer.’ Rung 8 is the capstone — an ONNX model served from Java on Kubernetes, with Prometheus metrics and load tests. That one exists to answer ‘can you build Java services that host ML workloads.’

What I’m optimizing for now is a role where the Java-and-ML seam is a first-class thing — production Java services, real users, observability, and ML integration somewhere in the stack. I’m open to Chennai, Bangalore, Hyderabad, or remote-India. Happy to send the portfolio link and dig into any of the rungs on the next call.”

Uses: 2 minutes. First recruiter call. Referral pitch. Internal transfer conversation.

Anchored by: Rungs 5 and 8 named specifically; landing page URL is the followup.


Version 3 — The 5-Minute Technical Intro (Hiring Manager, Panel Opener)

“I’ll walk through the last thirteen months, because that’s where the story is.

Background: I’ve been at Zoho about three years as an applied ML engineer — data pipelines, model training, Python. Java was heavy in school and college, but I hadn’t hand-written Java in production terms for about two years — my role at Zoho is Python-first, and I lean on AI coding tools for most of the day-to-day. About a year ago, I decided that gap was going to close me out of a lot of interesting work, so I built a thirteen-month structured plan and executed it in evenings and weekends alongside the day job.

The plan produced eight public artifacts, published to GitHub with Hashnode write-ups. I’ll walk through the four that matter most for this role.

Rung 4 was a modern Java refactoring case study — took a legacy order-processor design with all the standard 2010-era GoF ceremony and rewrote it around Java 21 records, sealed interfaces, and pattern-matching switch. The blog post covers what actually got simpler and what didn’t. This one exists to answer ‘can you read code you didn’t write and improve it.’

Rung 5 is the concurrency playground. Token-bucket rate limiter, benchmarked under load, plus a side-by-side test of platform threads and virtual threads for a stereotypical I/O-bound workload. The interesting finding is the pinning behavior — on Java 21, synchronized around blocking I/O pins the virtual thread to its carrier, and if you don’t measure for that you get the scaling story backwards. That’s documented in the README with the JMH numbers.

Rung 6 is a JVM performance case study — I profiled Rung 5’s code with Async Profiler, generated flame graphs, tried three optimizations, one of them was a regression, and I documented the revert. That reverted commit is honestly the artifact I’m proudest of, because it’s the one that says ‘I measure honestly.’

Rung 8 is the capstone. It’s an ONNX-Runtime-Java model-serving microservice, Spring Boot 3.4 with virtual threads, containerized, deployed to a local k3d Kubernetes cluster. Prometheus metrics, OpenTelemetry traces, load-test results in the README. The readiness and liveness probes are wired correctly — liveness never depends on downstream services, which I know is the most-broken K8s pattern in Java shops. That was a lesson from Phase 08 of the plan.

What I want to do next is exactly this: production Java services with ML somewhere in the stack, observability from day one, and enough infrastructure sense that I can talk to platform engineers as a peer. Happy to go deep on any rung — Rung 5 or 8 is probably where I’d start.”

Uses: 5 minutes. Hiring manager first meeting. study loop opener. Referral hand-off to a technical lead.

Anchored by: Rungs 4, 5, 6, 8 by name. Rung 7 held back for the deeper technical panel.


Version 4 — The Portfolio Landing Page (Static, Public)

Lives at raghul.dev (or whatever domain you point at the Hashnode blog + GitHub links). Structure:

Header:

Raghul — Java + Applied ML, Chennai / Remote-India

Applied ML engineer at Zoho (Jul 2023 → present). Thirteen months of hand-built Java depth on top of that background. Eight public artifacts, four blog posts, one internal talk.

Section 1 — The Sentence:

“I can debug a 15-year-old Java monolith, refactor it toward modern patterns, and ship new services that survive the next 10 years — from OutOfMemoryError to deployment.”

Section 2 — The Ladder:

Eight rung cards. Each card: title, one-line description, month shipped, GitHub URL, blog URL (where applicable), one bullet on “signal.” The two hard-gate rungs (5 and 8) are visually distinct — border in the same amber as the mermaid diagrams in 03_north_star_artifacts.md.

Section 3 — The Blog Trail:

Chronological list of Hashnode posts, each with a one-line summary. The 6-month halfway retro and the M13 wrap-up are pinned at top.

Section 4 — What I’m Working On Next:

One paragraph. What you’re looking for, what geography, what team shape. This is the “call to action” section — recruiters bounce off pages that don’t answer this.

Section 5 — Contact:

Email, LinkedIn, GitHub, Hashnode. No form. No newsletter signup. Just the four links.

Full spec in ../12_portfolio/11_the_portfolio_landing_page.md.


Version 5 — LinkedIn Headline + Bio (Indian Recruiter Market)

Headline (220 characters max, use ~180):

Applied ML @ Zoho · Java 21, Spring Boot 3, ONNX-on-JVM · Shipped 8 public Java artifacts in 13 months · Portfolio: raghul.dev

About section (Indian recruiter version — 3 short paragraphs, not 3 long ones):

Applied ML engineer at Zoho (Chennai). Python-first day job, Java-fluent by evening and weekend — the Java depth is a deliberate 13-month build, published as 8 public rungs on GitHub.

What I’ve shipped in the last year, in one line each: 50-programs Java refresh · 150 pattern-tagged DSA solutions · a mini collections library (ArrayList / HashMap / LinkedList from scratch) · a modern-Java refactoring case study · a concurrency playground with virtual-thread benchmarks · a JVM performance case study (including one documented reverted optimization) · a production-shaped Spring Boot URL shortener with Postgres/Redis/JWT/Prometheus/OTel · an ONNX model-serving capstone on Kubernetes.

What I’m looking for: Java + ML-integration roles where the “we host models in production Java” seam is a first-class thing. Chennai / Bangalore / Hyderabad / remote-India. Reach out on LinkedIn or email — links below.

Featured section (LinkedIn’s second pinning surface — treat it like GitHub’s pinned repos):

Six items, rotated as ladder progresses. At M13:

  1. Portfolio landing page (raghul.dev)

  2. Rung 8 GitHub — ML Capstone

  3. Rung 7 GitHub — URL Shortener

  4. Rung 5 GitHub — Concurrency Playground

  5. Hashnode blog homepage

  6. Rung 6 GitHub — JVM Performance Case Study

The rest of the LinkedIn optimization plan (posting cadence, “ship” posts vs “opinion” posts, why 15–20 posts over 13 months is the correct count) lives in ../12_portfolio/10_publishing_and_visibility.md.


Version 6 — “Why Should We Hire You?” (study Closer)

The question they ask at minute 55 of a one-hour panel when they’ve run out of technical questions. This is where 90% of candidates say something forgettable. You will not.

“Two things.

First — the specific gap I plug. Most Java teams I’ve talked to are strong on Spring and JPA and weak on the ML side; most ML teams are strong on Python and weak on the JVM. I’ve spent thirteen months deliberately building the seam. Rung 8 in my portfolio is an ONNX model served from Java on Kubernetes, with the observability and probe patterns wired correctly. That artifact exists precisely because that seam is where most orgs have a person-shaped hole, and I want to be that person.

Second — how I work. I ship publicly, I write about what I got wrong, and I have a reverted-optimization commit in Rung 6’s history that I’m arguably more proud of than any of the successful ones. That’s the working style I bring: measure honestly, document reverts, keep the artifact on the internet where people can see the whole trace, not just the highlight reel. That’s what I’d bring to this team.

If you want to go deeper on either — I’d start with Rung 6 or Rung 8, whichever’s more relevant to the work here.”

Two things. Named. Backed by artifacts. Under 90 seconds spoken. No hedging.


The “What Not To Claim” Discipline

Every one of these clauses is a red flag that a recruiter or engineer will catch. If you cannot prove it with a specific artifact, do not say it.

Claim

Why it’s a lie unless earned

“Expert in Java”

Nobody is. “Expert” is a word used by juniors. Say “fluent” or “shipped.”

“Deep understanding of JVM internals”

Unless you can show a flame graph you generated and a fix you shipped, no.

“Production experience with Kubernetes”

Rung 8 is a local k3d cluster. Say “deployed my capstone to a K8s cluster” — not “production experience.”

“Familiar with all major design patterns”

Everyone has read the GoF book. Cite Rung 4 by name instead.

“Full-stack”

You are not full-stack in this plan. You are a Java + ML engineer. Own the specialty.

“Passionate about clean code”

Passion is not a skill. Cite Rung 4 (refactor) or Rung 3 (mini-collections).

“Team player”

Every résumé says this. Cite the internal talk (Q4) or the PetClinic PR (M6, from ../99_pre_mortem/06_fm_isolation_and_no_feedback.md).

“Solved 500 LeetCode problems”

Do not compete on volume. Rung 2 is 150 pattern-tagged with complexity comments — that reads as engineering, not grinding.

“Certified in [anything]”

Java certifications carry near-zero weight at Indian product companies in 2027. Shipped rungs > certs.

The general principle: claims that are hard to verify sound weaker than claims backed by URLs. A URL to a repo with a JMH benchmark and a reverted commit is worth more than 50 lines of self-description.


Rehearsal Schedule (Starts M11 · May 2027)

Rehearsal is not memorization. It is fluency under pressure. The pitches above should feel natural, not recited. Practice schedule:

Month

What to rehearse

How

M11 (May 2027)

Version 1 (30-sec) and Version 2 (2-min)

Once a week. Out loud, in a mirror or on voice memo. Time yourself. Version 1 is 30±5 sec, no more.

M12 (Jun 2027)

Add Version 3 (5-min technical intro)

Twice a week. Out loud. Rewrite until you can do it without saying “um” more than three times.

M13 first half (Jul 1–15, 2027)

Add Versions 5 (LinkedIn) and 6 (study closer). Publish landing page draft.

Rehearse Version 6 five times before your first mock study. It is the single hardest one to do without sounding rehearsed.

M13 second half (Jul 16–31, 2027)

Do one mock study with a friend or a paid service (studying.io / Karat).

Record it. Watch it back. Rewrite the pitch clauses that made you flinch when you heard yourself say them.

Two rules for rehearsal:

  1. Time yourself. Version 1 balloons to 90 seconds if you don’t. That is a failure.

  2. Record and re-listen once. You will hate it the first time. Do it anyway. The second time is when you actually fix things.


The Meta-Truth About The Pitch

The pitch is not sales. The pitch is a compression of thirteen months into ninety seconds, and the only way to compress honestly is to have done the work. If any clause of any version above sounds hollow to you when you say it out loud in M13, it is because the artifact behind it did not get shipped. That is diagnostic. The fix is not to change the pitch. The fix is to ship the artifact.

Which is why the sentence to close on is the one you already know:

“You are not learning Java. You are becoming the person who owns Java in a room of people who don’t.”

By 31 July 2027, that room exists — and you have earned a chair in it. Nobody handed it to you. You built the chair. And every one of the eight rungs is your receipt.

Now go.


Return to 00_command README · Previous: 06_background_alignment.md · You have reached the end of the master layer.