✦saranzafar
HomeProjectsAboutBlogContact
✦saranzafar© 2026 Saran Zafar. All rights reserved.

Made with ❤️ in Azad Kashmir, Pakistan

Back to blog
22 Apr 20267 min

How to Write Technical Case Studies Recruiters Actually Read

A repeatable structure for case studies that survive a 90-second skim — and the section recruiters always jump to first.

How to Write Technical Case Studies Recruiters Actually Read

A case study isn't a postmortem. It isn't a tutorial. It isn't a feature list. It's a story with one job: convince a stranger that you — specifically you, not your team, not your framework — made good decisions under real constraints.

Here's the structure I use. It's boring. It works.

The 90-second skim

Recruiters spend an average of 90 seconds on a portfolio piece. Optimise for the skim, then reward the deep reader.

Skim path:
  Title  →  Cover image  →  H1  →  TL;DR  →  Result number  →  exit
Deep path:
  Title  →  Problem  →  Constraints  →  Decisions  →  Outcome  →  Reflection

If the skim path doesn't say "this person solved a real problem and shipped," the deep path never happens.

The five-section template

1. The problem (in one paragraph)

Not "the company wanted a new dashboard." Specific: "Customer-support agents were copying order IDs between three tools to refund a charge — averaging 4.2 minutes per refund and dropping ~8% of cases on hand-off."

Recruiters love numbers because numbers are falsifiable. Vague claims read as marketing.

2. The constraints

Constraints are where the engineering happens. List the three or four real ones:

  • "Couldn't touch the legacy refund API — locked behind a vendor contract."
  • "Two-week deadline because of an audit."
  • "Team of one (me) plus a half-time designer."

Anyone can solve a problem with infinite time. The story is which tradeoffs you accepted.

3. The decisions

This is the section recruiters read most carefully. For each decision, give the alternative you considered and why you didn't pick it.

DecisionPickedRejectedWhy
Data layerServer actionstRPCOne less dep; team unfamiliar
AuthMagic-link onlyPassword + OAuthInternal tool, allow-list of 12
StateURL paramsZustandShareable links mattered more than ergonomics

A table like this signals you've thought about more than the code you shipped. That's the senior signal.

4. The outcome

One headline number, two supporting numbers. Then one sentence on the qualitative win.

Refund time dropped from 4.2 min to 38 sec. Hand-off drops fell from 8% to 0.4%. Support went from "the worst part of the job" to a tool agents now ask for in onboarding.

5. What you'd do differently

This is the section that separates juniors from seniors. Juniors close with "I learned a lot." Seniors close with a real critique of their own work.

  • "I picked Server Actions before they had proper streaming. I'd use Route Handlers today."
  • "I should have built an undo flow on day one — we ended up retrofitting it after a near-miss."

A real "what I'd do differently" earns trust. Faking humility is obvious; just say what was actually wrong.

The cover image trap

Stock photos of people in headsets immediately downgrade your work. Use one of:

  • A real screenshot of the thing (cropped tight).
  • A simple architecture diagram you drew (Excalidraw is fine).
  • A chart of the metric that moved.

If the cover image isn't of your work, it's noise.

How long should it be?

500 words   = too short, reads as a tweet
1,200 words = sweet spot for portfolio reads
2,500 words = only if there's a genuinely complex story
5,000 words = nobody will read it. nobody.

The skim path should answer "should I read this?" in five seconds. The deep path should answer "would I hire this person?" in five minutes.

Sources

  • How To Choose Blog Topics For SEO In 2026 — Nation Media Design
  • SEO Blog Structure for 2026 — KherKroldanSeo

Share this post

#writing#career#portfolio#case-study#saranzafar

More posts

See all
Docker for Beginners: Why It Quietly Changes How You Ship Software

Docker for Beginners: Why It Quietly Changes How You Ship Software

02 May 2026

OpenClaw, Dissected: One Daemon, Many Mouths, and a Folder of Markdown

OpenClaw, Dissected: One Daemon, Many Mouths, and a Folder of Markdown

02 May 2026

Claude Opus 4.7 and the Rise of Adaptive Thinking Models

Claude Opus 4.7 and the Rise of Adaptive Thinking Models

30 Apr 2026