People · Information · Technology

Complex software, made learnable.

I'm Annalea — a content and learning specialist working across technical writing, instructional design, and conversation design. Nine years turning dense, technical products into docs, training, and AI-guided experiences that people can actually use.

About

Annalea

My career has always sat between complexity and understanding.

I did a degree in English and Politics. Strip it back and that's training in reading dense material and explaining it to someone who hasn't read it. Everything since has been a version of the same thing.

I've written technical and developer documentation, designed e-learning and classroom training, and built knowledge-management systems that pull scattered docs into something structured and maintainable. Most recently that's extended into working out how people should interact with AI tools — the prompts, the handoffs, the guardrails — which is really instructional design and conversation design applied to a newer kind of interface.

On paper that's technical writing, instructional design, knowledge management, and conversation design. In practice it's the same skill each time: working out what someone needs to know or do, and building the clearest way to get them there.

Experience
~9 years
Works across
Docs · Instructional design · KM · Conversation design
Background
MA (Hons) English & Politics
Based
Dundee, Scotland

Career highlights

Built automation that took roughly eight hours of repetitive work out of every SBOM cycle.

Produced the documentation suites for PCI SSF certification across multiple products.

Brought AI-assisted workflows into documentation and compliance processes, designing the prompts, handoffs, and guardrails behind them.

Designed the training that launched a new platform to 500+ colleagues across multiple countries, and trained the trainers who delivered it.

Wrote a library of around 200 first-line customer response templates, standardising tone and speeding up contact handling.

Modernised documentation into structured, single-sourced publishing systems.

How I work

1

Understand the audience

Who's it for, what do they already know, and what are they trying to do? Everything else follows from that.

2

Understand the system

Learn the actual product or process properly. If I only half understand it, that shows up in the writing.

3

Reduce complexity

Find the simplest version that's still true. Cut anything that's there to look thorough rather than to help.

4

Build repeatable processes

Turn the fix into something repeatable, so it keeps working when I'm not the one running it.

5

Improve through automation — in a way that makes sense

Automate the mechanical, repetitive parts so people can spend their attention on the decisions that need judgement. The "in a way that makes sense" matters — the judgement calls stay with people, and a tool nobody finds easy to run doesn't get used.

Selected work · Case studies

01

SBOM automation tool

Information quality & compliance

A tool that takes messy, incomplete SBOM exports and turns them into enriched, audit-ready documentation. It fills the gaps left behind when we switched software composition analysis platforms, and it does it the same way every time.

≈ 8 hours saved per SBOM cycle
Pythonnpm · MavenJSONWord · PDF outputAI-first build
Read the full case study
Situation

When we moved from Mend to Arnica, the SBOM data came out with gaps in it. That mattered, because an incomplete bill of materials makes it harder to sign off on what's in the software. Filling the gaps by hand was slow, repetitive work, and the kind where small mistakes are easy to miss.

Task

Build something that fills the gaps from the original package sources, is upfront about what it can't find, keeps proprietary code separate from third-party dependencies, and produces documentation an auditor can work from — without anyone having to redo the same judgement calls every cycle.

Action
  • Pulled component data straight from npm and Maven instead of trusting one incomplete export.
  • Flagged anything it couldn't determine rather than guessing, so gaps stayed visible instead of getting papered over.
  • Separated proprietary software from third-party dependencies so each one got handled properly.
  • Generated branded Word and PDF outputs, so the result was ready to hand over rather than raw data someone had to tidy up.
  • Saved reviewers' corrections to JSON and reused them next time, so the tool remembered decisions instead of asking again.
  • Gave it a GUI so people who don't code could run it. I built the whole thing AI-first.
Result
  • About eight hours of manual work gone from every SBOM cycle.
  • More consistent data feeding into compliance and security work.
  • Review knowledge that lived in the tool instead of one person's head.
  • Fewer of the small human errors that get expensive in an audit.
Lessons learned

Building AI-first meant one person could ship something that would normally need a small team. One thing I'm particularly proud of is flagging unknowns instead of auto-filling them — a confident-looking mistake is harder to spot than an obvious gap, especially with an auditor reading it. If I did it again I'd move the corrections out of JSON and into a shared store sooner, so more people could benefit from the same decisions.

Technologies

Python · npm & Maven ecosystem data · JSON · Word & PDF generation · GUI · AI-assisted development · SBOM / SCA (Arnica)

02

MSSP release documentation tool

Documentation operations

Replaced a manual documentation process with a tool, then used AI to build its interface so people would actually use it.

≈ 4 hours saved per release
AutomationGUI built using AIUsability
Read the full case study
Situation

A recurring documentation job was being done by hand. It was slow, repetitive, easy to do inconsistently, and it only really worked when the one person who knew the steps was around.

Task

Automate the repetitive part, then make it something people would use rather than a script that sits ignored because it's a pain to run.

Action
  • Automated the manual documentation work end to end.
  • The tool worked; the problem was getting people to use it. So I used AI to build a GUI that lowered the effort of running it.
  • Kept refining the usability until it was easy to pick up and hard to get wrong.
Result
  • A lot less repetitive work.
  • A process people actually adopted, and one that didn't hang on a single person's memory.
Lessons learned

The automation was the easy half. The hard half was getting people to use it, and that came down to the interface, not the logic underneath. I now treat "will the person who didn't build this actually use it?" as part of the definition of finished.

Technologies

Workflow automation · GUI built using AI · usability iteration

03

AI-assisted documentation workflow

AI interaction design

A human-governed AI workflow for updating versioned customer documentation. AI does the repetitive tagging and builds; every decision that reaches a customer stays a specialist call.

≈ 50% less hands-on effort per update
MadCap FlareConditional contentPrompt architectureHuman-in-the-loopGitHub Copilot
Read the full case study
Situation

Updating versioned documentation meant a long run of mechanical work — finding affected topics, wrapping and conditionally tagging content, building outputs, generating a review PDF — repeated for every change. It was slow and repetitive, and the kind of slip it invites — a mis-scoped tag, a still-valid passage dropped from an older version — is a quiet one. Nothing flags it, so catching it depends entirely on careful review.

Task

Automate the mechanical half without automating the judgement. Speed the work up, but keep every decision that affects what a customer sees — scope, version applicability, what to preserve, whether it's accurate, whether it's ready to publish — as a specialist human call.

Action
  • Split the work in two: the repetitive production (tagging, edits, builds, the review PDF) got automated; the judgement (what changes, whether it's right, what to keep for older versions) stayed human.
  • Designed a reusable prompt architecture — an invariant preamble holding the tagging rules, plus a per-change schema (Locate / Preserve / Tag / Insert / Verify) that carries the decisions that can't be reused.
  • Set the AI to escalate, not assume: if anything's uncertain it asks before acting, rather than confidently guessing.
  • Built the guardrails from failure-mode analysis — mapped how the AI produces confidently-wrong output and added a specific control for each: preserve-don't-delete, validate in both version contexts, accuracy-check against the source, verify scope rather than accept it.
  • Made every change produce a scoped PDF of only the changed pages, so review is quick and the change is auditable by the rest of the team.
Result
  • Roughly half the hands-on effort gone per update — a change that took about four hours now takes about two.
  • The quality controls held: the speed came out of the mechanical work, not the review.
  • A reusable system rather than a one-off, so it pays back on every future change of this type.
Lessons learned

The automation was the easy part; the design was deciding where a human has to stay in the loop, and why. One thing I'm particularly proud of is making the AI escalate uncertainty instead of resolving it — with customer-facing docs, a confident wrong answer is harder to catch than an obvious gap. Building it also showed me how much of this draws on interaction and instructional design as well as documentation, and the prompt architecture, the handoff model, and the guardrails are the parts I'd take into the next project.

Technologies

MadCap Flare · conditional content / versioning · prompt architecture · human-in-the-loop review · GitHub Copilot (VS Code Agent Mode) · Atlassian Rovo

04

PCI SSF documentation programme

Security compliance

Documentation for PCI SSF certification: a suite of around 50 documents covering all aspects of the product, produced with product and technical teams and reviewed with auditors.

≈ 50 documents per product, across multiple products
PCI SSFSecure software docsAudit supportCross-team collaboration
Read the full case study
Situation

PCI SSF certification calls for a full set of documentation covering how a product is built, secured, and maintained. The documentation needed to be complete, accurate, and in a state an auditor could work through.

Task

Produce and maintain that documentation set — working with product managers and technical teams to get the detail right, and with auditors to make sure it covered what they needed.

Action
  • Worked with product managers and technical teams to understand how the product actually worked, and wrote it up accurately.
  • Referred to the PCI SSF standards and supporting documentation to check what each document needed to cover.
  • Produced a suite of around 50 documents covering all aspects of the product.
  • Took documents through review with auditors and updated them in response to feedback.
  • Repeated the process for other products in our area.
Result
  • A complete, audit-ready documentation set for each product.
  • Documentation that stayed accurate as the products changed.
  • An approach that carried over to the next product rather than starting from scratch.
Lessons learned

Most of the work sat in gathering the detail rather than the writing — getting time with the right people and checking what I'd written against how the product really worked. Next time I'd agree the templates and structure earlier, because keeping 50 documents consistent is much easier when that's settled up front.

Technologies

PCI SSF · secure software documentation · audit support · working with product managers, technical teams, and auditors

05

Documentation modernisation

Information systems

Moved scattered documentation into proper systems — Confluence and MadCap Flare — with conditional content and version management. The goal was an information system people could actually maintain.

ConfluenceMadCap FlareConditional contentSingle-sourcing
Read the full case study
Situation

Documentation was scattered and inconsistent. It was hard to version, hard to reuse, and copied across places that slowly drifted apart. Writing more pages wouldn't have fixed that — the setup itself was the problem.

Task

Move the content onto a platform we could maintain, bring in conditional content and version management, and standardise how docs were structured and produced.

Action
  • Ran the Confluence migration and set up MadCap Flare for structured authoring.
  • Set up conditional content so one source could produce different outputs for different audiences, rather than being copied and forked.
  • Sorted out version management and standardised structure and style across the set.
Result
  • Consistent, reusable, version-controlled documentation.
  • Less duplication, easier to maintain, and a system people could work in.
Lessons learned

Single-sourcing pays off, but it needs discipline from the start, and it's as much about changing how people work as about the tools. Setting up the tooling was straightforward. Getting other contributors to work inside the system was the hard bit. I'd put more time into hands-on enablement next time.

Technologies

Confluence · MadCap Flare · conditional content / single-sourcing · version management

06

Order-management platform launch

Instructional design

A new order-management platform was rolling out to more than 500 customer-service colleagues, and no training for it existed. I designed it from scratch, then trained the trainers who delivered it.

500+ colleagues trained, across multiple countries
Instructional designArticulate StorylineTrain-the-trainerPlatform rollout
Read the full case study
Situation

A new grocery order-management platform was changing how customer-service teams did their jobs. More than 500 colleagues needed to be able to use it from launch, and there was no training for it — none of it existed yet.

Task

Learn a platform that was still being built, design the training for it, and get it to 500+ people in more than one country. I couldn't deliver all of that myself, so the trainers had to be able to.

Action
  • Worked with the software development team as the platform came together, so the training reflected how it actually behaved rather than how the spec said it would.
  • Designed e-learning in Articulate Storyline, alongside classroom material, so each part was taught in the format that suited it.
  • Built the training around what colleagues actually had to do in the role, rather than walking through the interface screen by screen.
  • Ran train-the-trainer sessions so the people delivering it understood the platform well enough to handle questions, not just present the material.
  • Worked with teams in Central Europe to adapt the customer-service and order-management training for the launch of a new call centre in Hungary.
Result
  • 500+ colleagues able to use the platform when it went live.
  • Training that didn't depend on me being the one to deliver it.
  • Material that carried over to another country's launch instead of being built again from scratch.
Lessons learned

Designing the training was only half the job. It worked because the trainers delivering it understood the platform properly, rather than reading from material someone else had written. That's the same instinct behind the tools I build now: it isn't finished when it works for me, it's finished when it works for someone using it without me there.

Technologies

Articulate Storyline & 360 · e-learning & classroom design · train-the-trainer · multi-country rollout

07

Customer response library

Response design at scale

A bank of around 200 first-line reply templates covering the queries customer service handled most often. It standardised how the team responded and took time out of every contact.

≈ 200 templates covering first-line queries
Response designTone of voiceContent at scaleCustomer service
Read the full case study
Situation

Customer service managers were answering the same questions from scratch every time. The answers varied depending on who wrote them, the tone drifted, and writing each one took longer than it needed to.

Task

Work out what customers were actually asking, and write a set of first-line responses that covered those queries consistently — accurate, in the right tone, and quick to use.

Action
  • Looked at what was actually coming in and grouped it into the queries that came up most, so the set covered real questions rather than assumed ones.
  • Wrote around 200 templates covering those queries, in a consistent tone of voice.
  • Structured them so they were quick to use but still left room to respond to the person asking, rather than sounding automated.
  • Made sure the answers were accurate and stayed that way as things changed.
Result
  • Consistent answers across the team instead of variation from person to person.
  • Faster contact handling, because the first-line answer was already written.
  • A reference for what a good response looked like, useful for anyone new to the team.
Lessons learned

Covering the common queries properly matters more than trying to cover everything — the unusual ones are where a person should be answering anyway. That's the same judgement I apply to AI-assisted work now: design carefully for the predictable paths, keep the voice consistent across them, and make sure anything outside them reaches a human. This was that idea before I had the vocabulary for it.

Technologies

Response design · tone of voice · content at scale · customer service operations

08

French Toast

Learning by building

A live multiplayer web game, built and shipped solo. I wanted to learn software engineering by building something rather than reading about it.

Play it live
JavaScriptFirebaseNetlifyReal-time multiplayer
Read the full case study
Situation

I document software for a living, and I wanted to know what building and shipping it actually feels like from the other side of the fence.

Task

Design, build, and deploy a real-time multiplayer game on my own, and pick up real-time state, syncing, and what it takes to keep something live for other people.

Action
  • Built the game on Firebase for real-time backend state and hosted it on Netlify.
  • Worked through the hard parts: multiplayer syncing, shared state, and keeping something running once real people could break it.
Result
  • A working multiplayer game that's live.
  • A much better feel for the engineering I document and automate around, and easier conversations with engineers now that I've shipped something too.
Lessons learned

Building the whole thing myself changed how I write for developers. Most of what I learned lived in the gap between "works on my machine" and "works for someone else" — the part documentation has to get right too.

Technologies

JavaScript · Firebase · Netlify · real-time multiplayer

Capabilities

Technical communication

  • Technical writing
  • Developer documentation
  • Information architecture
  • Structured authoring (DITA · XML · Markdown)
  • Knowledge management

Learning & interaction design

  • Instructional design
  • Conversation design
  • E-learning design
  • Articulate Storyline & 360 · Adobe Captivate
  • Classroom training

Content operations

  • Documentation governance
  • Content systems
  • Documentation strategy
  • Process improvement

Automation & AI

  • Python
  • Workflow automation
  • Prompt architecture
  • Human-in-the-loop design
  • GitHub Copilot · Microsoft Copilot · Claude

Compliance & security

  • PCI SSF
  • Secure software documentation
  • SBOM processes
  • Audit support

Education & certifications

Education

MA (Hons) English & Politics
University of Dundee · 2:1 · 2010–2014

Certifications

Learning design programme
TAP Learning
  • Theoretical Basis of Learning
  • Design
  • Articulate Storyline
  • Creating Visual Impact
  • Digital Writing Skills

Let's make something clear.

Open to work that sits between people, information, and technology, and always happy to talk through a good problem in documentation, learning, knowledge, or automation.