04 — LinkedIn and Resume¶
Your LinkedIn profile and one-page resume are the two documents that convert your capstones into recruiter conversations. They are not creative writing. They follow formulas that have been reverse-engineered from thousands of hires. Follow the formulas.
LinkedIn as a machine¶
LinkedIn is not “social media.” It is a searchable database that recruiters run keyword queries against, then read profiles in a 60-second scan. Optimize for that scan. Your goal is: after 60 seconds, the recruiter can tell you (a) what you do, (b) what you have shipped, (c) what you want next. If any of those three is unclear, they move on.
Headline formula¶
[current-or-target role] · applied C++ for [domain] · built [key artifact]
Sample for post-M13 Raghul:
Applied ML Engineer at Zoho · C++ for ML inference · built MiniServe & pyfast_ann
Why this works: the first phrase captures where you are, the second the differentiating skill, the third the proof. 90 characters, three concrete signals.
Anti-headline: “Passionate software engineer | Coding enthusiast | Life-long learner.” Zero signals. Delete.
About section (three paragraphs, no more)¶
Structure: who / what shipped / next.
I’m an applied ML engineer at Zoho, based in India, focused on the boundary between C++ and Python for machine learning systems. My last year has been about deepening the C++ side of that boundary — memory, concurrency, RPC, and observability — while staying grounded in real applied work.
Recent shipped work: MiniServe, a production-grade C++ ML inference server that serves ONNX models over gRPC and REST with dynamic batching, Prometheus metrics, and OpenTelemetry tracing (benchmarked 4x throughput vs FastAPI + PyTorch). And pyfast_ann, a nanobind-bound C++ vector index published to PyPI. Both are on GitHub with benchmarks, blog write-ups, and reproducible harnesses.
Next: I am looking for applied C++/ML infrastructure roles — inference platforms, data platform performance, ML systems, or similar. Open to India-based roles and remote-friendly global roles. Reach out via DM.
That is ~180 words. Any longer and it does not get read.
Featured section¶
LinkedIn lets you pin up to a handful of items at the top of your profile. Pin these exact items in this order:
MiniServe — link to the repo. Cover image = the architecture diagram.
pyfast_ann — link to PyPI or repo. Cover image = the benchmark chart.
Blog — link to your domain’s home page. Cover = a photo of yourself or a clean type-based image.
Perf case study (the P6.3 post) — link. Cover = the before/after flamegraph.
The Featured section is the first thing a recruiter clicks after reading the headline. Make sure the linked pages themselves are polished.
Skills section¶
List concrete skills only. Not “leadership” or “passion.” Order matters — first 3 show above the fold.
Recommended order (verify current LinkedIn UI when you set this up):
C++ (C++17/20)
Machine Learning Engineering
gRPC
ONNX Runtime
Python
CMake
Prometheus
OpenTelemetry
Performance Optimization
Docker
Endorsements are noise. Don’t chase them. Recruiters search Skills, they don’t count endorsements.
Experience section¶
Each role: 2–4 bullets. Every bullet uses this formula:
[verb] [artifact/thing] [with what tech] [measurable outcome]
Weak: “Worked on ML models to improve customer engagement.”
Strong: “Shipped churn-prediction model (Python + XGBoost) improving retention by 8% across 40K accounts.”
Every bullet must have a number if numbers are honestly available. If a number is confidential, still find a relative one: “reduced batch pipeline latency by ~30% via SQL rewrite.”
Activity¶
Your last 3 posts show under your profile. Which means: your capstone launch posts should be recent when a recruiter arrives. Plan launches on Tues–Thurs so the post is fresh through the week.
The one-page resume¶
A one-page resume for someone with real shipped work. LinkedIn does the extended narrative; the resume is the study-desk artifact.
Layout rules¶
One page. Two pages says “I don’t know what matters.”
PDF. Never .docx. Fonts break.
Serif or clean sans. Charter, Source Serif Pro, Inter, IBM Plex. Not Comic Sans, not Times New Roman (dated).
11pt body, 10pt secondary. 0.5” margins minimum.
No photo. Standard for global tech.
No skills bar charts. “C++ ###### 90%” is meaningless and dated.
No “references available on request.” Assumed.
Section order¶
Header — name, one-line pitch, email, GitHub, blog, LinkedIn, location.
Selected projects (top, not bottom — this is your differentiator).
Experience — reverse chronological.
Skills — grouped and concrete.
Education — last, unless you graduated in the last 12 months.
Full sample resume for hypothetical post-M13 Raghul¶
RAGHUL R
Applied ML Engineer · C++ for ML Inference Systems
email · github.com/<user> · <yourname>.dev · linkedin.com/in/<user> · Chennai, IN / remote
----------------------------------------------------------------
SELECTED PROJECTS
MiniServe — C++ ML inference server <yourname>.dev/miniserve
• Built production-grade inference server in modern C++20 serving ONNX models
over gRPC and REST with dynamic batching, TLS, bounded queues, deadline
propagation. 4x throughput vs FastAPI + PyTorch baseline at concurrency 32.
• Wired spdlog + prometheus-cpp + OpenTelemetry (OTLP-gRPC) end-to-end;
3 Grafana dashboards (RED, latency heatmap, per-model throughput).
• Deployed to public VM; k6 + ghz load tests committed with methodology.
• Tech: C++20, gRPC async, drogon, ONNX Runtime, Docker, jemalloc.
pyfast_ann — HNSW vector index for Python pypi.org/project/pyfast-ann
• Published nanobind-bound C++ HNSW index to PyPI. Wheels for Linux/macOS/Win
via cibuildwheel. Recall@10 = 0.94 on SIFT-1M at 12K QPS single-thread.
• Numpy-compatible API, thread-safe reads, custom binary persistence format.
• Tech: C++20, nanobind, AVX2/NEON SIMD kernels, cibuildwheel, GH Actions.
Profiling case study <yourname>.dev/miniserve-perf
• 3.2x p99 improvement on MiniServe hot path via perf + Tracy diagnosis.
Documented before/after flamegraphs and methodology.
----------------------------------------------------------------
EXPERIENCE
Zoho Corporation — Applied ML Engineer 2023 — present
• [artifact + tech + measurable outcome bullet]
• [artifact + tech + measurable outcome bullet]
• [artifact + tech + measurable outcome bullet]
[prior roles similarly, each with 2–3 numeric bullets]
----------------------------------------------------------------
SKILLS
Languages C++17/20 (primary), Python, SQL, Bash
Systems gRPC, Protobuf, HTTP/2, Prometheus, OpenTelemetry, Docker
ML ONNX Runtime, PyTorch, scikit-learn, numpy, Apache Arrow
Performance perf, Tracy, Instruments, flamegraphs, jemalloc/mimalloc,
LTO, PGO, SIMD (AVX2, NEON)
Build + CI CMake, cibuildwheel, GitHub Actions, vcpkg
----------------------------------------------------------------
EDUCATION
[University] — [Degree], [Year]
One page. Two-columns is fine if the render is clean; single column is safer. Print it on paper once and see if a stranger can absorb it in 30 seconds. That is the actual test.
Bullet formula, worked examples¶
Rewrite these until every bullet passes the formula.
Bad: Worked on backend services. Better: Owned latency reduction for customer-facing search API. Best: Reduced p99 latency of search API from 480ms to 190ms (60%) via query planner rewrite and index redesign; serving 40M queries/day.
Bad: Learned C++ and ML. Better: Completed 13-month C++/ML systems curriculum. Best: Shipped two capstone projects in modern C++: MiniServe (gRPC ML inference server, 4x throughput vs Python baseline) and pyfast_ann (HNSW index, published to PyPI).
The pattern: verbs are strong, artifacts are named, numbers are present.
What most people get wrong¶
Two-page resumes with irrelevant college projects. Cut. If your capstones fill the space, they belong there.
Vague headlines. “Software Engineer at [Company]” gives zero information. Use the formula.
No links. Every project on the resume must be one click away from working code.
Fluffy soft-skill lists. “Team player, quick learner, problem solver.” Delete on sight. Recruiters instantly discount these.
Cover images that are stock photos. Use your architecture diagram, benchmark chart, or clean text on solid color. Never a stock handshake photo.
Verification checklist¶
Before the outreach phase starts (W54), all of the following must be true:
LinkedIn headline uses the formula.
About section is 3 paragraphs, ~180 words.
Featured section pins MiniServe, pyfast_ann, Blog, Case Study.
Skills top 3 are C++, ML Engineering, gRPC (or your target-role variant).
Every Experience bullet has a verb + artifact + tech + number.
Resume is one page PDF.
Resume header links work when clicked from the PDF.
Resume passes the 30-second-stranger test.
Only after all boxes tick do you start outreach. Before that, you are asking recruiters to hire a document that is not yet what you are.