What I use to write, edit, and ship developer content.

A working list of the tools that show up in my day-to-day — heavy on AI-native authoring and docs-as-code infrastructure, lighter on the IDE flame wars. I update this when something earns its way in or stops earning it.

AI authoring stack

  • Claude Code

    My default for drafting, refactoring, and reviewing reference content. The agentic loop changes what a single writer can keep in flight at once.

  • Cursor

    For bigger MDX/code-sample work where I want the IDE-native feel. The chat + edit loop tightens iteration on long-form drafts.

  • MCP servers

    The integration glue. I lean on MCP for hooking authoring agents to internal sources of truth (style guides, API specs, content corpora).

  • GitHub Copilot

    Still the best in-editor autocomplete for reference code. Pairs well with the Claude/Cursor outer loop.

  • Glean

    Internal search and retrieval. Critical when authoring against a corpus that spans dozens of teams.

  • NotebookLM

    For first-pass synthesis on long docs sets. Useful for content audits.

Docs-as-code

  • Sphinx + Python

    What I built the Snowflake Python APIs reference pipeline on. Generates reference and release notes from source on every API version release.

  • Markdown + MDX

    Default authoring format for tutorials and conceptual content. MDX for anything that needs embedded components.

  • OpenAPI / Swagger

    For REST API surfaces. The reference content writes itself — the work is in the surrounding guides.

  • Custom code-sample test framework

    In-house at Snowflake. Every in-doc example runs against the current build before it ships.

Editor + workflow

  • VS Code

    Editor of choice when not in Cursor. Heavy use of the terminal, MDX preview, and Copilot.

  • Git

    Docs-as-code means PR review is editorial review. I run editorial passes the same way I review code.

  • Apple ecosystem

    MacBook Pro for writing and shipping. Nothing exotic.