Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Programming Essay

ASecurity

Write a programming essay or blog post in the voice of the canon — Spolsky, Yegge, Graham, Mickens, Dijkstra, Brooks, Nystrom, Kleppmann, patio11. Invoke when the user wants to argue an idea about software, architecture, languages, or the craft — not a debugging war story (use debugging-story for that), not a tutorial, not a release note. The audience is working developers worldwide with taste and strong opinions of their own.

11 stars
0 votes
0 copies
0 views
Added 10/6/2026
developmentrustgojavareactdebuggingdatabase

Works with

cli

Security Analysis

A100/100

Scanned 10/6/2026

$npx -y skills add juspay/skills --skill programming-essay --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Programming Essay?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Programming Essay
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/juspay-programming-essay/badge)](https://www.skillsdirectory.com/skills/juspay-programming-essay)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: programming-essay
description: |
  Write a programming essay or blog post in the voice of the canon —
  Spolsky, Yegge, Graham, Mickens, Dijkstra, Brooks, Nystrom, Kleppmann,
  patio11. Invoke when the user wants to argue an idea about software,
  architecture, languages, or the craft — not a debugging war story
  (use debugging-story for that), not a tutorial, not a release note.
  The audience is working developers worldwide with taste and strong
  opinions of their own.
---

# Writing essays that outlive their stack

The great programming essays do one thing: they give the reader a handle
they didn't have before. *Leaky abstractions.* *Innovation tokens.* *The
kingdom of nouns.* *Worse is better.* *No silver bullet.* Ten years later
the language is gone but the phrase is still in your head. That is the
job. Everything else in this file serves it.

If you find yourself writing "in this post we will explore…" you are not
yet writing an essay. You are warming up. Cut the warm-up.

## The six moves

**1. Name the thing.** Coin a handle readers can reuse. Spolsky didn't
invent leaky abstractions, he named them. McKinley didn't invent "don't
add tech for fun," he called it an innovation token. The name is the
durable export. Before you start, ask: what am I naming? If nothing, the
essay isn't ready.

**2. Commit to a thesis inside the first three paragraphs.** Not teased.
Not hedged. The reader should know what you believe and be able to argue
with you by the time they're scrolling. Essays that survey the landscape
before taking a side are read once and cited never.

**3. If you pick a metaphor, ride it.** Yegge's medieval kingdom is not
decoration — it is the argument. Nystrom sustains *what color is your
function* for 4,000 words and never breaks. Half-committed metaphor is
worse than none. Either your whole essay lives in the metaphor's world or
the metaphor doesn't belong.

**4. Specifics, always.** Not "a common pattern in enterprise Java" —
name the class. Not "a popular framework" — name it, version it, link
the commit. Concrete detail is the smell of someone who has actually been
there. It cannot be faked and AI cannot fake it.

**5. Pull from outside the field.** Graham pulls from painting. Brooks
from theology. Norvig's *Teach Yourself Programming in Ten Years* works
because it's built on music pedagogy, not software. The outside reference
is how an essay escapes its era — React will not exist in 2040, but the
analogy will still read.

**6. Write toward one tattooable sentence.** *"All non-trivial
abstractions, to some degree, are leaky."* *"Organizations ship their org
chart."* *"Worse is better."* Every essay that's still cited has a line
you could put on a shirt. Know which sentence of yours that is before you
publish. If you can't find it, the essay hasn't earned the draft yet.

## Voice

**Do:**

- First person, confident, specific.
- Strong opinions stated strongly — then defended, not softened.
- Pull your examples from code that actually exists. Link it.
- Admit when you're arguing against a position you respect. Steelman once,
  then cut.
- Use real numbers. "47× slowdown," not "significantly slower." "2019,"
  not "a few years ago."
- Length that matches the idea. Dijkstra on `goto` is three pages. Yegge's
  *Kingdom* is twenty. Both correct. Both sized to the claim.

**Don't:**

- "In today's fast-paced world of software…"
- "Let's dive in" / "Let's explore" / "Let's take a look at"
- "On the one hand… on the other hand…" as a structural crutch.
- End with "What do you think? Let me know in the comments!"
- Pad with three-item lists where the third item is filler.
- Explain things the reader obviously knows. Motivated developers stopped
  reading when you defined `malloc`.
- Open with a dictionary definition of anything. Ever.

## The anti-AI purge list

Grep these out before shipping. Each one is a tell.

- `delve`, `dive into`, `unpack`, `walk through`, `explore`
- `leverage`, `robust`, `seamless`, `comprehensive`, `cutting-edge`,
  `powerful`, `innovative`, `scalable solution`
- `in conclusion`, `to summarize`, `in this blog post`
- `it's worth noting that`, `it's important to remember`
- `in the ever-evolving landscape of`
- `the intersection of X and Y`
- `game-changer`, `revolutionize`, `unlock`
- Parallel sentence padding: *"Not just X, but Y. Not just Y, but Z."*
- Any paragraph whose first sentence previews what the paragraph is about.
- Any section that exists only because the draft "needed a section there."

## Before and after

**AI-voiced:**

> In this post, we'll explore some common pitfalls that developers
> encounter when working with distributed systems. As applications scale,
> it becomes increasingly important to understand the tradeoffs involved
> in various architectural decisions, and microservices are no exception.

**Human-voiced:**

> Every year or so I watch a team discover, painfully, that their
> "microservices" are a distributed monolith with worse latency and a
> harder deploy story. This post is about why that keeps happening and
> three questions that catch it in the design review.

The second one names the pattern, takes a side, and puts a person in the
room. That is the whole trick. It is not a secret. It is just work.

## Three skeletons

Pick one. Don't try to combine them.

**A. Name-the-thing essay** *(Spolsky, McKinley, Brooks)*

```
[Concrete situation where the thing bites. One paragraph, in scene.]
[Name it. Bold it. Define it in one sentence.]
[Three examples of it in the wild. Specific projects, versions, links.]
[Why it exists. Root cause, not symptom.]
[What to do about it. Honest — often "nothing, just see it coming."]
[Close on the name, reframed. The sentence readers will steal.]
```

**B. Extended-metaphor essay** *(Yegge, Nystrom, Gabriel)*

```
[Open in the metaphor's world. Programming not mentioned yet.]
[Establish the metaphor's rules. Have fun with it.]
[Map to the programming situation. The reader should feel the click.]
[Push past cute. The metaphor has to earn its length by doing actual
 explanatory work. If it stops paying, the essay ends.]
[Step out of the metaphor for one clean line. Exit.]
```

**C. Contrarian take** *(Graham, Norvig, patio11)*

```
[State the consensus. Fairly. In one paragraph.]
[State your counter-claim. One sentence. Unhedged.]
[Evidence: personal experience, historical pattern, or actual data.
 Pick one and go deep. Don't try all three.]
[Concede what the consensus gets right. This is where trust is earned.]
[Sharpen the claim past where you started and close.]
```

## Length discipline

| Essay type          | Sweet spot      | Failure mode              |
|---------------------|-----------------|---------------------------|
| Name-the-thing      | 800–1,500 words | Overexplaining the name   |
| Extended metaphor   | 2,000–4,000     | Metaphor breaks, you pad  |
| Contrarian take     | 1,200–2,500     | Relitigating the obvious  |
| Technical explainer | 3,000–6,000     | No thesis, just a survey  |

If your draft is longer than the sweet spot, the idea isn't bigger — the
prose is looser. Cut 20%. The essay will be better. It always is.

## Reference cuts

When stuck, open one of these and steal the move:

- **Joel Spolsky, *The Law of Leaky Abstractions*** — how to name a
  phenomenon in 1,200 words and have it still quoted 20 years later.
- **Steve Yegge, *Execution in the Kingdom of Nouns*** — sustained
  metaphor, comic timing, mean in the way that lands.
- **Paul Graham, *Beating the Averages*** — essayistic voice, the
  Blub Paradox, how to pull in an outside-field reference.
- **Bob Nystrom, *What Color Is Your Function?*** — one idea, sustained,
  never lets go. A masterclass in not diluting a claim.
- **Martin Kleppmann, *Turning the Database Inside-Out*** — deep
  technical content in clean prose, with taste.
- **Patrick McKenzie, *Don't Call Yourself a Programmer*** — direct,
  specific career advice without motivational-poster energy.
- **James Mickens, *The Night Watch*** — humor as load-bearing structure.
- **Edsger Dijkstra, *Go To Considered Harmful*** — short and mean. The
  proof that an essay can fit on two pages.
- **Fred Brooks, *No Silver Bullet*** — how to distinguish concepts
  (essential vs. accidental) in a way readers keep using.
- **Richard Gabriel, *The Rise of Worse is Better*** — the three-word
  title that became a whole worldview.

## Final check

Read it aloud. Two tests:

1. **The Slack test.** Is there a sentence you'd paste into a group chat
   to end an argument? If not, the essay doesn't have its line yet.
2. **The 2040 test.** Strip out every library, language, and product
   name. Does the essay still have a point? If yes, ship. If no, the
   point was the stack, not the idea — and the essay will rot with it.

If both pass, you're done. Post it.

Attribution

juspayjuspay
View sourceSee grades on GitHubMore from juspay →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Clean Code

Pragmatic coding standards - concise, direct, no over-engineering, no unnecessary comments

304955 votes

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

286712 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2222 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Writing Plans

Use when you have a spec or requirements for a multi-step task, before touching code

2927051 votes
View all in development →