MK
000+

Countries documented.

00.00%

Quality score.

0

Tools built. Without being asked.

I don't organize information. I design how understanding moves.

SOURCE OF TRUTHopenapi.yamlREST · 40+Python SDKSAP webhooksDockerthe seams: −40% defects
API Documentation

Cloud Workload Automation API Ecosystem

Randstad (deputed to Accenture) · May 2023 – Sep 2024

Problem
40+ REST endpoints and a Python SDK to document in a four-week sprint, with third-party integrations nobody had written down.
Insight
Most of the configuration knowledge for the SAP and Docker paths lived in two engineers' heads. That is where customers were getting stuck, and it was the part nothing had been written about.
Result
A complete reference set delivered inside the sprint, with third-party pipeline configuration defects down 40%.

40+ endpoints · Python SDK · 40% fewer integration defects.

My role · Sole documentation owner for the API surface, working directly with the platform engineers who owned the SAP and Docker integration paths.

REST APIs · OpenAPI · Swagger · Python SDK · SAP Webhooks · Docker · Docs-as-Code

Read the full case study →
BuganizerSheetsby handissues →← triage25+ person team · US + Manila2 hrs/day reclaimed × 60+ writers
Workflow Automation

Culvert

Automation lead · Dec 2025 – Present

Problem
Bug triage for 60+ writers ran by hand between two systems that did not talk to each other.
Insight
Nobody in the sync step was making a judgment call. They were retyping the same fields between two systems, twice a day, in both directions.
Result
A bi-directional sync engine that removed the manual step entirely, built and then deployed across a 25+ person team spanning the US and Manila.

2 hours reclaimed daily, per person, across 60+ writers.

My role · Built the sync engine end to end, then led the rollout across a 25+ person matrix team split between the US and Manila.

JavaScript · Google Apps Script · Buganizer API · Google Sheets

Read the full case study →
250+ SELECTORSportfolio content strategyresearch → strategy → 99.64%
Information Architecture

Country selector content strategy

Google Operations Center · Oct 2024 – Present

Problem
250+ country selectors, each treated as its own content problem, with no portfolio-level view of what differed and why.
Insight
Every proposed improvement was being argued from one market's evidence, because no one had ever looked at the selectors as a single portfolio.
Result
Targeted user research and a portfolio-level content strategy spanning every selector, held to a 99.64% quality score.

250+ selectors · 99.64% quality score · 300+ assets governed in GitLab.

My role · Designed the user research, set the portfolio-level content strategy, and authored and governed 300+ assets in GitLab.

HTML · CSS · GitLab · Markdown · XML · MadCap Flare

Read the full case study →
150+ XML MANUALSlint + cspellCI GATEdefectpublished5,000+ pages · 0 formatting defects
Docs-as-Code

Legacy XML to Markdown migration

Docs-as-Code workflow architect · Nov 2025 – Jan 2026

Problem
150+ legacy XML manuals in a publishing chain slower than the products they described.
Insight
Every reviewer caught formatting errors sometimes and missed them sometimes. The work was tedious and endless, and the miss rate tracked how tired people were.
Result
A cloud-native Docs-as-Code pipeline with Markdownlint and CSpell in CI, eliminating 100% of formatting defects across 5,000+ pages.

5,000+ pages · 40% faster deployment · 15+ hours saved weekly.

My role · Designed the migration and the validation pipeline, mapped the XML semantics, and set the conventions the corpus still runs on.

Git · Markdown · Markdownlint · CSpell · XML · MadCap Flare

Read the full case study →

I found inefficiencies in my own workflow. So I built tools to eliminate them.

These tools came from real problems in my own work.

Scale
  • 0,000+Pages migrated to Docs-as-Code
  • 000+Manuals published monthly (Cyient)
  • 000+Documentation assets (GitLab)
  • 00+REST endpoints documented
  • 0Industries: Aerospace · SaaS · Consumer Tech
0.00%
Quality ScoreConsistent across projects
Speed
  • 00%fewer support tickets (Accenture)
  • 00%faster deployment (XML → Markdown)
  • 00%fewer integration defects (workload API)
  • 00%faster turnaround (R4i CSDB)
  • 0 hrsreclaimed daily per writer (Culvert)
  • 00%better deliverable compliance

Some documentation errors are inconvenient.
Some are fatal.

Aerospace

Aerospace | Cyient

S1000D · iSpec 2200 · ASD-STE100 · DITA

“Maintenance manuals where an ambiguous instruction can ground a fleet.”

98%Compliance Rate

Global Finance

Google Operations Center

Docs-as-Code · GitLab

“Where a missing localization note can fail a merchant in a market they depend on.”

99.64%Quality Score

Precision is not a preference. It is the product.

API documentation is a user experience problem. Most people treat it as a formatting problem.

One declined payment, written twice. The same event reaches a developer and a merchant, and they need opposite things from it.

POST/v1/paymentsLedger API · 2026-09-01
Request
POST /v1/payments
Authorization: Bearer sk_live_...
Idempotency-Key: 8f14e45f-ea1b-4c2d-9a35-7b1d6e0c3a92
Content-Type: application/json

{
  "invoice_id": "inv_7TgH2ReQvA",
  "amount": { "amount": 5520000, "currency": "INR" },
  "payment_method_id": "pm_4KdN8xWs1B"
}
Response · 201
HTTP/1.1 201 Created
Location: /v1/payments/pay_3MvB9kLd7Q

{
  "id": "pay_3MvB9kLd7Q",
  "object": "payment",
  "status": "failed",
  "invoice_id": "inv_7TgH2ReQvA",
  "amount": { "amount": 5520000, "currency": "INR" },
  "amount_refunded": { "amount": 0, "currency": "INR" },
  "amount_refund_pending": { "amount": 0, "currency": "INR" },
  "failure_code": "do_not_honor",
  "failure_message": "Issuer declined without a stated reason.",
  "created_at": "2026-09-01T14:32:07Z"
}

The card was declined and this is a 201. An HTTP status describes what happened to the request, not what happened commercially. Routing a decline through a 4xx sends it to a handler that cannot tell a refused card from a wrong API key, and into retry middleware that issuers read as abuse. Branch on status, never on the status code.

Error states · RFC 9457 problem+json

Built With Intention

This portfolio is not a template. It is a production application. Every design decision has a reason. Every technical decision has a reason. Here are both.

Frontend
Backend
Infrastructure

Before I understood information architecture, I understood storytelling.

It turns out they are the same discipline.

Complexity is not the enemy. Unclear thinking is.

What complexity are you sitting with right now?

Let's talk about transforming it.

LinkedIn ↗Download Resume →

I respond to everyone who reaches out thoughtfully.

Open for
  • Senior Technical Writer roles
  • Information Architecture projects
  • AI documentation tool collaboration
  • Filmmaking and creative projects

Technical Writer. Information Architect. AI Builder. Filmmaker.