frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Writing a good design document

https://grantslatton.com/how-to-design-document
148•kiyanwang•5h ago

Comments

patrickmay•4h ago
Two quotes from the article stand out. First, from the X screenshot: "something about the process of writing makes your ideas 10x better". Second from near the beginning: "The most important person to convince is the author."

Design documents are so essential that even after mumble years in the industry, I am amazed when people, including putative "Product Managers" push back on the idea. As Leslie Lamport noted, "Writing is nature's way of telling us how sloppy our thinking is."

For those wanting to learn how to improve the quality of their technical writing, see Write Like an Amazonian: https://medium.com/@apappascs/write-like-an-amazonian-14-tip...

apwell23•3h ago
> Replace adjectives with data

I think this idea got so pervasive all throughout tech that all the resumes that i now get are filled with so many numbers that i don't even know what to make of them.

kingkongjaffa•3h ago
99% of bullet points containing numbers in a resume are made up, hamfisted BS, the other 1% cannot be attributed to a single individual so putting them in a personal resume is silly.
Lich•3h ago
I don’t blame people for doing so. That’s what they have been told by recruiters to do to increase their chance of their resume not being thrown into the trash or be invisible. If there is someone to blame for this, it’s the recruiting industry.
corytheboyd•2h ago
It’s so dumb. There is no way to verify the numbers, and yet, this stupidity weaseled its way into the LinkedIn cinematic universe of corporate bullshit. The same point but without the “X by Y%” hits the same for me— besides I know what questions to ask to judge if you are actually capable of moving the needle, which is all I care about as a conductor of interviews.
slt2021•1h ago
the problem is CVs are screened by non-tech HR/recruiters, who lack the capacity to screen candidates. Because it is much easier to apply online with one click, each position is spammed with millions of CVs.

in response, for HR it is much easier to filter out CV if it lacks style, not substance. Therefore they look at bullet points like "Done X by Y%".

The proper way should be to limit the intake funnel: accept only a few applications per job, so that they can be screened properly by HRs by calling them, and talking to them and properly screening (old school style), instead of tossing their resume to the bin after 15 sec quick review

dasil003•41m ago
I agree with the sentiment, but not the conclusion. Sure, numbers can be abused, just like anything else, but they provided specificity which you can then interrogate and call bullshit on. I won't necessarily fault someone for leaving off the numbers and just speaking qualitatively to the large scale system rewrite they did, but it's harder to evaluate whether such an effort was indeed warranted or was just a lateral move post-hoc rationalized by an engineer who didn't understand the original system and needed to rewrite it just to achieve that understanding. Again, if someone is satisfying the business with such efforts, more power to them. As a hiring manager, I don't want to get into a subjective evaluation of the relative engineering value of specific work at an external company that I have no first-hand context on, but I do want to know that candidates understand the highest level goals they are hired to contribute to. Metrics, however flawed, give a good entry point into such conversations.
MOARDONGZPLZ•3h ago
If I get one more resume from a “seasoned professional” who has “decreased X by N%” I am going to close hiring, quit tech, and go be a hermit.

N.B. I received such a resume while typing this comment and am absconding to Outer Mongolia as I type

atomicnumber3•18m ago
What do you want to see, then? Colorful prose?

I and a few others really did save my company 10 million dollars one year. It was in EC2 spend for a hadoop cluster. I can tell you how we did it and who did what. Yes it was actual dollars we would have otherwise paid to AWS, it is not funny money calculated by looking at sticker rates and ignoring our discounts (which were large).

I'm proud of this and it was one of my largest impacts at the company. What would you have me put on my resume? "Decreased EC2 spend by a whole bunch!"? "Reduced EC2 spend"?

I don't get where this hatred of numbers on resumes is coming from. Is much of it probably bullshit? Yeah, just like most resumes. But I expect you to sort through it the same way you do the rest of the resume. Ask them about it. I can tell you the whole story of mine. I'd expect others can do the same. And if they stammer and crack, now you know how exaggerated it was.

matt-p•4h ago
I sometimes even write design docs that will probably only ever really be read by me. It's so powerful to write these things down.

A example doc would of been really helpful, I'd love to compare the final structure of mine with others.

kator•4h ago
7.5 Years at Amazon, and even for my side projects, I write PRFAQs and share them with my stakeholders to gather feedback. I'm a PMT at Amazon, but in my alternative life, I code on many projects, and develop infrastructure, architecture, etc, and enjoy writing as much of it as I can.

That said, work back from your customer!

01HNNWZ0MV43FF•3h ago
Hadn't seen it that way - PR/FAQ - Press Release / Frequently Asked Questions https://productstrategy.co/working-backwards-the-amazon-prfa...
kator•2h ago
I also added an Appendix "Technical Stack Considerations," but I like the PR and the FAQ's to focus on the customer/end-user's needs. The technical details matter, but they serve the customer outcome, not the other way around.

A recent project's tech appendix had headers like "Core Technology Philosophy", "Backend Architecture", "Frontend Architecture", "Service Architecture", "Infrastructure and Deployment", "Security Architecture", "Performance Requirements", "Configuration Management", "Backup & Disaster Recovery", "Development Workflow", "Network Architecture", "Resource Management", "Development Principles", and "Scalability Considerations".

The beauty is that by the time you get to the technical appendix, you've already validated what you're building and why it matters. The technical choices then flow naturally from the customer requirements rather than driving them.

alphazard•4h ago
> work at a place with a writing culture

I would extend that to working at a place with a design culture. That is engineers prefer to work on projects that have been designed including a written plan before starting. And mistrust or avoid leaders that cannot plan in writing, and projects that have not been planned.

jmbwell•3h ago
All of this, plus, writing the documentation before building the app. I remember a Dilbert cartoon making fun of this being about the time I started realizing Dilbert wasn’t as smart as I had thought.

If you can’t write the documentation before you’ve written the code, you don’t understand well enough what you’re building the code for.

It’s one thing to jump into code because it’s fun to write code. But writing code is not designing software, and vice versa.

Same goes for APIs. Writing docs for an API that doesn’t yet exist can help create a much more complete and coherent API.

This is why I’m often trying to help stakeholders understand that the vast majority of software development has very little to do with actually writing code.

Herein also lies a concern I have about AI assisted development. It can be a powerful aid to the design stages, and it can be a powerful aid to writing code, but I’m not sure it enables skipping the design aspects altogether and somehow coming up with a complete, coherent product.

apwell23•3h ago
Dilbert was just a normal person with average intelligence. His intelligence was magnified by ppl around him.
B-Con•3h ago
As a design reviewer, I think all design authors should internalize this concept:

> But a good doc will lay out the problem and mental models in a way that the solution that took weeks of hard thought to invent will be clear to the reader by the time the doc presents it.

Perhaps my favorite quote is: "If I had more time, I would have written a shorter letter."

Design docs should make complex things simple. They should not be a dumping ground for all the intellectual hardships and false starts the engineer went through. It may still worth capturing this, but that should be in another doc, or at least an appendix. Keep the path forward simple and understandable.

dkdcio•1h ago
I prefer "more time, shorter letter"
norseboar•3h ago
I love docs written like this, and writing culture generally. But I've also seen something like this backfire a bit.

I think this approach is particularly good for docs where the assumption is the audience wants to understand why you reached the conclusions you came to, and the doc is sort of a persuasive argument. I think this is a valuable doc (and how I like writing and reading), but it is not always the case.

I think often you do want to start with the conclusion, the "end" so to speak, to orient the reader. And also to address the reader who trusts your judgement, and just wants to get up to speed. I've seen a lot of cases where the audience might not be ready/want to follow along w/ a train of reasoning, they want to know the punchline. And once they do, then they might want to follow up.

kingkongjaffa•3h ago
> Think of a design document like a proof in mathematics. The goal of a proof is to convince the reader that the theorem is true. The goal of a design document is to convince the reader the design is optimal given the situation.

We don't need to veneer technical writing in faux rigour for it to be worthwhile. That's the silly stuff that belongs on LinkedIn.

This kind of psuedo-rigor feels good to nod along to, but it's nonsense.

'We're not writing code, we're programming', 'we're not just programming, we're doing software engineering', and now 'we're not doing software engineering we're doing rigorous proof based mathematics' all of a sudden.

IDK how you write 'Think of a design document like a proof in mathematics.' without feeling at least a little bit silly.

> The goal of a design document is to convince the reader the design is optimal given the situation.

A proposed design may be optimal, or it may not, but the purpose of a design document is not to prove that the proposed design is optimal by any definition.

In a software development setting you're virtually NEVER formally proving anything, nevermind optimality.

You're writing technical fiction based in reality, nothing more. It's not a 'proof' of anything.

You're convincing stakeholders that your proposal can be feasibly built, is viable to run in the ecosystem of the rest of your codebases and infrastructure, and satisfies whatever business requirements that led to someone asking you to create a new $thing the design doc is aiming to propose the technical solution for.

Nothing more IMHO.

If your doc isn't doing those things then it's not effective, if it's giving the illusion of trying to do more than those things then it's just theatre.

The rest of the article is standard good writing advice, but can we not put design docs and PRFAQs on an altar as anything more than technical business fiction to communicate ideas and proposals for scrutiny to stakeholders.

klinquist•3h ago
Perfect for dragging into my context window :). Thanks!
ChrisMarshallNY•2h ago
That note in the tweets above, spoke to me.

I'm usually the only person that ever reads my docs, so I write docs for me.

I also often write design docs during, and sometimes after my projects.

I call it Forensic Design Documentation[0].

[0] https://littlegreenviper.com/miscellany/forensic-design-docu...

ryanmadden•2h ago
In my experience, organization/clarity is the biggest hurdle for SWEs trying to improve their doc writing. I like the author's spaghetti code analogy for the importance of idea organization within a doc -- I've struggled to convey the same concept before and I will use this in the future. In the past I've talked about 'ferrying' the reader through your thought process but this post explains the concept in a more familiar way.

I wrote a similar post last year[0] and it was interesting to see the similarities (concision, importance of practice) and differences with someone from a different company. I'm not sure I agree about 'short paragraphs' -- that may be a natural consequence of high information density writing but line breaks themselves aren't much help if the ideas aren't distilled. The 'Editing' section gets at that underlying idea more directly imo.

[0]https://ryanmadden.net/things-i-learned-at-google-design-doc...

blamestross•2h ago
I wish i was allowed by my employer /organization/work culture to write DD in a format this reasonable.
lastdong•2h ago
Taking a class in technical writing greatly improved my ability to summarize written documents. The course emphasized a “cut with a red pen” approach (write, cross out, rewrite), which focused on using as few words as possible to communicate concepts and ideas clearly. This method has multiple layers and becomes easier with practice. I also try to share this knowledge with the teams I work with, but it’s important to remember that it’s a skill that requires regular training.
farkin88•2h ago
Solid advice on clarity and editing. The only gap is what happens after the doc is approved? Without upkeep it decays into "design archaeology." A few years ago, Andrew Harmel-Law wrote about an interesting approach to scaling architecture conversationally, which includes lightweight Architecture Decision Records (ADRs) as one tool that could help here. ADRs live beside the code (adr/001-use-postgres.md) and capture context, decision, and status in a format short enough to, I think, revisit in every PR and easy to supersede when reality changes so the original rationale stays searchable months later.

Here’s a link to Harmel-Laws’post if anyone's interested: https://martinfowler.com/articles/scaling-architecture-conve...

gerdesj•1h ago
I'm going to have to read that MF.com link fully and properly but I can't help but notice this:

"That’s it. That’s the Advice Process in its entirety." (speak to everyone involved).

Presumably anyone with the term Managing as a prefix in their job title is expected to glaze over at roughly this point.

Then we get to the meat: "The four supporting Elements". So I try to find out about ADRs:

I follow the first link:

https://www.thoughtworks.com/radar/techniques/lightweight-ar...

and eventually end up with this beauty (big download button at the bottom of the page from above):

https://www.thoughtworks.com/content/dam/thoughtworks/docume...

Would you mind pointing us at an actual definition of ADRs, please?

farkin88•1h ago
There are so many external links, it's easy to get lost in this article. Look under content for the section titled "1. A Thinking and Recording Tool: Decision Records." It's under "The Four Supporting Elements." Here's a direct link if it's easier https://martinfowler.com/articles/scaling-architecture-conve... (Just search on that page for "The Four Supporting Elements)

There Harmel-Law defines ADRs as "lightweight documents, frequently stored in source code repositories alongside the artefacts they describe." He also provides a handy "Elements of an ADR" table. Let me know if you're still having problems finding it.

commandersaki•15m ago
This is the case with Session messenger. It's been so many design and architectural changes that there's no single place that is authoritative of how it operates and works.

Btw use Signal if you want secure messaging, full stop.

breckognize•1h ago
It's worth noting the author led the implementation of the file system at the bottom of S3.
xrd•1h ago
The opposite of this is a culture where "we just work it out in slack."
miggy•32m ago
At my company, we went from using detailed RFCs to one-pagers, and eventually to writing no formal docs at all. Over time, RFCs turned into artifacts optimized for promotions rather than alignment or clarity. In many cases, people ended up spending more time crafting the perfect document than actually implementing the solution.
marc_abonce•26m ago
Actually, I often find that old Slack conversations can be the most helpful representation of how a program works in real life and how to troubleshoot it and workaround its shortcomings. The official documentation is often too concerned to be concise and "pure" (OP compares it with a mathematical proof) so it only represent an idealized version of a software that didn't ever exist.
mtlynch•44m ago
>Amazon meetings start with the presenter passing out copies... of a prose document... The meeting starts with everyone sitting in silence, reading the document, and adding notes and questions in the margins with red pen.

I've never worked at Amazon, but I've heard this a lot, and it always strikes me as an odd practice. Odder still is that it apparently works and everyone I hear talk about it seems to love it.

You're squandering precious meeting time by having everyone sit and read a document together. They could easily do the same thing ahead of the meeting, and you'd have much shorter meetings.

And doing it synchronously means everyone either sits idle until the slowest reader is ready or not everyone gets to finish in time. And "slowest reader" isn't even just about reading speed. Presumably, some people can understand the document more quickly because they have more context.

In design reviews at Google, it was obvious that the majority of attendees came unprepared and were reading the docs for the first time while their teammates were discussing the doc. I suspect that the reason was that Google just didn't have a strong docs culture, and leads/managers quietly tolerated people coming unprepared (and sometimes, they themselves were unprepared).

I've never seen it done in practice, but I don't think it would be hard to have the best of both worlds where people review docs ahead of the review meeting, but there are strong cultural norms around reading docs ahead of time so the meeting is just for discussion, not just for reading or pretending that you've read.

prpl•36m ago
you squander sooo much more time whenever people are not on the same page, or if people are worried you didn’t cover their corner case.
c-linkage•30m ago
In my experience if it doesn't happen in a meeting it doesn't happen.
Uehreka•29m ago
> They could easily do the same thing ahead of the meeting, and you'd have much shorter meetings.

Amazon’s practice is a reaction to the fact that nobody actually does this. According to the article I read about this years ago, they realized that “creating a strong culture around reading before the meeting” also isn’t possible because many attendees had a meeting before this one, and couldn’t prepare for that meeting because they had a meeting before that, etc.

On paper you could punch a ton of holes in this: Why not reduce the number of meetings people have to attend? Doesn’t the reading reduce the amount of time available in the meeting to actually make decisions? But it would seem that in practice they found that the meetings people were attending did in fact have value, and that even with the reading time a lot of decisions got made.

So this may just be one of those things where you have to look at the results instead of worrying about what could theoretically be done differently. And it sounds like people really like the results and that the benefits of this approach outweigh the drawbacks, at least at Amazon.

cadamsdotcom•43m ago
One process that can work:

Step 1. Brain dump into a doc (consider using dictation to get more thoughts down faster)

Step 2. Have an LLM give it structure & progression. You are ordering your thoughts for readability, so you'll probably want to throw it away. You're still refining your thoughts at this stage.

Step 3. Take the LLM output as a starting point, or write an outline from scratch. Flesh it out into a first draft

Step 4. simplify: cut words, swap big words for small words, etc.

Step 5. Repeat step 4.

LLMs bridge the gap from word-vomit to structure. You should be willing to throw away what you get from the LLM.

At least 30% can always be cut. It's amazing how much can be trimmed without losing the intent.

prpl•32m ago
Expand, condense, compress, expand, compress.

Then somebody comes along and asks about something specific, so you expand.

Finally they use an LLM to compress after their pet idea was satisfied.

It’s crazy really, we’re just on a never ending rollercoaster here.

commandersaki•26m ago
The meeting starts with everyone sitting in silence, reading the document, and adding notes and questions in the margins with red pen. Watching people mark up the document you spent so much time polishing is a strong forcing function to become a better writer.

Hated this about Amazon; I need to be in a certain state of mind when reading technical prose which is hard to arouse on a whim. Happy to make and submit edits prior to meeting and then discuss. I also much prefer token passing when making modification of the document, rather than simultaneous people marking it up.

Modern Node.js Patterns

https://kashw1n.com/blog/nodejs-2025/
348•eustoria•6h ago•147 comments

Typed languages are better suited for vibecoding

https://solmaz.io/typed-languages-are-better-suited-for-vibecoding
23•hosolmaz•1h ago•6 comments

Writing a good design document

https://grantslatton.com/how-to-design-document
148•kiyanwang•5h ago•40 comments

Persona vectors: Monitoring and controlling character traits in language models

https://www.anthropic.com/research/persona-vectors
281•itchyjunk•8h ago•94 comments

So you want to parse a PDF?

https://eliot-jones.com/2025/8/pdf-parsing-xref
62•UglyToad•3h ago•36 comments

How to grow almost anything

https://howtogrowalmostanything.notion.site/htgaa25
40•car•2h ago•12 comments

If you're remote, ramble

https://stephango.com/ramblings
672•lawgimenez•15h ago•370 comments

Names are not type safety (2020)

https://lexi-lambda.github.io/blog/2020/11/01/names-are-not-type-safety/
23•azhenley•2h ago•4 comments

Life, Work, Death and the Peasant: Family Formation

https://acoup.blog/2025/08/01/collections-life-work-death-and-the-peasant-part-iiia-family-formation/
59•Khaine•1d ago•0 comments

A study of lights at night suggests dictators lie about economic growth (2022)

https://www.economist.com/graphic-detail/2022/09/29/a-study-of-lights-at-night-suggests-dictators-lie-about-economic-growth
70•mooreds•2h ago•23 comments

Shrinking freshwater availability increasing land contribution to sea level rise

https://news.asu.edu/20250725-environment-and-sustainability-new-global-study-shows-freshwater-disappearing-alarming
117•ornel•5h ago•46 comments

Welcome to url.town, population 465

https://url.town/
95•plaguna•1d ago•11 comments

"If you can rack it, you can run UniFi OS" Ubiquiti self-hosted UniFi OS release

https://deluisio.com/networking/unifi/2025/08/03/everything-you-need-to-know-about-unifi-os-server-before-you-waste-time-testing-it/
29•codydeluisio•4h ago•1 comments

This Old SGI: notes and memoirs on the Silicon Graphics 4D series (1996)

https://archive.irixnet.org/thisoldsgi/
68•exvi•10h ago•3 comments

2,500-year-old Siberian 'ice mummy' had intricate tattoos, imaging reveals

https://www.bbc.com/news/articles/c4gzx0zm68vo
181•dxs•3d ago•50 comments

Learnable Programming (2012)

https://worrydream.com/LearnableProgramming/
7•kunzhi•2h ago•0 comments

System-Wide Safety Project

https://www.nasa.gov/directorates/armd/aosp/sws/
5•pieterk•1d ago•0 comments

Cloud Drawing Gallery

https://cloudgazing.online/
10•speckx•2d ago•0 comments

Tokens are getting more expensive

https://ethanding.substack.com/p/ai-subscriptions-get-short-squeezed
210•admp•14h ago•150 comments

Twenty Eighth International Obfuscated C Code Contest

https://www.ioccc.org/2024/index.html
313•mdl_principle•21h ago•89 comments

UN report finds UN reports are not widely read

https://www.reuters.com/world/un-report-finds-united-nations-reports-are-not-widely-read-2025-08-01/
238•anjneymidha•8h ago•101 comments

Converge (YC S23) well-capitalized New York startup seeks product developers

https://www.runconverge.com/careers
1•thomashlvt•8h ago

How to make almost anything (2019)

https://fab.cba.mit.edu/classes/863.19/CBA/people/dsculley/index.html
143•teleforce•14h ago•21 comments

Schematra: A Sinatra love letter in Scheme

https://github.com/rolandoam/schematra
15•funkaster•2d ago•2 comments

The Ski Rental Problem

https://lesves.github.io/articles/ski-rental/
53•skywalqer•4d ago•70 comments

Lina Khan points to Figma IPO as vindication of M&A scrutiny

https://techcrunch.com/2025/08/02/lina-khan-points-to-figma-ipo-as-vindication-for-ma-scrutiny/
374•bingden•1d ago•370 comments

Build Your Own Minisforum N5 Inspired Mini NAS

https://jackharvest.com/index.php/2025/07/27/build-your-own-minisforum-n5-inspired-mini-nas-a-comprehensive-guide/
120•LorenDB•4d ago•37 comments

A Real PowerBook: The Macintosh Application Environment on a Pa-RISC Laptop

http://oldvcr.blogspot.com/2025/08/a-real-powerbook-macintosh-application.html
127•todsacerdoti•18h ago•21 comments

The Fulbright Program: Chock Full of Bright Ideas

https://bastian.rieck.me/blog/2025/fulbright/
64•Pseudomanifold•12h ago•14 comments

EHRs: The hidden distraction in your doctor's office

https://spectrum.ieee.org/electronic-health-records
58•pseudolus•15h ago•55 comments