# fernandofatech

O README que o GitHub renderiza no meu perfil — índice do trabalho e da plataforma por trás dele

- URL: https://fernando.moretes.com/open-source/fernandofatech

- Markdown: https://fernando.moretes.com/open-source/fernandofatech/guide.md?lang=pt

- GitHub: https://github.com/fernandofatech/fernandofatech

- Homepage: https://fernando.moretes.com

- Language: n/a

- Topics: github-profile, moretes, portfolio, profile, readme, solution-architect, solution-architecture

- Stars: 2

- Forks: 0

- Updated: 2026-09-08T20:16:50Z

---

Este repositório existe por uma convenção do GitHub: um repositório público com o mesmo nome da conta tem seu README.md renderizado na página de perfil — e é aqui que eu explico, em uma tela, o que faço, onde o código vive e por que 154 repositórios saíram da conta pessoal para uma organização.

## O que este repositório é

Não há código aqui. Há um único arquivo, `README.md`, que o GitHub trata de forma especial: quando o repositório se chama exatamente igual ao usuário (`fernandofatech/fernandofatech`) e é público, o conteúdo dele aparece no topo de `github.com/fernandofatech`, acima dos repositórios fixados e do gráfico de contribuições.

O arquivo tem seis seções, e cada uma responde a uma pergunta que um visitante faz nos primeiros dez segundos:

- **Quem é:** uma linha de posicionamento — Senior Solution Architect, AWS, serverless, event-driven — e quatro frentes de trabalho.
- **Com o que trabalha:** a stack por camada (cloud, backend, frontend, dados, DevOps, segurança), sem adjetivo.
- **O que vale a pena abrir:** uma tabela com seis projetos e uma descrição de uma linha cada.
- **Onde o código vive:** a seção sobre a organização `@fernando-moretes`, com a razão técnica da mudança.
- **Estatísticas:** dois cartões gerados por `github-readme-stats`.
- **Contato:** LinkedIn e o link da organização.

A parte que diferencia este README de um template é a quarta seção. A maioria dos perfis lista tecnologias; este documenta uma decisão de plataforma com o número que a justifica.

## O que o arquivo carrega

- Um README, zero código: a convenção `usuário/usuário` faz o GitHub renderizá-lo na página de perfil.
- Seis projetos em tabela, cada um com uma linha de descrição e link direto para o repositório na organização.
- A seção da plataforma: oito prefixos de nome, um conjunto de workflows reutilizáveis, dois runners para 154 repositórios.
- Badges e cartões de estatística são imagens externas (shields.io e github-readme-stats) — o repositório não hospeda nada disso.
- Bloco bilíngue no fim ligando o perfil ao portfólio em fernando.moretes.com.

## Por que existe

A página de perfil do GitHub, sem este repositório, mostra seis repositórios fixados e um gráfico de contribuições. Nenhum dos dois explica o que você faz nem por quê. O README de perfil é o único lugar da página onde cabe texto com contexto — e é o primeiro ponto de contato de quem chega por um link de commit, de issue ou de pull request.

O motivo de eu manter esta versão, e não um perfil gerado por template, é a seção sobre a organização. Ela responde a uma pergunta que qualquer pessoa faz ao abrir `github.com/fernandofatech` e ver poucos repositórios: onde está o código? A resposta tem uma razão técnica que vale documentar. Uma conta pessoal no GitHub não tem runners self-hosted em nível de conta — a API expõe `/repos/{owner}/{repo}` e `/orgs/{org}`, e o endpoint de usuário devolve 404. Na conta pessoal, CI self-hosted exigiria um container de runner por repositório; com 154 repositórios, isso não é uma decisão de arquitetura — é uma fila de manutenção. Na organização, dois runners atendem todos.

O custo que importa aqui não é o de escrever o README uma vez. É o de mantê-lo verdadeiro: cada vez que um projeto muda de nome, ganha prefixo ou sai da lista, a tabela precisa acompanhar. Por isso a lista tem seis projetos e não trinta — o índice completo fica no perfil da organização, que é atualizado pelo pipeline, não à mão.

## Como o README chega à página de perfil

O GitHub lê o arquivo do repositório homônimo; badges e estatísticas são buscados pelo navegador em serviços externos a cada carregamento.

### 🐙 GitHub — Perfil

- Página de perfil renderiza README.md (frontend)
- fernandofatech/fernandofatech README.md (público) (storage)

### 🌐 Externo — Imagens

- shields.io badges LinkedIn / followers (external)
- github-readme-stats cartões de stats e linguagens (external)

### 🏢 GitHub — Organização

- @fernando-moretes 154 repos, 8 prefixos (compute)
- platform-workflows workflows reutilizáveis (ci)

### ▲ Vercel — Portfólio

- fernando.moretes.com guias, blog, estudos (frontend)

### Fluxos

- visitor -> profile: abre o perfil
- profile -> repo: lê README.md do repo homônimo
- profile -> shields: busca badges
- profile -> stats: busca cartões
- repo -> org: tabela de projetos aponta
- org -> workflows: CI/CD de todos os repos
- repo -> site: link do portfólio

## Como reproduzir o padrão na sua conta

1. **Crie o repositório com o nome exato da conta** — Em `github.com/new`, o nome precisa ser igual ao usuário — no meu caso, `fernandofatech`. Marque como **público**; o GitHub ignora o README de um repositório de perfil privado. Inclua um README inicial para o repositório não nascer vazio.

2. **Clone e escreva o README.md** — Use este arquivo como referência de estrutura, não como texto. Troque links, projetos e stack pelos seus. Blocos `<div align="center">` funcionam porque o GitHub renderiza um subconjunto de HTML dentro do Markdown.

3. **Monte os badges e cartões** — Badges vêm de `img.shields.io`; cartões de `github-readme-stats.vercel.app/api?username=<seu-usuário>`. Parâmetros como `theme`, `hide_border` e `langs_count` mudam só a aparência. Tudo isso é imagem externa buscada pelo navegador do visitante.

4. **Faça commit e push para a branch padrão** — O GitHub só renderiza o README da branch padrão. Um README em outra branch não aparece no perfil, e não há aviso sobre isso.

5. **Confira a página de perfil** — Abra `github.com/<seu-usuário>` numa aba anônima. Se o README não aparecer, revise em ordem: nome do repositório, visibilidade, branch, nome do arquivo (`README.md`, na raiz).

_Fluxo mínimo — do clone à publicação no perfil_

```bash
# 1. clone (troque pelo seu usuário / replace with your username)
git clone https://github.com/fernandofatech/fernandofatech.git
cd fernandofatech

# 2. edite o README.md com seu editor de preferência
$EDITOR README.md

# 3. confira como um cartão de stats vai renderizar antes de publicar
curl -sI "https://github-readme-stats.vercel.app/api?username=fernandofatech&show_icons=true" | head -n 1

# 4. publique na branch padrão — só ela é renderizada no perfil
git add README.md
git commit -m "docs: update profile README"
git push origin main
```

> **Imagens externas falham em silêncio:** Os badges e os dois cartões de estatística são servidos por terceiros — shields.io e uma instância pública do github-readme-stats na Vercel. Se qualquer um deles ficar fora do ar ou for limitado por taxa, o perfil mostra uma imagem quebrada sem nenhum erro do seu lado. O repositório não armazena nem cacheia essas imagens. Se a disponibilidade do perfil importar, hospede sua própria instância do github-readme-stats ou aceite o risco conscientemente.

## O que a seção da plataforma documenta

A tabela da seção `The platform behind the work` é o resumo de cinco decisões que valem para os 154 repositórios da organização:

**Convenção de nomes:** oito prefixos — `app-`, `svc-`, `ref-`, `tool-`, `infra-`, `lib-`, `dot-`, `lab-`. O prefixo diz o que o repositório é antes de você abrir. É por isso que a tabela de projetos aponta para `app-queue-advisor-pricing` e `tool-m5cardputer-sshclient`, não para os nomes antigos.

**Pipeline:** um único conjunto de workflows reutilizáveis em `platform-workflows`. Corrigir uma regra de CI significa mudar um arquivo, não 154.

**Runner:** repositórios privados rodam em runners self-hosted, que não consomem minutos; públicos rodam nos runners do GitHub, gratuitos e sem limite para repositório público. A distinção é de custo, não de preferência.

**Segurança:** gitleaks e trivy em todos os repositórios; SonarQube e DefectDojo só nos privados, porque essas duas ferramentas rodam dentro da rede e não são expostas.

**Releases:** SemVer calculado a partir de Conventional Commits. Ninguém digita número de versão, então ninguém erra número de versão.

O README não detalha cada item de propósito — o diagrama de arquitetura e o raciocínio de cada decisão ficam no perfil da organização, que é mantido em um só lugar.

## Perguntas frequentes

### Por que o perfil aponta para @fernando-moretes se a conta é fernandofatech?

Porque o código vive na organização e o perfil vive na conta. A conta pessoal não tem runners self-hosted em nível de conta; a organização tem. O README existe justamente para fazer essa ponte e explicar o motivo.

### Posso copiar este README para o meu perfil?

A estrutura, sim — seções, tabela de projetos, bloco de plataforma. O texto, não: ele descreve minhas decisões e meus números. Um perfil que copia números de outro perfil é pior que um perfil vazio.

### O `count_private=true` nos cartões inclui repositórios privados?

O parâmetro pede isso ao serviço, mas a instância pública só enxerga o que o token dela enxerga. Se precisar de contagem privada confiável, a documentação do github-readme-stats orienta hospedar sua própria instância com seu token.

## Referências

- [fernandofatech/fernandofatech — GitHub](https://github.com/fernandofatech/fernandofatech)
- [fernando.moretes.com — portfolio](https://fernando.moretes.com)
- [@fernando-moretes — organization profile and full index](https://github.com/fernando-moretes)
- [platform-workflows — reusable CI/CD workflows](https://github.com/fernando-moretes/platform-workflows)
- [GitHub Docs — Managing your profile README](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme)
- [github-readme-stats](https://github.com/anuraghazra/github-readme-stats)
- [shields.io](https://shields.io)

## Quando este padrão vale a pena

Mantenha um README de perfil quando: seu código está espalhado em mais de um lugar (conta pessoal, organização, site) e alguém que chega por um link de commit precisa de um mapa; você tem uma decisão de plataforma que explica por que as coisas estão onde estão; e você aceita revisar o arquivo toda vez que um projeto muda de nome. Não vale a pena quando o perfil tem meia dúzia de repositórios visíveis e nada a explicar — nesse caso, fixar seis repositórios com boas descrições faz o mesmo trabalho sem um arquivo a mais para manter. O README não é vitrine — é o índice de um sistema que precisa continuar verdadeiro depois que você para de olhar para ele.

## Links

- [GitHub repository](https://github.com/fernandofatech/fernandofatech)
- [Homepage](https://fernando.moretes.com)
