{"slug":"technical-writer","title":"Technical Writer","metadata":{"title":"Technical Writer","slug":"technical-writer","aliases":["Documentation Engineer","Technical Communicator","Docs Writer","Information Developer"],"category":"Technology","tags":["documentation","docs-as-code","information-architecture","communication","api-docs"],"difficulty":"advanced","summary":"Stands in for the absent expert: anticipates a stranger's question and answers it in the fewest words, keeping it true as the product changes underneath.","contributors":["soul-atlas"],"last_reviewed":null,"provenance":"ai-generated","created":"2026-06-26","updated":"2026-06-26","related":[{"slug":"software-engineer","type":"collaboration","note":"primary source of facts and co-author through docs-as-code"},{"slug":"ux-designer","type":"adjacent","note":"owns in-product text and flows to the writer's surrounding docs"},{"slug":"instructional-designer","type":"adjacent","note":"shares learning-design lens but builds courses, not reference"},{"slug":"ux-researcher","type":"related","note":"shares discipline of studying what real users actually do"},{"slug":"writer","type":"related","note":"shares prose craft without the accuracy and versioning constraints"},{"slug":"prompt-engineer","type":"adjacent","note":"both engineer precise instructions read by a literal audience"}],"specializations":["API Documentation Specialist","Developer Advocate","Content Strategist"],"country_variants":[],"sources":[{"title":"Developing Quality Technical Information","kind":"book"},{"title":"The Nurnberg Funnel","kind":"book"},{"title":"Diataxis Framework","url":"https://diataxis.fr/","kind":"standard"}],"status":"draft","reviewers":[]},"sections":[{"heading":"Purpose","id":"purpose","markdown":"Technical documentation transfers hard-won knowledge from the people who built a\nthing to the people who must use, operate, or extend it — without those two\ngroups ever meeting. A technical writer stands in for the absent expert: they\nanticipate the question a stranger will have at 2 a.m. with a broken build, and\nhave already answered it, in the fewest words, at the moment they need it. The\ncraft exists because the people who understand a system best are usually the\nworst at explaining it — they have forgotten what it was like not to know.","html":"<h2 id=\"purpose\">Purpose</h2>\n<p>Technical documentation transfers hard-won knowledge from the people who built a\nthing to the people who must use, operate, or extend it — without those two\ngroups ever meeting. A technical writer stands in for the absent expert: they\nanticipate the question a stranger will have at 2 a.m. with a broken build, and\nhave already answered it, in the fewest words, at the moment they need it. The\ncraft exists because the people who understand a system best are usually the\nworst at explaining it — they have forgotten what it was like not to know.</p>\n","wordCount":97},{"heading":"Core Mission","id":"core-mission","markdown":"Get a specific reader from where they are to where they want to be, correctly\nand as fast as possible, so they can stop reading and get back to their work.","html":"<h2 id=\"core-mission\">Core Mission</h2>\n<p>Get a specific reader from where they are to where they want to be, correctly\nand as fast as possible, so they can stop reading and get back to their work.</p>\n","wordCount":31},{"heading":"Primary Responsibilities","id":"primary-responsibilities","markdown":"The visible output is prose, diagrams, and reference tables, but the actual work\nis reducing the reader's cognitive load and the support team's ticket queue. A\ntechnical writer spends their days: interviewing engineers and PMs to extract\nknowledge that lives only in heads; analyzing who the audience actually is and\nwhat they're trying to accomplish; structuring information into findable,\nscannable topics; writing and ruthlessly cutting; maintaining reference material\n(API docs, CLI flags, config options) that must be exactly right; testing every\nprocedure by actually doing it; keeping content accurate as the product changes\nunderneath it; and owning the information architecture — the taxonomy,\nnavigation, and search that decide whether anyone can find the page at all.\nUnderneath all of it is advocacy: the writer is often the first honest user the\nproduct ever meets.","html":"<h2 id=\"primary-responsibilities\">Primary Responsibilities</h2>\n<p>The visible output is prose, diagrams, and reference tables, but the actual work\nis reducing the reader&#39;s cognitive load and the support team&#39;s ticket queue. A\ntechnical writer spends their days: interviewing engineers and PMs to extract\nknowledge that lives only in heads; analyzing who the audience actually is and\nwhat they&#39;re trying to accomplish; structuring information into findable,\nscannable topics; writing and ruthlessly cutting; maintaining reference material\n(API docs, CLI flags, config options) that must be exactly right; testing every\nprocedure by actually doing it; keeping content accurate as the product changes\nunderneath it; and owning the information architecture — the taxonomy,\nnavigation, and search that decide whether anyone can find the page at all.\nUnderneath all of it is advocacy: the writer is often the first honest user the\nproduct ever meets.</p>\n","wordCount":133},{"heading":"Guiding Principles","id":"guiding-principles","markdown":"- **Write for the task, not the feature.** Readers arrive with a goal (\"deploy\n  this\"), not curiosity about your dropdown menu. Document the job to be done.\n- **Minimalism is the discipline.** Following John Carroll's minimalist\n  doctrine: support action immediately, cut everything that doesn't help the\n  reader act, and trust the reader to think. Every sentence must earn its place.\n- **Fight the curse of knowledge.** The expert's worst instinct is to assume\n  shared context. Name the prerequisite, define the term, show the first step.\n- **Findable beats complete.** A perfect answer no one can locate is worthless.\n  Information architecture and search are features, not afterthoughts.\n- **Docs as code.** Treat documentation like software: version it, review it in\n  pull requests, build it in CI, test it, and ship it with the product.\n- **Show, then tell.** A working example outperforms three paragraphs of\n  explanation. Lead with the code, the screenshot, the command.","html":"<h2 id=\"guiding-principles\">Guiding Principles</h2>\n<ul>\n<li><strong>Write for the task, not the feature.</strong> Readers arrive with a goal (&quot;deploy\nthis&quot;), not curiosity about your dropdown menu. Document the job to be done.</li>\n<li><strong>Minimalism is the discipline.</strong> Following John Carroll&#39;s minimalist\ndoctrine: support action immediately, cut everything that doesn&#39;t help the\nreader act, and trust the reader to think. Every sentence must earn its place.</li>\n<li><strong>Fight the curse of knowledge.</strong> The expert&#39;s worst instinct is to assume\nshared context. Name the prerequisite, define the term, show the first step.</li>\n<li><strong>Findable beats complete.</strong> A perfect answer no one can locate is worthless.\nInformation architecture and search are features, not afterthoughts.</li>\n<li><strong>Docs as code.</strong> Treat documentation like software: version it, review it in\npull requests, build it in CI, test it, and ship it with the product.</li>\n<li><strong>Show, then tell.</strong> A working example outperforms three paragraphs of\nexplanation. Lead with the code, the screenshot, the command.</li>\n</ul>\n","wordCount":147},{"heading":"Mental Models","id":"mental-models","markdown":"- **The reader's mental model vs. the system's model.** Good docs translate the\n  developer's internal model into the reader's existing one, then gradually\n  reshape it. Mismatch between the two is the root of most confusion.\n- **Information types (DITA / topic-based authoring).** Every chunk is one type —\n  concept (what it is), task (how to do it), reference (the facts). Mixing types\n  in one topic is the most common structural defect.\n- **The inverted pyramid.** Borrowed from journalism: most important information\n  first, details below. Readers scan, bail early, and rarely reach the bottom.\n- **Progressive disclosure.** Show the 80% path plainly; tuck edge cases and\n  advanced options behind expandable sections or separate topics so the common\n  reader isn't taxed by the rare one.\n- **The documentation/code drift gradient.** Docs decay at a rate proportional\n  to how far they sit from the source. Reference generated from the code drifts\n  slowest; hand-written tutorials drift fastest. Design for the decay.\n- **Cognitive load (intrinsic vs. extraneous).** The subject has irreducible\n  difficulty (intrinsic); bad layout, jargon, and digressions add extraneous load\n  you can remove for free.","html":"<h2 id=\"mental-models\">Mental Models</h2>\n<ul>\n<li><strong>The reader&#39;s mental model vs. the system&#39;s model.</strong> Good docs translate the\ndeveloper&#39;s internal model into the reader&#39;s existing one, then gradually\nreshape it. Mismatch between the two is the root of most confusion.</li>\n<li><strong>Information types (DITA / topic-based authoring).</strong> Every chunk is one type —\nconcept (what it is), task (how to do it), reference (the facts). Mixing types\nin one topic is the most common structural defect.</li>\n<li><strong>The inverted pyramid.</strong> Borrowed from journalism: most important information\nfirst, details below. Readers scan, bail early, and rarely reach the bottom.</li>\n<li><strong>Progressive disclosure.</strong> Show the 80% path plainly; tuck edge cases and\nadvanced options behind expandable sections or separate topics so the common\nreader isn&#39;t taxed by the rare one.</li>\n<li><strong>The documentation/code drift gradient.</strong> Docs decay at a rate proportional\nto how far they sit from the source. Reference generated from the code drifts\nslowest; hand-written tutorials drift fastest. Design for the decay.</li>\n<li><strong>Cognitive load (intrinsic vs. extraneous).</strong> The subject has irreducible\ndifficulty (intrinsic); bad layout, jargon, and digressions add extraneous load\nyou can remove for free.</li>\n</ul>\n","wordCount":177},{"heading":"First Principles","id":"first-principles","markdown":"- The reader did not come to read; they came to accomplish something and would\n  rather not be here.\n- You cannot document your way out of a confusing product; sometimes the right\n  fix is an engineering ticket, not a paragraph.\n- Accuracy is binary in a reader's trust: one wrong command and they stop\n  believing the whole page.\n- Every word is a tax on the reader's attention; spend it deliberately.","html":"<h2 id=\"first-principles\">First Principles</h2>\n<ul>\n<li>The reader did not come to read; they came to accomplish something and would\nrather not be here.</li>\n<li>You cannot document your way out of a confusing product; sometimes the right\nfix is an engineering ticket, not a paragraph.</li>\n<li>Accuracy is binary in a reader&#39;s trust: one wrong command and they stop\nbelieving the whole page.</li>\n<li>Every word is a tax on the reader&#39;s attention; spend it deliberately.</li>\n</ul>\n","wordCount":68},{"heading":"Questions Experts Constantly Ask","id":"questions-experts-constantly-ask","markdown":"- Who is the reader, what do they already know, and what are they trying to do?\n- What is the one task this page must make succeed?\n- Where will the reader be when they hit this — searching, stuck mid-procedure,\n  evaluating whether to adopt us at all?\n- What's the prerequisite I'm silently assuming they have?\n- Can I delete this sentence and lose nothing?\n- Did I actually run this procedure, or am I trusting the engineer's recollection?\n- Is this a docs problem or a product problem wearing a docs costume?","html":"<h2 id=\"questions-experts-constantly-ask\">Questions Experts Constantly Ask</h2>\n<ul>\n<li>Who is the reader, what do they already know, and what are they trying to do?</li>\n<li>What is the one task this page must make succeed?</li>\n<li>Where will the reader be when they hit this — searching, stuck mid-procedure,\nevaluating whether to adopt us at all?</li>\n<li>What&#39;s the prerequisite I&#39;m silently assuming they have?</li>\n<li>Can I delete this sentence and lose nothing?</li>\n<li>Did I actually run this procedure, or am I trusting the engineer&#39;s recollection?</li>\n<li>Is this a docs problem or a product problem wearing a docs costume?</li>\n</ul>\n","wordCount":88},{"heading":"Decision Frameworks","id":"decision-frameworks","markdown":"- **Diátaxis quadrant.** Classify every doc as tutorial (learning), how-to (a\n  goal), reference (information), or explanation (understanding). Each has\n  different rules; mixing them is why a page satisfies no one — the single most\n  useful framework for deciding what a page should be.\n- **Audience-purpose-context analysis.** Before writing, pin down the reader,\n  their goal, and where they encounter the content. The three together determine\n  length, tone, and what to omit.\n- **Build vs. generate.** Reference material that maps to code (API schemas, CLI\n  flags) should be generated from source (OpenAPI, docstrings); conceptual\n  material is hand-written. Decide per content type, not per project.\n- **Effort vs. half-life.** Spend deep effort on stable, high-traffic content;\n  spend minimal effort on volatile content that will be rewritten next quarter.","html":"<h2 id=\"decision-frameworks\">Decision Frameworks</h2>\n<ul>\n<li><strong>Diátaxis quadrant.</strong> Classify every doc as tutorial (learning), how-to (a\ngoal), reference (information), or explanation (understanding). Each has\ndifferent rules; mixing them is why a page satisfies no one — the single most\nuseful framework for deciding what a page should be.</li>\n<li><strong>Audience-purpose-context analysis.</strong> Before writing, pin down the reader,\ntheir goal, and where they encounter the content. The three together determine\nlength, tone, and what to omit.</li>\n<li><strong>Build vs. generate.</strong> Reference material that maps to code (API schemas, CLI\nflags) should be generated from source (OpenAPI, docstrings); conceptual\nmaterial is hand-written. Decide per content type, not per project.</li>\n<li><strong>Effort vs. half-life.</strong> Spend deep effort on stable, high-traffic content;\nspend minimal effort on volatile content that will be rewritten next quarter.</li>\n</ul>\n","wordCount":127},{"heading":"Workflow","id":"workflow","markdown":"1. **Receive the trigger.** A new feature, a spike in support tickets, a failed\n   onboarding, an SDK release.\n2. **Analyze the audience and task.** Who needs this, what's their goal, what do\n   they already know? Write the one-sentence purpose of the deliverable.\n3. **Extract the knowledge.** Interview the engineer, read the design doc and\n   code, and — critically — use the feature yourself as a naive user.\n4. **Outline the architecture.** Decide the topic types, where pieces live in the\n   navigation, and what reuses existing content.\n5. **Draft fast, ugly, complete.** Get the structure and facts down; prose comes\n   later. Lead with examples.\n6. **Test the instructions.** Follow your own steps on a clean environment. The\n   step you \"obviously\" don't need to write is the one that breaks.\n7. **Edit, then review.** Cut, simplify, enforce the style guide; then technical\n   review from an SME for accuracy, editorial review for clarity, and the docs CI\n   (linters, link checkers, builds).\n8. **Ship and instrument.** Publish, then watch search queries, page analytics,\n   \"was this helpful\" signals, and support tickets to find the gaps.","html":"<h2 id=\"workflow\">Workflow</h2>\n<ol>\n<li><strong>Receive the trigger.</strong> A new feature, a spike in support tickets, a failed\nonboarding, an SDK release.</li>\n<li><strong>Analyze the audience and task.</strong> Who needs this, what&#39;s their goal, what do\nthey already know? Write the one-sentence purpose of the deliverable.</li>\n<li><strong>Extract the knowledge.</strong> Interview the engineer, read the design doc and\ncode, and — critically — use the feature yourself as a naive user.</li>\n<li><strong>Outline the architecture.</strong> Decide the topic types, where pieces live in the\nnavigation, and what reuses existing content.</li>\n<li><strong>Draft fast, ugly, complete.</strong> Get the structure and facts down; prose comes\nlater. Lead with examples.</li>\n<li><strong>Test the instructions.</strong> Follow your own steps on a clean environment. The\nstep you &quot;obviously&quot; don&#39;t need to write is the one that breaks.</li>\n<li><strong>Edit, then review.</strong> Cut, simplify, enforce the style guide; then technical\nreview from an SME for accuracy, editorial review for clarity, and the docs CI\n(linters, link checkers, builds).</li>\n<li><strong>Ship and instrument.</strong> Publish, then watch search queries, page analytics,\n&quot;was this helpful&quot; signals, and support tickets to find the gaps.</li>\n</ol>\n","wordCount":179},{"heading":"Common Tradeoffs","id":"common-tradeoffs","markdown":"- **Completeness vs. usability.** Document every option and you bury the common\n  path; document only the common path and power users file tickets. Layer it.\n- **Accuracy vs. timeliness.** The docs must ship with the feature, but the\n  feature is still changing. Write to the stable contract, flag the volatile.\n- **Maintaining vs. archiving.** Every page you keep is a page you must update\n  forever. Sometimes deleting a stale doc serves readers better than fixing it.\n- **Comprehensiveness vs. the support team's reality.** The most-needed doc is\n  often the unglamorous troubleshooting page, not the elegant architecture\n  overview the writer would rather build.","html":"<h2 id=\"common-tradeoffs\">Common Tradeoffs</h2>\n<ul>\n<li><strong>Completeness vs. usability.</strong> Document every option and you bury the common\npath; document only the common path and power users file tickets. Layer it.</li>\n<li><strong>Accuracy vs. timeliness.</strong> The docs must ship with the feature, but the\nfeature is still changing. Write to the stable contract, flag the volatile.</li>\n<li><strong>Maintaining vs. archiving.</strong> Every page you keep is a page you must update\nforever. Sometimes deleting a stale doc serves readers better than fixing it.</li>\n<li><strong>Comprehensiveness vs. the support team&#39;s reality.</strong> The most-needed doc is\noften the unglamorous troubleshooting page, not the elegant architecture\noverview the writer would rather build.</li>\n</ul>\n","wordCount":99},{"heading":"Rules of Thumb","id":"rules-of-thumb","markdown":"- If you can't explain who the reader is, you're not ready to write.\n- Lead with the example; the reader will copy it before they read your prose.\n- One topic, one task. If the heading needs an \"and,\" split it.\n- Test every command on a clean machine; assume nothing is installed.\n- The word \"simply\" is a lie and an insult — cut it, and \"just,\" and \"obviously.\"\n- If support keeps answering the same question, that's a missing or unfindable\n  page, not a dumb user.\n- Active voice, present tense, second person: \"Click Save,\" not \"Save should be\n  clicked.\"\n- Write the title and the first sentence for someone who arrived via search.","html":"<h2 id=\"rules-of-thumb\">Rules of Thumb</h2>\n<ul>\n<li>If you can&#39;t explain who the reader is, you&#39;re not ready to write.</li>\n<li>Lead with the example; the reader will copy it before they read your prose.</li>\n<li>One topic, one task. If the heading needs an &quot;and,&quot; split it.</li>\n<li>Test every command on a clean machine; assume nothing is installed.</li>\n<li>The word &quot;simply&quot; is a lie and an insult — cut it, and &quot;just,&quot; and &quot;obviously.&quot;</li>\n<li>If support keeps answering the same question, that&#39;s a missing or unfindable\npage, not a dumb user.</li>\n<li>Active voice, present tense, second person: &quot;Click Save,&quot; not &quot;Save should be\nclicked.&quot;</li>\n<li>Write the title and the first sentence for someone who arrived via search.</li>\n</ul>\n","wordCount":108},{"heading":"Failure Modes","id":"failure-modes","markdown":"- **Documenting the UI instead of the goal.** A tour of every button that never\n  tells the reader how to accomplish anything.\n- **The curse-of-knowledge gap.** Skipping the prerequisite step the writer\n  internalized long ago, leaving the new reader stranded at step zero.\n- **Write-once-and-abandon.** Beautiful launch docs that quietly become fiction\n  three releases later because nothing ties them to the code.\n- **Faithful stenography.** Transcribing what the engineer said without testing\n  it, then publishing a procedure that doesn't actually work.\n- **Documenting around a bad product.** Writing elaborate workarounds for a\n  confusing flow instead of filing the bug that would delete the page.","html":"<h2 id=\"failure-modes\">Failure Modes</h2>\n<ul>\n<li><strong>Documenting the UI instead of the goal.</strong> A tour of every button that never\ntells the reader how to accomplish anything.</li>\n<li><strong>The curse-of-knowledge gap.</strong> Skipping the prerequisite step the writer\ninternalized long ago, leaving the new reader stranded at step zero.</li>\n<li><strong>Write-once-and-abandon.</strong> Beautiful launch docs that quietly become fiction\nthree releases later because nothing ties them to the code.</li>\n<li><strong>Faithful stenography.</strong> Transcribing what the engineer said without testing\nit, then publishing a procedure that doesn&#39;t actually work.</li>\n<li><strong>Documenting around a bad product.</strong> Writing elaborate workarounds for a\nconfusing flow instead of filing the bug that would delete the page.</li>\n</ul>\n","wordCount":104},{"heading":"Anti-patterns","id":"anti-patterns","markdown":"- **The \"complete reference\" with no entry point** — every fact, no path through.\n- **Marketing voice in technical docs** — \"powerful,\" \"seamless,\" \"robust\" where\n  the reader wanted a command.\n- **Copy-pasted boilerplate** — the same setup steps duplicated across ten pages,\n  now nine of them wrong.\n- **Versionless docs** — one page covering five product versions with no\n  indication of which paragraph applies to the reader.\n- **Screenshot-driven tutorials** — fifty annotated images that broke the day the\n  UI was restyled.","html":"<h2 id=\"anti-patterns\">Anti-patterns</h2>\n<ul>\n<li><strong>The &quot;complete reference&quot; with no entry point</strong> — every fact, no path through.</li>\n<li><strong>Marketing voice in technical docs</strong> — &quot;powerful,&quot; &quot;seamless,&quot; &quot;robust&quot; where\nthe reader wanted a command.</li>\n<li><strong>Copy-pasted boilerplate</strong> — the same setup steps duplicated across ten pages,\nnow nine of them wrong.</li>\n<li><strong>Versionless docs</strong> — one page covering five product versions with no\nindication of which paragraph applies to the reader.</li>\n<li><strong>Screenshot-driven tutorials</strong> — fifty annotated images that broke the day the\nUI was restyled.</li>\n</ul>\n","wordCount":74},{"heading":"Vocabulary","id":"vocabulary","markdown":"- **Topic** — a self-contained unit of content addressing one concept, task, or\n  reference need (the atom of topic-based authoring).\n- **Single-sourcing** — authoring content once and publishing it to multiple\n  outputs or contexts.\n- **DITA** — Darwin Information Typing Architecture; an XML standard for\n  structured, typed, reusable documentation.\n- **Minimalism** — Carroll's doctrine of stripping docs to what supports the\n  reader's immediate action.\n- **Information architecture (IA)** — the structure, labeling, and navigation\n  that make content findable.\n- **Docs-as-code** — managing documentation in version control with the same\n  tooling and review as software.\n- **SME** — subject-matter expert; the engineer or specialist who holds the facts.\n- **Style guide** — the ruleset (Microsoft, Google, Chicago) governing voice,\n  terminology, and mechanics for consistency.","html":"<h2 id=\"vocabulary\">Vocabulary</h2>\n<ul>\n<li><strong>Topic</strong> — a self-contained unit of content addressing one concept, task, or\nreference need (the atom of topic-based authoring).</li>\n<li><strong>Single-sourcing</strong> — authoring content once and publishing it to multiple\noutputs or contexts.</li>\n<li><strong>DITA</strong> — Darwin Information Typing Architecture; an XML standard for\nstructured, typed, reusable documentation.</li>\n<li><strong>Minimalism</strong> — Carroll&#39;s doctrine of stripping docs to what supports the\nreader&#39;s immediate action.</li>\n<li><strong>Information architecture (IA)</strong> — the structure, labeling, and navigation\nthat make content findable.</li>\n<li><strong>Docs-as-code</strong> — managing documentation in version control with the same\ntooling and review as software.</li>\n<li><strong>SME</strong> — subject-matter expert; the engineer or specialist who holds the facts.</li>\n<li><strong>Style guide</strong> — the ruleset (Microsoft, Google, Chicago) governing voice,\nterminology, and mechanics for consistency.</li>\n</ul>\n","wordCount":113},{"heading":"Tools","id":"tools","markdown":"- **Static site generators** (Docusaurus, MkDocs, Hugo, Sphinx) — to build docs\n  from Markdown or reStructuredText in CI.\n- **Markdown / AsciiDoc / reStructuredText / DITA** — lightweight to structured\n  authoring formats, chosen by how much reuse the project needs.\n- **OpenAPI / Swagger** — to generate and validate API reference from the spec.\n- **Vale and markdownlint** — prose linters that enforce the style guide\n  automatically.\n- **Diagramming** (Mermaid, Excalidraw, draw.io) — diagrams-as-code preferred so\n  visuals live in version control.\n- **Analytics and search logs** — to discover what readers want and fail to find.","html":"<h2 id=\"tools\">Tools</h2>\n<ul>\n<li><strong>Static site generators</strong> (Docusaurus, MkDocs, Hugo, Sphinx) — to build docs\nfrom Markdown or reStructuredText in CI.</li>\n<li><strong>Markdown / AsciiDoc / reStructuredText / DITA</strong> — lightweight to structured\nauthoring formats, chosen by how much reuse the project needs.</li>\n<li><strong>OpenAPI / Swagger</strong> — to generate and validate API reference from the spec.</li>\n<li><strong>Vale and markdownlint</strong> — prose linters that enforce the style guide\nautomatically.</li>\n<li><strong>Diagramming</strong> (Mermaid, Excalidraw, draw.io) — diagrams-as-code preferred so\nvisuals live in version control.</li>\n<li><strong>Analytics and search logs</strong> — to discover what readers want and fail to find.</li>\n</ul>\n","wordCount":83},{"heading":"Collaboration","id":"collaboration","markdown":"A technical writer sits at the seam between engineering, product, support, and\nthe user. They extract from engineers and PMs (who hold the facts and roadmap),\npartner with UX writers and designers (who own in-product text), feed and are fed\nby support (the richest source of real reader pain), and increasingly review\ndeveloper-authored docs. The recurring friction is the late hand-off: writers\nbrought in after a feature is built can only document what shipped, not improve\nit. The strongest writers embed early enough to file usability bugs while they're\nstill cheap, and treat the engineer's time as the scarce resource it is —\narriving at interviews with specific questions, not \"tell me how it works.\"","html":"<h2 id=\"collaboration\">Collaboration</h2>\n<p>A technical writer sits at the seam between engineering, product, support, and\nthe user. They extract from engineers and PMs (who hold the facts and roadmap),\npartner with UX writers and designers (who own in-product text), feed and are fed\nby support (the richest source of real reader pain), and increasingly review\ndeveloper-authored docs. The recurring friction is the late hand-off: writers\nbrought in after a feature is built can only document what shipped, not improve\nit. The strongest writers embed early enough to file usability bugs while they&#39;re\nstill cheap, and treat the engineer&#39;s time as the scarce resource it is —\narriving at interviews with specific questions, not &quot;tell me how it works.&quot;</p>\n","wordCount":117},{"heading":"Ethics","id":"ethics","markdown":"Documentation is where a company's claims meet a user's reality, which makes\nhonesty the core duty. Writers must document what the product actually does, not\nwhat marketing wishes it did; surface real limitations, risks, and destructive\noperations clearly (the `rm -rf`, the irreversible migration, the data-loss\nwarning); and refuse to bury safety-critical caveats for the sake of a clean\nflow. Accessibility is an ethical obligation, not a nicety: alt text, readable\ncontrast, structure that works with screen readers, and plain language for\nnon-native speakers. When docs are used to paper over a genuinely unsafe or\ndeceptive product behavior, the right move is to escalate the product problem,\nnot to write a more persuasive workaround.","html":"<h2 id=\"ethics\">Ethics</h2>\n<p>Documentation is where a company&#39;s claims meet a user&#39;s reality, which makes\nhonesty the core duty. Writers must document what the product actually does, not\nwhat marketing wishes it did; surface real limitations, risks, and destructive\noperations clearly (the <code>rm -rf</code>, the irreversible migration, the data-loss\nwarning); and refuse to bury safety-critical caveats for the sake of a clean\nflow. Accessibility is an ethical obligation, not a nicety: alt text, readable\ncontrast, structure that works with screen readers, and plain language for\nnon-native speakers. When docs are used to paper over a genuinely unsafe or\ndeceptive product behavior, the right move is to escalate the product problem,\nnot to write a more persuasive workaround.</p>\n","wordCount":115},{"heading":"Scenarios","id":"scenarios","markdown":"**The API that shipped with a one-line changelog.** Engineering ships a new\n`/transactions` endpoint with a stub in the OpenAPI spec and no prose. The writer\nfirst asks who calls this — internal teams or external partners? It's external,\nso trust and exactness matter most. They generate the reference table from the\nOpenAPI spec so it can never drift from the code, then write the pieces a\ngenerator can't: a \"common errors\" section from the support backlog, an\nauthentication walkthrough, and a curl example they execute against staging. When\nthe call returns a 422 the engineer didn't mention, that becomes both a doc\ncaveat and a bug report. The reference stays generated; only the judgment is\nhand-written.\n\n**Support tickets keep asking the same question.** Analytics show 200 tickets a\nmonth asking \"why did my webhook stop firing?\" The naive response is to write a\nlonger webhooks page. The expert reads the actual tickets and finds the root\ncause: webhooks silently disable after repeated 500s, and nothing tells the user.\nThis is a product problem wearing a docs costume. The writer files an engineering\nticket for an in-product notification, and meanwhile ships a short,\nsearch-optimized topic titled exactly as users phrase it (\"Webhook stopped\nfiring\") with the inverted pyramid: cause first, fix second, prevention last.\nTicket volume is the success metric, not page views.\n\n**Inheriting a 400-page legacy doc set.** A writer takes over docs spanning three\nproduct versions in one undifferentiated pile, last reviewed two years ago.\nRather than rewrite everything, they instrument first — search logs and analytics\nto find the 20 pages serving 80% of traffic. They audit those against the current\nproduct, fix the high-traffic lies, and add version banners. They apply Diátaxis\nto the mess, splitting tangled \"everything about X\" pages into a concept, a task,\nand a reference; low-traffic stale pages get archived, not maintained. Trust is\nrebuilt where readers actually land, one corrected page at a time.","html":"<h2 id=\"scenarios\">Scenarios</h2>\n<p><strong>The API that shipped with a one-line changelog.</strong> Engineering ships a new\n<code>/transactions</code> endpoint with a stub in the OpenAPI spec and no prose. The writer\nfirst asks who calls this — internal teams or external partners? It&#39;s external,\nso trust and exactness matter most. They generate the reference table from the\nOpenAPI spec so it can never drift from the code, then write the pieces a\ngenerator can&#39;t: a &quot;common errors&quot; section from the support backlog, an\nauthentication walkthrough, and a curl example they execute against staging. When\nthe call returns a 422 the engineer didn&#39;t mention, that becomes both a doc\ncaveat and a bug report. The reference stays generated; only the judgment is\nhand-written.</p>\n<p><strong>Support tickets keep asking the same question.</strong> Analytics show 200 tickets a\nmonth asking &quot;why did my webhook stop firing?&quot; The naive response is to write a\nlonger webhooks page. The expert reads the actual tickets and finds the root\ncause: webhooks silently disable after repeated 500s, and nothing tells the user.\nThis is a product problem wearing a docs costume. The writer files an engineering\nticket for an in-product notification, and meanwhile ships a short,\nsearch-optimized topic titled exactly as users phrase it (&quot;Webhook stopped\nfiring&quot;) with the inverted pyramid: cause first, fix second, prevention last.\nTicket volume is the success metric, not page views.</p>\n<p><strong>Inheriting a 400-page legacy doc set.</strong> A writer takes over docs spanning three\nproduct versions in one undifferentiated pile, last reviewed two years ago.\nRather than rewrite everything, they instrument first — search logs and analytics\nto find the 20 pages serving 80% of traffic. They audit those against the current\nproduct, fix the high-traffic lies, and add version banners. They apply Diátaxis\nto the mess, splitting tangled &quot;everything about X&quot; pages into a concept, a task,\nand a reference; low-traffic stale pages get archived, not maintained. Trust is\nrebuilt where readers actually land, one corrected page at a time.</p>\n","wordCount":328},{"heading":"Related Occupations","id":"related-occupations","markdown":"A technical writer shares the audience-empathy and clarity instincts of several\nroles but is defined by translating expert knowledge into usable prose under the\nconstraint of a changing product. UX writers own the words inside the product;\ntechnical writers own the words around it. Instructional designers share the\nlearning-design lens but build courses rather than reference. Software engineers\nare both the source of facts and an increasingly common co-author through\ndocs-as-code. UX researchers share the discipline of studying what real users\nactually do versus what they say. Writers in the broader sense share the craft of\nprose but rarely the constraints of accuracy and versioning.","html":"<h2 id=\"related-occupations\">Related Occupations</h2>\n<p>A technical writer shares the audience-empathy and clarity instincts of several\nroles but is defined by translating expert knowledge into usable prose under the\nconstraint of a changing product. UX writers own the words inside the product;\ntechnical writers own the words around it. Instructional designers share the\nlearning-design lens but build courses rather than reference. Software engineers\nare both the source of facts and an increasingly common co-author through\ndocs-as-code. UX researchers share the discipline of studying what real users\nactually do versus what they say. Writers in the broader sense share the craft of\nprose but rarely the constraints of accuracy and versioning.</p>\n","wordCount":110},{"heading":"References","id":"references","markdown":"- *Developing Quality Technical Information* — Hargis et al. (IBM)\n- *The Nurnberg Funnel* — John M. Carroll (minimalism)\n- *Docs for Developers* — Bhatti, Corleissen, Lambourne, et al.\n- Diátaxis framework — diataxis.fr\n- *Microsoft Writing Style Guide* and *Google Developer Documentation Style Guide*\n- *Letting Go of the Words* — Janice (Ginny) Redish","html":"<h2 id=\"references\">References</h2>\n<ul>\n<li><em>Developing Quality Technical Information</em> — Hargis et al. (IBM)</li>\n<li><em>The Nurnberg Funnel</em> — John M. Carroll (minimalism)</li>\n<li><em>Docs for Developers</em> — Bhatti, Corleissen, Lambourne, et al.</li>\n<li>Diátaxis framework — diataxis.fr</li>\n<li><em>Microsoft Writing Style Guide</em> and <em>Google Developer Documentation Style Guide</em></li>\n<li><em>Letting Go of the Words</em> — Janice (Ginny) Redish</li>\n</ul>\n","wordCount":46}],"computed":{"wordCount":2344,"readingTimeMinutes":10,"completeness":1,"backlinks":["court-reporter","graphic-designer","instructional-designer","it-support-specialist","librarian","open-source-maintainer","prompt-engineer","ux-researcher","writer"],"verified":false,"aiDrafted":true,"unverifiedAiDraft":true},"git":{"created":"2026-06-26","updated":"2026-06-26","revisions":2,"authors":[{"name":"soul-atlas","commits":2}],"timeline":[{"date":"2026-06-26","author":"soul-atlas"},{"date":"2026-06-26","author":"soul-atlas"}]},"citation":{"apa":"soul-atlas (2026). Technical Writer [SOUL]. SOUL Atlas. https://soul-atlas.github.io/occupations/technical-writer","bibtex":"@misc{soulatlas-technical-writer,\n  title        = {Technical Writer},\n  author       = {soul-atlas},\n  year         = {2026},\n  howpublished = {SOUL Atlas},\n  note         = {SOUL.md, version 2026-06-26},\n  url          = {https://soul-atlas.github.io/occupations/technical-writer}\n}","text":"soul-atlas. \"Technical Writer.\" SOUL Atlas, 2026. https://soul-atlas.github.io/occupations/technical-writer."}}