09 — study / Assessment Conversion

The M11–M13 conversion machinery. This is where 13 months of shipped rungs turn into offers — or fail to, if the funnel isn’t built.

Reality check from 2026 data. A single ex-Microsoft engineer in Silicon Valley reported 200 applications → 10 studies → 0 offers in 2026. The market is compressed, AI-tooling has shifted what study partners evaluate, and cold-apply-through-portals is the worst channel right now. This file is about not doing that.


The conversion funnel — M11 to M13

Built in M1–M10          Activated in M11         Converted in M12–M13

[ Portfolio rungs ]  →  [ LinkedIn optimised ]  →  [ First-loop practice ]
[ Blog posts     ]  →  [ Referral engine    ]  →  [ Second-loop real     ]
[ Public commits ]  →  [ Cold outreach      ]  →  [ Offer negotiation    ]
[ CppCon notes   ]  →  [ Direct-apply list  ]  →  [ Signed contract      ]

Timing is critical. Start recruiter conversations by M11 (mid). Capstones aim to be M12-done, not M13-done. study loops are 3–6 weeks each. If you wait until M13 to start, you’ll miss your own window.


Step 1: LinkedIn optimisation (W41–W42)

This is Phase 7 file 04_linkedin_and_resume.md (in ../08_phase_7_capstone_and_signal/) — read that for detail. Key bullets to hit by M11 start:

  • Headline: “C++ / applied ML systems engineer” or similar. Not “Software Engineer at Zoho.” The headline is the pitch, not the paycheck.

  • About section: 3 short paragraphs. Story: (1) what I did before, (2) the 13-month arc and what I built, (3) what I’m looking for now.

  • Featured section: pin your top 3 rung repos + your best blog post. All 4 links must resolve to something impressive in one click.

  • Experience: update Zoho role with any C++ / ML work you actually did there (if any). Do not fabricate.

  • Skills: C++20, CMake, Eigen, pybind11, Google Benchmark, GDB/LLDB, systems programming, low-latency, ML infra. Match the recruiters’ search terms.

One-time investment: 4–6 hours. Do it once, then leave it. Do not tweak it weekly.


Step 2: The referral engine (W41–W48)

Referrals convert at 5–8x the rate of cold applications. In 2026 this is more true, not less. Cold portals are drowning in AI-generated resumes.

The 2nd-degree LinkedIn message

Open LinkedIn. Find employees at target companies who share a school, city, previous employer, or open-source project with you. Aim for 2nd-degree connections (friends of friends).

Template A — shared background:

Hi <Name>,

I'm Raghul — currently at Zoho, and I noticed we both
<shared context: went to X college / worked at Y / are
both in the C++ Slack>.

I've spent the last 13 months building applied C++/ML
infra alongside my day job. Recent thing I'm proud of:
<one-line project pitch> — <link>.

I'm exploring <role type> at <company> and would love
30 minutes of your time to hear how the team works and
whether my background could be a fit. No expectation of
referral — mostly want to learn.

Available any weekday evening IST or Saturday morning.

— Raghul
<blog URL>
<GitHub URL>

Rules:

  • One-line project pitch must be concrete, not vague. Bad: “a C++ ML thing.” Good: “a tiny inference server that runs quantised BERT at 3.2ms/token on M2 Pro, in 400 lines.”

  • “No expectation of referral” is critical. It’s honest, and it wildly increases response rate.

  • Do NOT mass-blast. 10 messages / week, hand-tailored. More than that reads spammy.

Expected response rate: 15–25% for well-crafted messages. 40+ messages sent = 6–10 conversations. 6–10 conversations = 2–4 referrals. That is enough.

Template B — cold to hiring manager

Same template, adjust the ask:

... I'm not sending a resume — my portfolio is at <blog>.
If you have a 20-minute slot in the next 2 weeks I'd
love to hear what your team is working on and whether
it's a fit.

Hiring managers respond to this at maybe 5–10%. But when they respond, the process skips 3 gatekeepers.

Template C — recruiter cold reach

Recruiters are inundated. Keep it short:

Hi <Name>, saw you place C++/ML engineers at <company>.
My portfolio: <blog>. Notable: <one line, one link>.
Open to <IC role at senior / staff level>.
7–10 years total XP, last 13 months focused on C++/ML.
Available to chat this week. — Raghul

Six lines. Read in ten seconds. Recruiters like this.


Step 3: The direct-apply target list (W40, 20 names)

See Phase 7 file 05_interview_conversion.md for the target-list construction methodology. Summary:

Build a 20-company list, tiered:

  • Tier 3 (7–10 companies): safety. Mid-size India-based product companies, C++/systems shops, ML platform teams at Series B–C startups. Rejection here still teaches; acceptance here is a fine first offer.

  • Tier 2 (6–8 companies): stretch. Global mid-size firms with India offices, or fully-remote OSS-adjacent companies. Deel, Modal, Anyscale, TogetherAI, MosaicML-heirs, Vercel-adjacent, ClickHouse, Materialize, LlamaIndex, etc.

  • Tier 1 (3–5 companies): dream. Nvidia, Meta AI infra, Anthropic infra, Jane Street / Optiver / HRT if quant-C++ interests you, PyTorch team, Google TPU team.

study ORDER matters more than the list itself.

  • study Tier 3 first, in W44–W48. These are your practice runs on real studies. You will fail some. That is the plan.

  • study Tier 2 in W48–W52. By now you’ve done 4–6 loops. You’re smoother.

  • study Tier 1 in M13. By then you have offers in hand, which gives you the emotional stability to study at your dream companies without collapse.

Do NOT study at your dream company first. That is the single most common mistake. You take your one shot in the worst-prepared state and get rejected without learning enough to be useful.


Step 4: study loop expectations for C++/ML hybrid roles (2026)

What the 2026 loop looks like for a mid-to-senior C++/ML infra role:

  1. Recruiter screen (30 min). Behavioural, salary expectations, timeline. Not technical. Do not screw up salary expectations — defer with “open to discussion after I understand the role”.

  2. Hiring manager chat (45 min). Half behavioural, half deep-dive on ONE of your portfolio projects. Prepare 3 project stories with metrics (“MiniServe served 1200 QPS at p99 of 8ms on an M2 Pro”).

  3. Technical screen (60 min). Usually one C++ coding problem + short design discussion. NOT LeetCode-hard. Usually a practical problem — e.g., “implement a bounded MPMC queue” or “write a threadsafe LRU cache.” See P2 rung 4 and P3 rung 5 — you have shipped both of these.

  4. On-site / virtual on-site (3–5 hours):

    • 2 coding rounds — one C++, one systems / ML infra practical.

    • 1 systems design — “design a low-latency inference server for LLMs.” This is where your capstone alpha earns its keep.

    • 1 behavioural / values — the “why us, why now, tell me about a conflict” round. Underprepared candidates fail here.

    • Optional: 1 domain deep-dive — e.g. GPU memory hierarchy, or CUDA scheduling, if the role is ML-infra-heavy.

  5. Team match / debrief. For distributed teams, this is where the offer decision gets made. Follow up with a thank-you email that adds one substantive thing you thought about after the study.

2026 pattern shift: study partners increasingly ask “walk me through your recent commit history” or “screen-share your GitHub and pick a repo.” They want to see how you code, not what you memorised. Your rungs are your defence.


Step 5: Expected failure rate

Plan for 60–75% loop failure rate in your first 4 loops. This is not motivational — this is 2026 market data. See ../99_pre_mortem/07_the_interview_fail_spiral.md before you study.

After each rejection, do the following, in order:

  1. Log it in INTERVIEWS.md at the roadmap root.

  2. Write ONE lesson from it. Not “they were biased” — an actual technical or behavioural gap.

  3. If the lesson repeats across 2 loops, address it before the next loop. Do not stack rejections around the same weak spot.

  4. Do NOT introspect for more than 30 minutes per rejection. Log, learn, move on.


Step 6: Salary negotiation (M13)

Read before your first offer arrives:

  • Haseeb Qureshi — “Ten Rules for Negotiating a Job Offer” (10rules.io). Free, one hour, worth 20–40% of your comp.

  • patio11 (Patrick McKenzie) — “Salary Negotiation: Make More Money, Be More Valued.” One hour read.

  • Levels.fyi for compensation benchmarks. Filter by India / Bangalore / Chennai / remote.

Core rules:

  1. Never give a number first. “I’m looking for a fair offer for someone with my experience — what does the range look like for this role?”

  2. Every offer is negotiable. Base, equity, sign-on, relocation, remote flexibility, PTO. Ask for improvements on 2–3, not all.

  3. Multiple offers > single offer. Time your study loops so 2–3 offers land within 2 weeks. This is negotiation leverage. This is why you study Tier 3 first — they generate the leverage for Tier 1/2.

  4. The company that pushes hardest for a fast decision is negotiating tactically. “I need a decision by Friday” is a pressure move. Buy 5–10 days — “I have another loop finalising Thursday and want to give both a fair look.” That’s a complete sentence.


Step 7: The India-to-global underpricing reality

Brother — well, I said this only appears in emotional files, so let me say it plainly instead: most Indian engineers accept offers 30–50% below what the same skill set commands globally. Not because their skill is worth less — because they don’t ask.

Anchoring effect: an Indian engineer sees ₹40 LPA and thinks “that’s a lot.” A US remote employer sees the same role budgeted at $180K. The gap is captured entirely by whoever asks.

Practical for a moonlighting India-based candidate applying to remote/global roles:

  • Remote-first companies pay India-based engineers 60–100% of US comp if you push. Deel, GitLab, Vercel, Modal have public salary bands. Verify per-company.

  • Anchor high in the salary conversation. If you’d be happy at ₹60 LPA, quote a range whose bottom is ₹65 and top is ₹90. You will not be laughed out; you will be met somewhere in the middle.

  • Do not accept India-local-rates from a global company unless the company operates fully-local. “We pay India rates for India-based hires” is often policy — sometimes it is negotiable. Ask.

  • India-only companies (Zoho, Freshworks, Postman, Razorpay) — different market, negotiate against local benchmarks (Levels.fyi India filter, Blind India).

Do not undersell. This is where 5 years of financial trajectory get locked in or lost.


Step 8: Timing on the study calendar

Milestone

Latest date

What must exist

LinkedIn optimised

end of M10

Featured section live, 4 links working

First recruiter outreach sent

mid M11

10 messages / week starting

First Tier 3 study scheduled

end of M11

2 loops on calendar

First offer or clear pipeline

end of M12

at least 1 Tier 2/3 in final rounds

First Tier 1 loop

mid M13

offers in hand for leverage

Decision & signature

end of M13

signed contract or explicit “pause and re-run”

If by end of M12 you have zero studies scheduled, read ../99_pre_mortem/07_the_interview_fail_spiral.md — something is wrong with your funnel, not with you. Diagnose and fix.