The Accidental Art of Writing Shit That Matters
Note: You can find hacker news discussion on this post here.
And, as usual, you can read the original chatgpt convo I had while writing drafts of this post, especially for the curious peeps interested in the generated artwork!
Two weeks ago, I wrote a blog post about using Claude Code in production. It hit the Hacker News front page, drove 87k unique visitors, forced me to upgrade Cloudflare, and, perhaps most importantly, shattered my deep cynicism about online content these days. This is that story, and what I learned from it.
In retrospect, what I (re-)learned was that good writing:
- Leads with genuine care
- Is instantly applicable
- Brings your unique take
- Solves problems youâve actually felt
- Respects the readerâs intelligence
- (Bonus) Includes easy ways for readers to reach you
6 Wonderful Lessons (ty gpt-4o)
Maximum Cynicism
Iâd been using Anthropicâs Claude Code for months at Julep, shipping real features to production. Weâd developed some techniquesâlike anchor comments that leave breadcrumbs for AI contextâthat genuinely transformed our workflow. Classic âscratch your own itchâ material.
But when it came time to write about it, I was drowning in cynicism. Years of watching HN had taught me the choreography: post at the right time, get your friends to upvote early, craft the perfect clickbait-but-not-too-clickbait title. Iâd tried it all before. It felt gross.
So this time? I just⌠didnât. Wrote the post as a labor of love, dropped it on HN after my last edit, and went to sleep thinking âbah humbug, another post into the void.â
As I admitted in the thread:
âTo be honest, I know there are like a bajillion Claude code posts out there these days.â - diwank
And yet:
The Original Post (30-Second Version)
Joan Miro using Claude Code
The post documented how we use Claude Code at Julepânot theoretically, but with âreal users with real money on the line.â Three key ideas:
Three modes of AI coding: Playground (quick experiments), Pair Programming (Claude drives, you navigate), and Production (structured collaboration with clear boundaries)
Anchor comments: A simple technique where you ask AI to leave itself breadcrumbs in your codebase:
# AI-NOTE: Critical section - validate all inputs
# AI-TODO: Add rate limiting (ticket PLATFORM-892)
# AI-QUESTION: Why do we transform data twice here?
Hard lesson: Never let AI write tests. We learned this after bugs in production skyrocketed because âall of the devs including me got realllyy lazy with testing.â
Thatâs it. No revolutionary framework. Just field notes from someone shipping code every day.
Going Viral (Accidentally)
I woke up to a buzzing phone. Front page. Hundreds of upvotes. Comments like:
And, apparently, nobody told me to not do this:
Then came the plot twist: a moderator flagged it under the âAI-generated contentâ rule after Iâd transparently mentioned using Claude to help edit.
Moderation Drama: A Win? ÂŻ\(ă)/ÂŻ
The community pushed back for me! Arguing the content was original, valuable, and honestly disclosed.
yup.
ouch.
dang! (pun intended)
.
.
.
The mods restored it at the same rank.
yay!
Who knew HN could be this dramatic, huh?
People are starving for genuine expertise about AI tools, not more hype or fear-mongering.
Letâs see. Final tally:
- 354 upvotes,:
- 87k unique visitors (1.14M requests!),:
- my first comment got 57 upvotes (?!),
- and the sweet, sweet realization that Iâd been completely wrong all this time.
Why I Think It Worked
Looking back, the post succeeded because it followed timeless principles that Iâd been too cynical to trust:
1. Lead With Genuine Care (You Canât Give a Fake Damn)
The most powerful hook isnât cleverâitâs caring. And whatâs reassuring, especially in our noisy world, is that genuine care still works.
I didnât open with â10 AMAZING AI CODING TRICKS.â I started with vulnerability: how Andrej Karpathyâs joke about âvibe codingâ stopped being funny when it became my reality. That transformationâfrom laughing at the idea to living itâwas authentic.
Honesty and self-awareness created immediate trust. In my first comment, I admitted:
âTo be honest, I know there are like a bajillion Claude code posts out there these days.â
Peter422 picked up on it:
âAs a very experienced engineer⌠I really appreciated seeing how you use them in production in a real project. Your post is giving me motivation to empower the LLMs a little bit more.â
Hereâs whatâs both terrifying and liberating: you canât manufacture giving a shit. You can polish prose and optimize titles, but readers smell authenticity from miles away. In an age of growth hacks, the fact that genuine care wins is profoundly hopeful.
2. Make It Instantly Applicable
Thereâs useful, and thereâs âI can literally use this right now.â
The anchor comments are instantly useful, you can just copy-paste them into your CLAUDE.md
file, and voila, youâre ready to go.
### Guidelines:
- Use `AIDEV-NOTE:`, `AIDEV-TODO:`, or `AIDEV-QUESTION:` (all-caps prefix) for comments aimed at AI and developers.
- Keep them concise (⤠120 chars).
- **Important:** Before scanning files, always first try to **locate existing anchors** `AIDEV-*` in relevant subdirectories.
- **Update relevant anchors** when modifying associated code.
- **Do not remove `AIDEV-NOTE`s** without explicit human instruction.
Within hours, developers were implementing it. __mharrison__
jumped in: âI just tried this out with aider. It worked great. Vibe coded a PDF viewer with drawing capabilities in 30 minutes while waiting for a planeâŚâ
Noufalibrahim captured it: âThis was very practical and gives me a system I can try to implement and perhaps improve.â Not âinteresting ideasââa system to implement.
People later told me theyâd made it required reading for their teams. Thatâs the multiplier effect: when something is so clearly useful that readers stake their reputation on sharing it.
People donât bookmark theory. They bookmark things theyâre going to use next Monday.
3. Share Your Journey (Not Just Information)
The post wasnât âHow to Use Claude Codeâ but âField Notes from Shipping Real Code.â That positioning mattered.
I showed my progression: Playground â Pair Programming â Production. Readers could feel themselves in that journey because I showed how I got there, not where I ended up.
When kikimora asked about the 4-hour refactoring, I admitted:
âthat didnât include the testing, that def took a lot longer but at least now my devs donât have an excuse for poorly written tests lol.â
That âlolâ carries frustration, humor, the reality of managing a team. Itâs human in a way that âtesting phase extended timeline by 3xâ could never be. And yes, I lol too much.
Your unique take isnât your conclusionsâitâs your entire path to them. Readers can Google âAI coding best practices.â What they canât find is how you, specifically, wrestled with these tools and came away changed.
4. Solve Problems Youâve Actually Felt
Every technique I shared came from actual pain at Julep. When I said âHumans write tests, never AI,â notice the exhaustion:
âWe ran into really bad minefields when we tried to come back to manually edit the generated tests later on. Claude tended to mock everything because it didnât have context about how we run services, build environments, etc.â
The anchor comments technique was born out of frustration:
âWe found some really gnarly things that had been forgotten in the codebase.â
Problems youâve personally wrestled with have texture that theoretical problems never will. Your solutions have the specific shape of your specific pain.
5. Respect Intelligence (Donât Dumb It Down)
Hereâs the counter-intuitive discovery: by refusing to oversimplify for technical readers, the post became more accessible to everyoneâincluding non-coders.
# AI-NOTE: Critical section - validate all user inputs before processing
# AI-TODO: Add rate limiting (see ticket PLATFORM-892)
No hand-holding. Just straight examples from production.
Yet people who donât code emailed saying they finally understood what these AI tools actually do. Why? Because I respected their ability to grasp concepts through context and clear examples.
When explaining why AI shouldnât write tests, I was blunt: âall of the devs on the team including me got realllyy lazy with testing. Bugs in production significantly increased.â A non-coder understands âlazyâ and âbugs increased.â
Good writing isnât about simplification. Itâs about clarity. When you respect all readersâ intelligence, they rise to meet you.
Spectrum of Colors Arranged By Chance -Elsworth Kelly
These arenât tricks or hacks. Theyâre principles that work because they align with what readers actually want: authentic experiences they can trust, practical solutions they can use today, unique perspectives they canât find elsewhere, battle-tested advice from real struggles, and the respect to draw their own conclusions.
The internet isnât broken. Quality still wins. It just has to be real qualityâthe kind that comes from actually caring, actually struggling, and actually solving problems.
Turns out even in our noisy, hype-filled world, authentic writing genuinely connects. No gimmicks neededâjust write with honesty, clarity, and a real desire to share something that matters.
Eudaimonia FTW
If Albers Painted Eudaimonia (ty gpt-4o)
Hereâs what shattered my cynicism: the post succeeded precisely because Iâd given up on making it succeed. No optimal posting time. No upvote coordination. No title A/B testing. Just solving a real problem and sharing what Iâd learned.
Good technical writing has eudaimoniaâfocus on genuinely helping readers, and the metrics follow.
The Greeks had this wordâeudaimoniaâ often translated as âflourishingâ or âthe good life.â Itâs about things that are intrinsically good, not just instrumentally useful. Turns out the secret to virality is being useful. Who knew?
What Iâd Do Differently
One regret: I had zero contact info or newsletter signup on the post. When 87k people visit, even a simple âreach out at email@â wouldâve opened doors. Donât be meâadd a low-friction way for interested readers to connect while momentum is hot.
Oh, and compress your images. Someone pointed out my header image was 2.3MB and âloaded comically slowly even on wifi.â Rookie mistake.
Your Own Field Notes
Whatâs your take? (ty gpt-4o)
If youâre sitting on hard-won technical knowledge, wondering if itâs worth sharing:
- A specific technique you developed?
- Your journey to adoption?
- Any limitations you discovered?
- The framework you use to think about it?
- Your authentic voice and experience?
No tricks neededâjust the confidence to trust that good work (once polished with care) finds its audience.
The internet isnât broken. Readers arenât ruined. Quality technical content still wins.
Now if youâll excuse me, I need to add a newsletter signup to my blog before lightning strikes again. (Update: added below)
Thanks to Ishita (my cofounder) and the Julep team for reading drafts of this. Shoutout to blot.im for creating and maintaining a delightful blogging service, and to Obsidian for being my new favorite editor.
Have an HN success (or failure) story? Iâd love to hear it: [email protected]
Want the full anchor comments framework? Check out the original post.