Portfolio of Leandro Gabriel Oliveira de Souza, senior technical writer. For 6+ years I've written API references, integration guides, and support documentation for Itaú (the PIX instant-payments APIs), Sephora LATAM, L'Oréal France, and Crane Worldwide.
Live site: https://l-g99921.github.io/tw-portfolio/
Built with Docusaurus 3 and deployed to GitHub Pages.
EnergyGrid is a fictional utility platform, documented end to end for three audiences: backend engineers at a utility, people installing hardware at home, and support agents. PIX is a documentation set for Brazil's instant-payments system, with one page of each Diátaxis type.
| Sample | Type | What it shows |
|---|---|---|
| Tutorial: first integration | Tutorial | A 30-minute path from credentials to a synced customer and a bound device |
| Integration guide | How-to and explanation | OAuth and OIDC, customer sync, bulk data over SFTP, rates, and binding |
| API reference | Reference | Generated from OpenAPI, with a sandbox you can call from the browser |
| Hardware install guides | How-to | Consumer setup steps, in two utility-branded versions |
| BillSense AI | Explanation, how-to, reference | Documentation of an AI feature for the agents who support it |
| Data dictionary | Reference | Where each data set lives, by integration type |
| PIX | All four | Explanation, tutorial, how-to, and API reference for PIX |
| Writing guideline | Reference | The site's style guide |
| Architecture decisions | Explanation | Why the site is built the way it is |
The specs point to hosts that don't exist, so a service worker (static/api-sandbox-sw.js) answers the Send API Request panels in the browser, using the same OpenAPI files. It checks auth, path patterns, and required bodies, and keeps state for the flows the tutorials use: create a PIX charge, pay it, and read it back, or bind a device and see a second bind fail. The reasoning is in ADR 006.
- Google developer documentation style guide for sentences: second person, active voice, present tense, and sentence case.
- Diátaxis for pages: every page is a tutorial, a how-to, a reference, or an explanation.
- OpenAPI as the source of every reference page and of the sandbox.
- Docs as code: Markdown in Git, reviewed in pull requests, checked in CI.
The methodology page explains how the two frameworks fit together.
Every pull request that touches content runs docs-quality.yml:
- Vale with the Google package and a project rule,
Portfolio/WordsToAvoid, that turns the guideline's words to avoid into errors. Errors fail the check (ADR 004). - Build with
onBrokenLinks: 'throw', so a broken internal link fails the build. - Lychee checks external links.
The build also writes llms-full.txt, the full text of the site for AI tools (plugins/llms-full.js), next to llms.txt.
Requires Node.js 20 or later.
npm install
npm startThe site runs at http://localhost:3000/tw-portfolio/. For a production build:
npm run build
npm run serveAfter editing an OpenAPI spec, regenerate the reference pages:
npx docusaurus clean-api-docs all
npx docusaurus gen-api-docs allThe theme follows two references from designsystems.one: Stripe for the base (navy on white, the #635bff accent, soft shadows) and Primer from GitHub for code blocks, labels, and the HTTP method colors. The typefaces are Geist and Geist Mono. It's light by default, with a dark mode.
A push to main runs deploy.yml, which builds the site and publishes it to the gh-pages branch.
- LinkedIn: leandro-gabriel-8aab31167
- Email: lgos99921@gmail.com
- Location: João Pessoa, Brazil