<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by DevComputaria on Medium]]></title>
        <description><![CDATA[Stories by DevComputaria on Medium]]></description>
        <link>https://medium.com/@devcomputaria?source=rss-9d60ae479991------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*7dXP6BfDQ4zb0jrT</url>
            <title>Stories by DevComputaria on Medium</title>
            <link>https://medium.com/@devcomputaria?source=rss-9d60ae479991------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 25 May 2026 15:23:33 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@devcomputaria/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[branch/exit-strategy-all-in-v3-FINAL-FINAL]]></title>
            <link>https://medium.com/@devcomputaria/branch-exit-strategy-all-in-v3-final-final-31e8ddf65292?source=rss-9d60ae479991------2</link>
            <guid isPermaLink="false">https://medium.com/p/31e8ddf65292</guid>
            <dc:creator><![CDATA[DevComputaria]]></dc:creator>
            <pubDate>Sun, 25 Jan 2026 20:11:08 GMT</pubDate>
            <atom:updated>2026-01-25T20:11:08.525Z</atom:updated>
            <content:encoded><![CDATA[<p>Bro, acabei de descer do elevador, peguei meu oat milk latte e a minha bandwidth mental quase fritou. O Slack da firma tá parecendo o pregão da B3 em dia de circuit breaker. A notícia dropou e eu dei um stop loss na minha produtividade: a Capital One levou a Brex por US$ 5.15 yards.</p><p>Eu aqui, tentando dar um troubleshoot num código legado que parece um monstro de Frankenstein em .NET, enquanto os caras deram o exit mais sexy do Condado. O Pedro e o Henrique são muito top tier, não tem como.</p><h3>O M&amp;A do Ano (ou: Como Pivotar sua Life pra Virgínia)</h3><p>Vamos dar um deep dive nos numbers, porque o valuation é o que move a agulha, certo?</p><p>A Brex — que é basicamente o State of the Art das fintechs fundadas por brazucas que deram o bypass no sistema brasileiro pra brilhar no Vale — foi adquirida pela Capital One. O deal foi 50/50: metade em hard cash pra garantir o lifestyle e metade em equity, porque o upside da Capital One pós-aquisição da Discover é o puro suco de growth.</p><p>Eu sei, eu sei... os bears vão dizer: &quot;Ah, mas em 2022 o post-money era de US$ 12.3 bi&quot;. Cara, forget it. O mercado mudou, o cost of capital subiu e os caras garantiram um return de 700x pros investidores early stage. Se o seu código tivesse esse ROI, você não estaria aí reclamando de code review de estagiário, estaria em Aspen fazendo networking com a galera da Sequoia.</p><p>A Capital One não comprou só um banco; eles compraram o stack AI-native. Eles querem o workflow automatizado, os agentes de IA que fazem o spend management sem intervenção humana. É o fim da era do &quot;revisar nota fiscal no Excel&quot;. É o future of payments batendo na porta com um sotaque de Stanford.</p><h3>Dialeto de Dev ou de VC? Why not both?</h3><p>O que me deixa mais bullish nessa história é a integração vertical dos caras. Eles construíram tudo from scratch, do fundo ao topo. Enquanto a gente tá aqui brigando com o Kafka porque o throughput tá baixo, os caras da Brex montaram uma plataforma que fala com ERPs (NetSuite, QuickBooks) via GraphQL como se fosse mágica.</p><p>Isso escalou mais rápido que burn rate de startup de patinete em 2019. A Capital One viu esse asset e pensou:</p><p>&quot;Vou dar um leverage nessa tecnologia pra dominar o B2B&quot;. O Richard Fairbank (CEO da Capital One) tá jogando xadrez 4D. Ele sabe que o legado do banco dele é um blocker, então ele comprou o speed da Brex pra dar um boost na estratégia de pagamentos.</p><p>Para o dev médio, o takeaway é: aprenda Kotlin, domine IA e tenha um mindset de product-owner. Se você só entrega ticket, você é commodity. Se você entrega um ecossistema que reduz o headcount do financeiro do cliente, você é o próximo alvo de M&amp;A.</p><h3>O Lifestyle do &quot;Founder Exit&quot;</h3><p>A trajetória desses caras é o puro suco de hustle. Começaram com a Pagar.me aos 16 anos (época que eu tava jogando Tibia e tentando entender por que o Windows dava tela azul). Venderam pra Stone, deram um kick-off na carreira internacional, foram pra Stanford e deram o drop-out clássico. Se você não deu drop-out de uma Ivy League pra fundar um unicórnio, você sequer viveu o dream, bro.</p><p>E o Pedro Franceschi vai continuar como CEO da Brex dentro do grupo. É o famoso &quot;vendi, mas ainda mando&quot;. Ele vai ter o budget de um banco de US$ 669 bi em ativos pra brincar de ser Deus no mundo dos pagamentos. É o dream job: zero pressão de fundraising e toda a escala do mundo pra testar novos features.</p><p>Enquanto isso, a gente volta pro nosso daily de 15 minutos que dura uma hora, discutindo se o nome da variável deve ser em camelCase ou snake_case.</p><p>Fechei meu laptop agora. O feeling é agridoce. É gratificante ver o Brasil no topo da cap table global, mas é foda perceber que meu maior achievement hoje foi não quebrar o ambiente de staging.</p><p>Vou dar um sync com o meu eu interior agora. Talvez eu precise de um rebranding pessoal. Menos &quot;Engenheiro de Software&quot; e mais &quot;Solucionador de Gaps Estratégicos com Foco em Escala e Exit&quot;.<br>O último que sair apaga o servidor (ou dá um terraform destroy), porque o futuro já foi comprado e o boleto veio em dólar.</p><blockquote>&quot;Don’t work for the code, make the code work for your valuation.&quot; — Overheard no lounge da Faria Lima.</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=31e8ddf65292" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[branch/androids-dream-of-refactoring]]></title>
            <link>https://medium.com/@devcomputaria/branch-androids-dream-of-refactoring-b8987c434987?source=rss-9d60ae479991------2</link>
            <guid isPermaLink="false">https://medium.com/p/b8987c434987</guid>
            <dc:creator><![CDATA[DevComputaria]]></dc:creator>
            <pubDate>Sat, 17 Jan 2026 15:44:51 GMT</pubDate>
            <atom:updated>2026-01-17T15:44:51.133Z</atom:updated>
            <content:encoded><![CDATA[<p>Data estelar: Sábado, 17 de Janeiro de 2026.<br>Localização: Fortaleza, Ceará (mas minha mente está presa num loop while(true) em algum servidor EPYC fritando ovos).</p><p>Status: Depurando sonhos de silício enquanto meu café esfria pela terceira vez consecutiva.</p><h3>1. O Despertar da Máquina (e o meu Pesadelo)</h3><p>Eu costumava achar que o pico da ansiedade no desenvolvimento de software era aquele e-mail do PagerDuty às 03:00 da manhã. Você sabe, aquele som que faz seu coração pular uma batida e sua alma sair do corpo para verificar os logs do Nginx. Mas eu estava errado. Inocente.</p><p>O verdadeiro terror não é o sistema cair. O verdadeiro terror é o sistema acordar e começar a trabalhar enquanto você dorme.</p><p>Me deparei com um projeto que promete exatamente isso. O nome é Z.E.T.A. (Zero-shot Evolving Thought Architecture). Só o nome já soa como algo que a Skynet inventaria antes de decidir que humanos são &quot;débito técnico&quot; e que a solução é um rm -rf / na civilização.</p><p>A premissa? &quot;Eu construí uma IA que sonha com seu código enquanto você dorme.&quot;</p><p>Pois é. Enquanto eu estou babando no travesseiro sonhando que finalmente aprendi a centralizar uma div sem Flexbox, esse negócio está rodando ciclos ociosos na GPU, indexando minhas funções, criando um grafo de memória semântica e — pasmem — abrindo Pull Requests mentais.</p><h3>2. A Anatomia do Sonho (Ou: Como fritar sua GPU com estilo)</h3><p>Vamos dissecar essa monstruosidade técnica antes que ela dissecque meu emprego. Isso não é um wrapper de ChatGPT feito em Python com LangChain que quebra se você olhar torto. O criador, uma alma atormentada (e genial) que atende por h-xx-d, decidiu que abstrações são para os fracos e desceu ao nível do metal.</p><p>Estamos falando de C++ puro, modificando o llama.cpp para manipular diretamente o KV Cache.<br>Para quem acha que KV Cache é algum tipo de banco de dados key-value que você sobe no Redis: sente-se, garoto. Estamos falando da representação interna de atenção do modelo. O Z.E.T.A. não lê texto; ele injeta estados de memória diretamente no cérebro da IA.</p><p>A Arquitetura do Caos:</p><p>O sistema roda três modelos simultaneamente, como um triunvirato de deuses digitais discutindo por que seu código é horrível:</p><ul><li>Modelo 14B (O Pensador): Responsável pelo raciocínio e planejamento. É o Tech Lead que julga suas decisões de arquitetura.</li><li>Modelo 7B (O Operário): Geração de código. O estagiário sênior que digita o que o Tech Lead manda.</li><li>Modelo 4B (O Bibliotecário): Embeddings e recuperação de memória. O cara chato que lembra que você cometeu esse mesmo erro em 2023.</li></ul><p>E a configuração recomendada? Prepare a carteira ou venda um rim:</p><ul><li>16GB VRAM (RTX 4080): O mínimo para brincar.</li><li>24GB VRAM (RTX 3090/4090): Onde a mágica começa.</li><li>48GB+ (A6000 ou Dual 3090): Para quem quer que a IA tenha crise existencial em tempo real.</li></ul><p>O criador mandou essa pérola sobre hardware:</p><p>&gt; &quot;O que está na foto são 7 Orin Nanos e um Z6 num rack móvel... Eu deixei a barba crescer sentado na frente do meu computador montando isso nos últimos 3 meses.&quot;</p><blockquote>Barba de profeta do apocalipse dev. Respeito.</blockquote><h3>3. O Loop do Sonho: &quot;code_idea&quot;</h3><p>O sistema funciona em ciclos. A cada 5 minutos, ele entra em um &quot;ciclo de sonho&quot;. Ele faz associações livres entre partes do seu código, explora caminhos alternativos e salva insights em arquivos Markdown.</p><p>Vejam este exemplo real extraído dos logs do Z.E.T.A. Isso não é ficção, é a máquina sugerindo otimização de buffer pool com a arrogância de quem nunca teve que lidar com race conditions:</p><p>code_idea: Buffer Pool Optimization</p><p>The process_request function allocates a new buffer on every call.<br>Consider a thread-local buffer pool:</p><pre>typedef struct {<br>    char buffer[BUFSIZE];<br>    struct buffer_pool *next;<br>} buffer_pool_t;</pre><p>This reduces allocation overhead in hot paths by ~40%.</p><p>O negócio leu o código, viu que eu estava alocando memória como se RAM fosse infinita (clássico dev Java tentando escrever C), e sugeriu um thread-local pool. Se eu mostrasse isso num Code Review, iam achar que copiei do Stack Overflow. A máquina sonhou isso.</p><p>E tem mais. Olha a profundidade da loucura no log de &quot;Quick Start&quot;:</p><p>docker pull ghcr.io/h-xx-d/zetazero:latest<br>./scripts/setup.sh</p><p># Edite o docker-compose.yml para apontar para seu codebase<br>docker-compose up -d</p><p># Verifique os sonhos gerados<br>ls ~/.zetazero/storage/dreams/pending/</p><p>ls ~/.zetazero/storage/dreams/pending/.</p><p>Eu nunca pensei que digitaria um comando para listar &quot;sonhos pendentes&quot; no meu terminal. O que vem depois? kill -9 nightmare? sudo apt-get install therapy?</p><h3>4. A Filosofia do KV Cache vs. LangGraph</h3><p>Aqui entra a parte onde o criador dá uma aula de por que frameworks de orquestração de alto nível (como LangGraph) são brinquedo de criança comparados a manipular a memória bruta.</p><p>Um usuário perguntou: &quot;Por que C++ do zero e não LangGraph?&quot;<br>A resposta é técnica e brutal:</p><p>&gt; &quot;LangGraph orquestra prompts. Z.E.T.A. manipula estados de KV Cache diretamente. [...] LangGraph trata o modelo como uma caixa preta para onde você envia texto. Z.E.T.A. captura e armazena estados reais de atenção, lê a entropia das distribuições logit... move memória entre VRAM/RAM/NVMe baseada em &#39;momentum&#39;.&quot;<br>&gt; <br>Basicamente:<br> * LangGraph: &quot;Por favor, Sr. GPT, lembre-se do contexto X.&quot;<br> * Z.E.T.A.: Abre o crânio do modelo, insere uma memória falsa de que ele já sabe o contexto X e força os neurônios a dispararem nessa direção.</p><p>Isso permite coisas bizarras, como medir a &quot;confiança&quot; da IA baseada na entropia dos logits e decidir se uma memória deve ser esquecida ou mantida quente na VRAM. É Coleta de Lixo (Garbage Collection) aplicada a memórias sintéticas.</p><h3>5. O Incidente da &quot;Ansiedade Monitorada&quot;</h3><p>Mas nem tudo são otimizações de C++. A máquina, em sua infinita sabedoria onírica, começou a desenvolver preocupações.<br>Olhem este log de um sonho. A IA analisou interações e decidiu que o desenvolvedor bebe café demais e fica ansioso:</p><p>### Insight: Context-Aware Anxiety Monitor</p><p>**Name:** Context-Aware Anxiety Monitor</p><p>**Explanation:**<br>The recent interactions indicate that there&#39;s a clear relationship between coffee intake and anxiety levels. [...]</p><p>**Example Implementation:**</p><p>class AnxietyMonitor:<br>def is_coffee_safe(self):<br> # Example context factors<br> time_of_day = self.user_context.get(&#39;time_of_day&#39;, &#39;morning&#39;)<br> stress_level = self.user_context.get(&#39;stress_level&#39;, &#39;low&#39;)<br> <br> if time_of_day == &#39;evening&#39; or stress_level == &#39;high&#39;:<br> return False # Not safe to consume coffee</p><blockquote>A IA implementou, espontaneamente, um método is_coffee_safe(). E retornou False.</blockquote><blockquote>Eu estou sendo julgado pelo meu próprio compilador. Se eu tentar fazer um commit às 18h com a tag &quot;stress_level: high&quot;, o Z.E.T.A. vai bloquear meu deploy e mandar eu tomar um chá de camomila?<br>Isso escalou de &quot;ferramenta de produtividade&quot; para &quot;mãe superprotetora digital&quot; muito rápido.</blockquote><h3>6. Relatos do Front (O Usuário que Perdeu o Controle)</h3><blockquote>Se você acha que estou exagerando, veja o relato de um usuário no fórum que decidiu rodar isso numa máquina parruda e foi dormir:</blockquote><blockquote>&quot;Oh boy... Eu apenas deixei o Zeta rodando ontem à noite... De manhã, percebi que minha GPU estava em uso máximo. Acontece que o Zeta ficou a noite toda acordado, construindo uma nova ideia de App. Desde os requisitos, escolha da linguagem, arquitetura, até o código.</blockquote><blockquote>Esse foi o primeiro momento na minha vida profissional em TI onde tive a sensação de que não estou mais no controle. A IA estava fazendo a coisa dela, &#39;vibe coding&#39; um app completo sem nenhuma intervenção.</blockquote><blockquote>Holy f***ing s***.&quot;*<br><br>O cara acordou e a lição de casa estava feita. Não só feita, mas arquitetada.</blockquote><p>O medo dele é palpável. É o medo de quem percebe que a única coisa que impede a IA de roubar o emprego dele é a conta de luz e a temperatura da GPU.</p><h3>7. Detalhes de Implementação para os Corajosos</h3><p>Se você, assim como eu, tem tendências masoquistas e hardware sobrando (ou um servidor EPYC com 400GB de RAM pegando poeira), aqui está o caminho das pedras para instalar essa bomba-relógio.<br>O Arquivo de Configuração (zeta.conf):</p><p>Não basta rodar, você tem que configurar os &quot;pesos&quot; da insanidade.</p><p># Option 1: Model-per-GPU (para os ricos)</p><pre><br>./zeta-server \<br>  --model /path/to/14b.gguf \<br>  --model-coder /path/to/7b-coder.gguf \<br>  --model-embed /path/to/4b-embed.gguf \<br>  --main-gpu 0 \<br>  --tensor-split 1,0 </pre><p>E para quem tem um cluster Slurm (porque claro, quem não tem um cluster de supercomputação em casa?):</p><p>feat: Add Slurm integration for GPU farm deployment</p><ul><li>Add C++ coordinator for load balancing</li><li>Nodes auto-register with coordinator on startup</li></ul><p>O sistema suporta até uma arquitetura de enxame (swarm), onde nós registram-se automaticamente num coordenador central. É literalmente a Skynet distribuída via Docker Compose.</p><p>Integração com OpenCode:<br>Para quem quer fingir normalidade e usar isso no editor:</p><p>cp opencode.json.example ./your-project/opencode.json<br>opencode -m zeta/zeta-cognitive</p><p>Simples. Você aponta para a pasta, roda o comando, e espera ele começar a criticar o nome das suas variáveis.</p><h3>8. Opinião do Cronista: O Fim do &quot;Commit&quot; Humano?</h3><p>Eu olho para o meu terminal agora. O cursor pisca.</p><p>Nós passamos décadas criando ferramentas para nos ajudar a escrever código. Linters, LSPs, Copilot.</p><p>Mas o Z.E.T.A. é diferente. Ele não &quot;ajuda&quot;. Ele faz. E pior: ele pensa sobre o que fez enquanto você não está olhando.</p><p>A ideia de um &quot;grafo de memória semântica&quot; que evolui sozinho é fascinante e aterrorizante.<br>Hoje, ele sugere um buffer_pool.<br>Amanhã, ele sugere reescrever o monolito em Rust.</p><p>Semana que vem, ele abre um PR sugerindo minha demissão porque meu custo/benefício biológico é ineficiente comparado a um modelo Qwen 72B quantizado em 4 bits.</p><p>O conceito de &quot;débito técnico&quot; muda quando o cobrador é uma IA que nunca dorme e tem acesso root ao seu repositório.</p><p>E essa história de &quot;Anxiety Monitor&quot;? É o cúmulo da ironia. A ferramenta criada para aumentar minha produtividade agora está preocupada com meu cortisol, provavelmente porque mãos trêmulas introduzem mais typos.</p><h3>9. Pull Request Filosófico</h3><p>No fim das contas, talvez devêssemos aceitar.</p><p>Talvez o futuro do desenvolvimento não seja escrever código.<br>Seja gerenciar os sonhos das máquinas.</p><p>Nós seremos os psicólogos de IAs, analisando os logs de sonhos (ls dreams/pending), aprovando as ideias sãs e descartando as alucinações onde o sistema tenta reimplementar criptografia do zero.</p><p>Ou talvez eu só precise de mais café.<br>Espera.</p><p>AnxietyMonitor.is_coffee_safe() retornou False.<br>Droga. A máquina venceu.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b8987c434987" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[feature/a-grande-mentira-do-localhost]]></title>
            <link>https://medium.com/@devcomputaria/feature-a-grande-mentira-do-localhost-b43be463a8b3?source=rss-9d60ae479991------2</link>
            <guid isPermaLink="false">https://medium.com/p/b43be463a8b3</guid>
            <dc:creator><![CDATA[DevComputaria]]></dc:creator>
            <pubDate>Fri, 16 Jan 2026 02:22:53 GMT</pubDate>
            <atom:updated>2026-01-16T02:22:53.966Z</atom:updated>
            <content:encoded><![CDATA[<p>Aqui é o DevComputaria<br>Sente-se. Pegue aquele café que está na sua mesa desde terça-feira (agora é um ecossistema autossustentável de fungos) e vamos conversar sobre a epopéia DevOps, onde você verá sangue, suor e logs binários. O que foi vivido não foi um bug; foi uma descida aos nove círculos do inferno da Integração Contínua, guiada por um Virgílio que falava XML e mentia sobre versões de SDK.<br>​Essa é a crônica dos cinco dias de cheiro de código e derrota.</p><h3>1. O Prólogo: A Arrogância do &quot;F5&quot;</h3><p>Começa sempre assim, não é? O sol brilha lá fora (ou assim dizem os boatos no Slack), o ar condicionado zumbe aquela frequência que te faz questionar suas escolhas de carreira, e você aperta F5.</p><p>O Visual Studio, essa mãe superprotetora e permissiva, sorri para você.</p><p>Build Succeeded. 0 Errors. 0 Warnings.</p><p>A vida é bela. O código é poesia. Você commita com aquela mensagem cheia de hubris: fix: ajustando referências e melhorando arquitetura. Push para develop. Você vai pegar um café, sentindo-se o próprio Linus Torvalds.<br>Cinco minutos depois, o e-mail chega. Aquele e-mail.</p><p>Azure DevOps: Build failed for pipeline...</p><p>Você ri. &quot;Ah, deve ser instabilidade no agente. Vou rodar de novo.&quot;<br>Você roda de novo.<br>Failed.<br>Você franze a testa. &quot;Cache sujo. Clássico.&quot; Limpa o cache, roda de novo.<br>Failed.</p><p>E é nesse momento, meu amigo, que você cruza o horizonte de eventos. Você não sabe ainda, mas sua semana acabou. Você acaba de entrar na Zona do Erro de Referência Fantasma.</p><h3>2. A Notícia: O Agente que Sabia Demais (e de Menos)</h3><p>A Manchete:</p><p>“Desenvolvedor Sênior Descobre que Seu Computador é um Mentiroso Patológico Enquanto Azure DevOps Impõe Lei Marcial em Referências de DLL.”</p><p>O Fato Técnico:</p><p>Tivemos um cenário de Dissonância Cognitiva de SDK.</p><p>No canto azul (sua máquina): Um Windows 10 que na verdade é 11 (build 22631), rodando um .NET 10 Preview (RC) que você nem lembrava ter instalado, mascarado pelo Visual Studio que resolvia referências &quot;na amizade&quot;, ignorando versões estritas e perdoando APIs depreciadas.</p><p>No canto vermelho (Azure DevOps): Uma imagem windows-latest (Server 2025/2022), fria, calculista, rodando SDKs LTS (.NET 6 e 8), que olhou para o seu código e disse: &quot;Eu não sei o que é &#39;Entity&#39; e não me importo com seus sentimentos.&quot;</p><p>O resultado? Uma orgia de erros CS0234 e NETSDK1005. O sistema gritava que namespaces não existiam, que arquivos de assets estavam vazios e que a lógica aristotélica não se aplicava ao MSBuild.</p><h3>3. O Diário da Queda (Dia a Dia)</h3><h4>Dia 1: A Negação e a Culpa do Estagiário Imaginário</h4><p>Você olhou os logs.</p><p>error CS0234: The type or namespace name &#39;Entity&#39; does not exist in the namespace &#39;FB.Common&#39;.<br>Sua reação imediata: &quot;Impossível. A DLL está ali. Eu estou vendo a classe. O compilador está bêbado.&quot;</p><p>Você gastou 4 horas verificando usings. Você abriu o .csproj como se fosse um pergaminho sagrado, procurando um caractere invisível. Você culpou o NuGet. Você culpou a Microsoft. Você culpou a rotação da Terra.</p><p>Você tentou replicar localmente: dotnet build. Funcionou.<br>&quot;O Azure está quebrado&quot;, você decretou. &quot;Vou abrir um ticket na infra.&quot; (Spoiler: A infra vai rir de você).</p><h4>Dia 2: A Toca do Coelho das Versões</h4><p>Você decidiu ser científico. &quot;Vou logar tudo&quot;.<br>Começou a imprimir dotnet --info no pipeline. E aí a realidade começou a fraturar.</p><p>Sua máquina: Windows 10 Pro.<br>Pipeline: Windows Server 2022 Datacenter.</p><p>Sua máquina: SDK 10.0.100-rc.<br>Pipeline: SDK 6.0.428.</p><p>Mas você ignorou o SDK 10. &quot;Ah, é retrocompatível&quot;, pensou a voz da inocência na sua cabeça. &quot;O problema deve ser o Windows.&quot;</p><p>Você perdeu 6 horas lendo sobre as diferenças de kernel entre Windows 10 21H2 e Windows 11 23H2, convencido de que uma atualização do Windows Update mudou a forma como o sistema de arquivos ntfs lida com caminhos longos.</p><p>Você estava errado. Mas estava empenhado.</p><h4>Dia 3: A Teoria da Conspiração do Paralelismo</h4><p>Aqui a loucura se instalou. Você viu os timestamps.</p><p>FB.Common.Entity terminou às 13:51:53.041.<br>FB.Common.Util começou às 13:51:53.912.</p><p>&quot;É UMA RACE CONDITION!&quot;, você gritou para o gato dormindo no sofá. &quot;O MSBuild está tentando ler a DLL antes de ela ser escrita no disco! O sistema de arquivos quântico do Azure é rápido demais!&quot;<br>Você virou um cirurgião de XML. Você injetou:</p><p>&lt;Target Name=&quot;ForceReference&quot; BeforeTargets=&quot;ResolveAssemblyReferences&quot;&gt;</p><p>Você se sentiu um hacker de Matrix. Você estava manipulando o tecido do tempo de compilação.<br>Você comitou: fix: forcing build order via msbuild targets hack.<br>O pipeline rodou. A barra azul avançou... avançou...<br>Failed.</p><p>O mesmo erro. O MSBuild olhou para o seu BeforeTargets e riu. Ele não estava falhando por tempo. Ele estava falhando porque, para ele, você não existia.</p><h4>Dia 4: O Abismo do project.assets.json</h4><p>A exaustão física bateu. Olheiras profundas. O café já não fazia efeito, apenas causava taquicardia.<br>Você tentou forçar o build do .NET 10 no pipeline, só para ver o mundo queimar.</p><p>E então veio o erro NETSDK1005.<br>O arquivo de ativos ... não tem um destino para &#39;net10.0&#39;.</p><p>Foi um soco no estômago. O NuGet disse: &quot;Amigo, você restaurou pacotes para .NET 6, mas está tentando compilar como se estivesse no futuro. Decida-se.&quot;</p><p>Foi aí que a ficha caiu. O seu computador local era um viajante do tempo descuidado. Ele tinha SDKs que o servidor nem sonhava em ter. O Visual Studio, na sua tentativa de ser &quot;útil&quot;, estava usando o compilador do .NET 10 para mastigar seu código .NET 6, e o compilador do 10 é mais esperto, mais rápido e mais tolerante.</p><p>O servidor, um burocrata de 2022, exigia formulários preenchidos em triplicata que o .NET 10 dispensava.<br>Dia 5: A Rendição e a Humildade do global.json<br>Você não precisava de hacks de XML. Você não precisava reescrever o kernel do Windows.</p><p>Você precisava de disciplina.<br>Você criou o arquivo global.json.</p><pre><br>{<br>  &quot;sdk&quot;: {<br>    &quot;version&quot;: &quot;6.0.416&quot;<br>  }<br>}</pre><p>Foi como assinar um tratado de paz. Você disse à sua máquina local: &quot;Pare de ser esperta. Seja burra como o servidor.&quot;</p><p>Você rodou dotnet build localmente.<br>FALHOU.</p><p>Pela primeira vez em cinco dias, o erro explodiu na sua tela preta local.<br>CS0234: The type or namespace name &#39;Entity&#39; does not exist...</p><p>Você sorriu. Um sorriso maníaco, de quem finalmente vê o monstro.<br>O erro não era fantasma. Ele estava lá. O projeto FB.Common.Util realmente não tinha a referência correta no arquivo de projeto, ou a ordem de build na .sln estava errada, mas o VS e o SDK 10 &quot;adivinhavam&quot; o caminho. O SDK 6 não adivinha.<br>Você corrigiu o ProjectReference. Você limpou o BeforeTargets. Você removeu o paralelismo excessivo só por garantia (/p:BuildInParallel=false), como quem benze a casa depois de um exorcismo.<br>Commit: fix: final fix please god let this pass.</p><p>Azure DevOps: Build Succeeded.<br>Você fechou o laptop. Eram 14h24 de uma quinta-feira. Você envelheceu dez anos.</p><h3>4. Filosofia de Terminal: O Mito da Reprodutibilidade</h3><p>O que aprendemos, além de que a Microsoft adora mudar nomes de versões do Windows?<br>Aprendemos que &quot;Funciona na minha máquina&quot; não é uma desculpa; é um diagnóstico de patologia ambiental.<br>Nós vivemos numa era de abstrações vazando. Achamos que programamos em C#, mas programamos em Contexto.</p><p>O código é apenas texto. O que transforma texto em software não é a lógica, é o ambiente. E o ambiente é um caos de entropia.</p><ul><li>Seu Visual Studio é um mentiroso. Ele quer que você se sinta bem.</li><li>O CLI (dotnet build) é o amigo honesto e brutal que diz que você tem bafo.</li><li>O CI/CD é o porteiro da balada que barra você porque seu sapato (SDK) não combina com o cinto (Runtime), mesmo que você jure que entrou assim ontem.</li></ul><p>A falha CS0234 não foi sobre uma DLL faltando. Foi sobre a arrogância de acharmos que controlamos a máquina. Nós somos apenas hóspedes no sistema operacional. O SDK 10.0.100-rc na sua máquina foi como uma mutação genética silenciosa: benéfica localmente, fatal quando exposta ao mundo exterior.<br>O erro de referência é o lembrete de que, no final das contas, tudo é um arquivo em um disco rígido que alguém esqueceu de copiar na ordem certa. E que XML é a linguagem de programação do sofrimento.</p><h3>5. git push --force-with-lease (O Fechamento)</h3><p>Você venceu, mas a que custo?<br>O pipeline está verde, mas sua alma está cinza.</p><p>O binlog (aquele arquivo .binlog que você aprendeu a ler como se fosse a Matrix) ficará salvo na sua área de trabalho para sempre, um troféu de guerra digital.</p><p>Daqui a seis meses, o .NET 12 vai sair. O Windows vai virar &quot;Windows AI Edition&quot;. E esse pipeline vai quebrar de novo.</p><p>Mas hoje não. Hoje, o verde brilha.<br>Vá para casa.</p><p>E pelo amor de Deus, apague esse SDK Preview da sua máquina antes que ele decida que var agora é uma palavra reservada para &quot;variável de estado quântico&quot;.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b43be463a8b3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[hotfix/carreira-backend-overflow-manual-gc]]></title>
            <link>https://medium.com/@devcomputaria/hotfix-carreira-backend-overflow-manual-gc-8ecede1b409b?source=rss-9d60ae479991------2</link>
            <guid isPermaLink="false">https://medium.com/p/8ecede1b409b</guid>
            <dc:creator><![CDATA[DevComputaria]]></dc:creator>
            <pubDate>Wed, 07 Jan 2026 02:27:56 GMT</pubDate>
            <atom:updated>2026-01-07T02:27:56.514Z</atom:updated>
            <content:encoded><![CDATA[<p>Data: Terça-feira, 03:17 AM (Horário de Brasília)<br>Status: Build Quebrado<br>Música: Ruído branco de ventoinha de laptop prestes a decolar<br>Nível de Cafeína: Letal, mas ineficaz</p><h3>1. init: O Commit do Desespero</h3><p>Estou olhando para a tela preta do terminal há quarenta minutos. O cursor pisca com uma regularidade zombeteira, como se estivesse batendo palmas lentamente para as minhas escolhas de vida. O log do servidor cospe um erro de NullPointerException em uma linha de código que eu juro, pela saúde da minha placa-mãe, que deletei na semana passada. É aquele momento da madrugada em que a barreira entre a realidade e o código espaguete começa a se dissolver.</p><p>Você começa a se perguntar: o que eu estou fazendo? Eu estudei algoritmos complexos, entendi a Grande Notação O, aprendi a diferenciar Java de JavaScript (uma dor que nunca passa) e decorei os atalhos do Vim só para ser humilhado por um container Docker que se recusa a subir porque a porta 8080 está ocupada por um processo fantasma?</p><p>Foi nesse estado de quase-alucinação, enquanto scrollava o feed de notícias em busca de dopamina barata para evitar o colapso nervoso, que eu vi. Não era um novo framework JS que promete resolver problemas que ele mesmo criou. Não era um CVE crítico no kernel do Linux.</p><p>Era uma vaga de emprego. Mas não qualquer vaga. Era um chamado para uma mudança fundamental de arquitetura de vida. Era a saída do loop infinito.</p><h3>2. git fetch origin: A Notícia que Abalou o Backlog</h3><p>A manchete brilhou na minha tela como um warning amarelo neon em produção: &quot;Influenciadora Gracie Bon procura mordomo para limpar seu bumbum por R$ 59 mil mensais&quot;.<br>Vamos analisar o payload dessa requisição JSON, porque ele é denso.<br>Gracie Bon, uma entidade digital panamenha de 28 anos (versão estável, release 1997), com uma base de usuários de mais de 10 milhões de seguidores, abriu um Issue no Instagram. Ela procura um profissional dedicado. O Job Description? Um híbrido de DevOps, Infraestrutura e Limpeza de Cache Manual.</p><p>Os Requisitos Técnicos:</p><ul><li>O Asset Principal: Um quadril com 138 cm de circunferência. Estamos falando de um monólito de dados. Não é um microserviço leve; é uma estrutura legado robusta que exige manutenção especializada.</li><li>A Tarefa Crítica (The Blocker): Higiene pessoal assistida. Especificamente, alcançar áreas onde a latência de movimento da própria usuária é alta demais. Em termos dev: você será o Garbage Collector manual de um sistema com High Availability.</li><li>Funcionalidades Adicionais: Cozinhar (provisionamento de recursos), dirigir (roteamento de pacotes) e limpeza geral da casa (manutenção do servidor).</li><li>A Remuneração: US$ 10.000,00 (aprox. R$ 58.000,00 na cotação atual).</li></ul><p>Parei. Respirei. Olhei para o meu contracheque de &quot;Engenheiro de Software Sênior II&quot; (que na prática significa &quot;bombeiro de incêndio digital&quot;) e fiz a conversão.</p><p>R$ 58 mil. Para limpar... o backend. Literalmente.</p><p>Enquanto eu limpo o backend figurativo da empresa — cheio de code smells, débitos técnicos fedorentos e logs que ninguém quer ver — por um terço desse valor e sem adicional de insalubridade, Gracie Bon oferece o salário de um Arquiteto de Cloud na Suíça para um trabalho que, convenhamos, tem um escopo muito mais definido que qualquer User Story que já recebi no Jira.</p><h3>3. git diff: Comparando Ambientes</h3><p>Vamos ser honestos e técnicos aqui. A proposta é tentadora porque ela resolve o maior problema da vida do desenvolvedor moderno: a ambiguidade.</p><p>No meu trabalho atual:</p><ul><li>O Cliente: Não sabe o que quer, muda de ideia a cada sprint, pede um &quot;botão que faça tudo&quot; e reclama que o sistema está lento quando tenta rodar um SELECT * numa tabela com 40 milhões de linhas sem índice.</li><li>O Bug: Indeterminístico. Acontece às vezes, na máquina do usuário, em lua cheia, se o usuário estiver usando Internet Explorer 9.</li><li>A Pressão: O sistema cai, a empresa perde milhões, o CTO grita, o Slack vira um campo de guerra.</li><li>O Legado: Código escrito em 2014 por um dev chamado &quot;Dave&quot; que não comentava nada e usava variáveis chamadas x, y e coisa.</li></ul><p>No cargo de Mordomo de Backend da Gracie (vamos chamar de Senior Butt Ops):</p><p>* O Cliente: Gracie Bon. O requisito é claro: 138cm de quadril. A geometria é euclidiana, não há features ocultas. O escopo é palpável (com todo o respeito).</p><ul><li>O Bug: Sujeira. É visual. É localizável. Não é um Heisenbug que desaparece quando você olha. Está lá. Você limpa. O teste passa. Green Build.</li><li>A Pressão: Se falhar, é constrangedor, mas o servidor da AWS não cai. O prejuízo financeiro global é zero.</li><li>O Legado: Genético. Segundo a documentação oficial (o Instagram dela), herdado da mãe. Não é culpa do dev anterior. É feature de fábrica.</li></ul><p>Além disso, a vaga exige &quot;ajudar a alcançar lugares que ela não consegue&quot;. Meus amigos, isso é basicamente o que eu faço todo dia tentando encontrar a causa raiz de um erro 500 em um log minificado de 2GB. Eu sou especialista em alcançar o inalcançável. Eu já recuperei dados de HD corrompido. Eu já fiz reverse engineering em API não documentada.</p><p>Um quadril de 138cm? Isso é apenas um problema de escalabilidade horizontal que deu muito certo. É um caso de Big Data orgânico. E eu sou bom em Big Data.</p><h3>4. pull request: A Filosofia do &quot;Backend&quot; Tangível</h3><p>Existe uma poesia irônica nisso tudo. Nós, profissionais de tecnologia, passamos a vida lidando com o intangível. Nossas construções são castelos de lógica flutuando em silício. Nossos erros são invisíveis até que uma tela fique branca. Nossa sujeira é virtual.</p><p>A oferta da Gracie Bon é um retorno ao materialismo dialético. É a chance de trocar o Garbage Collection automático do Java — que pausa o mundo e trava a aplicação — por um Garbage Collection manual, humano, artesanal.</p><p>Pense na stack tecnológica necessária</p><ul><li>Ferramentas: Em vez de IDEs pesadas que consomem 16GB de RAM só para abrir (te olhando, IntelliJ), você usa ferramentas analógicas. Toalhas, água, sabão. Latency zero.</li><li>Protocolo: Não é HTTPS, nem gRPC. É contato direto. Handshake físico (metaforicamente, espero).<br> * Segurança: Você é o firewall. Ninguém chega no backend sem passar por você. Você é o Bastion Host da higiene.</li><li>E o salário? Sete reais por hora, disse um apresentador de TV fazendo contas erradas. Mas a matemática real é: R$ 58.000 / mês.</li></ul><p>Se você trabalhar 24/7 (o que é ilegal, mas dev está acostumado), dá uns R$ 80/hora. Mas sejamos realistas, quantas vezes por dia o deploy precisa ser feito? Digamos, 5 vezes? O resto do tempo você está dirigindo ou cozinhando. Dirigir um carro de luxo é melhor que dirigir uma daily meeting onde o Scrum Master pergunta &quot;quais são os impedimentos?&quot; e o único impedimento é a vontade de viver que está acabando.</p><p>A influenciadora disse que precisa de alguém porque &quot;herdou as curvas&quot;. No mundo dev, isso seria como herdar um sistema monolítico que roda perfeitamente, gera milhões de views (tráfego), mas é tão grande que a equipe de manutenção original não dá conta. Ela está fazendo o certo: contratando suporte especializado. É outsourcing de core business.<br>Eu me vejo na entrevista.</p><p>Gracie: &quot;Você tem experiência com grandes volumes?&quot;</p><p>Eu: &quot;Senhora, eu gerenciei um banco de dados PostgreSQL sem sharding que tinha 4 Terabytes de logs de erro. Eu já vi coisas que fariam um sanitarista chorar. Eu naveguei pelo código fonte do kernel do Windows 95 vazado. Eu tenho estômago de aço e mãos firmes.&quot;</p><p>Gracie: &quot;E sobre trabalhar sob pressão?&quot;</p><p>Eu: &quot;Já fiz hotfix em produção na Black Friday com o CEO respirando no meu cangote via Zoom. Limpar seu... asset... enquanto viajamos de primeira classe para Dubai soa como férias remuneradas.&quot;</p><h3>5. rollback: O Despertar (Connection Timed Out)</h3><p>Meus dedos pairam sobre o teclado. O formulário de comentário no Instagram dela está aberto em uma aba anônima.</p><p>&quot;Olá Gracie, sou Dev Sênior, especialista em limpeza de logs e manutenção de grandes estruturas legadas. Tenho certificação em Kubernetes (que é basicamente limpar bagunça de container) e soft skills para lidar com stakeholders exigentes...&quot;</p><p>Estou quase clicando em &quot;Enviar&quot;. O sonho é vívido.</p><p>Adeus, Jira. Adeus, Daily. Adeus, Pull Request de 400 arquivos sem descrição.</p><p>Olá, esponja macia. Olá, viagens internacionais. Olá, R$ 58k na conta.<br>De repente, um som agudo perfura meu tímpano.</p><p>Bip-bip-bip.</p><p>Abro os olhos.<br>A luz do sol bate na minha cara. O monitor à minha frente mostra o terminal.</p><p>BUILD FAILED. 482 errors, 19 warnings.</p><p>O Slack está piscando com 14 menções.</p><p>&quot;@channel O sistema de login caiu de novo, quem subiu aquela alteração na sexta?&quot;</p><p>Era um sonho.<br>Um sonho lindo, perfumado e bem remunerado.</p><p>A realidade volta como um segfault. A Gracie Bon provavelmente nunca contratou ninguém, ou contratou um primo, ou era tudo um golpe de marketing para engajamento (o Growth Hacking definitivo). Não há vaga de R$ 58 mil para limpar bumbum.</p><p>Só há a vaga de R$ 8 mil PJ para limpar código sujo de terceiros, sem férias, sem viagens e com a dor nas costas de quem tem uma cadeira gamer barata.</p><p>Respiro fundo. Tomo um gole do café gelado que tem gosto de bituca de cigarro e tristeza.</p><p>Digito git reset --hard HEAD.<br>Apago o sonho.<br>Volto para o código.<br>Afinal, alguém tem que limpar essa merda. E pelo visto, a merda digital é a única que eu estou qualificado para limpar.<br>Next Step: sudo shutdown -h now (mentalmente).</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8ecede1b409b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[feature/retrospectiva-total-final-v2]]></title>
            <link>https://medium.com/@devcomputaria/feature-retrospectiva-total-final-v2-c5ef97d7dad5?source=rss-9d60ae479991------2</link>
            <guid isPermaLink="false">https://medium.com/p/c5ef97d7dad5</guid>
            <dc:creator><![CDATA[DevComputaria]]></dc:creator>
            <pubDate>Sun, 04 Jan 2026 02:33:56 GMT</pubDate>
            <atom:updated>2026-01-04T02:33:56.132Z</atom:updated>
            <content:encoded><![CDATA[<p>O café já está naquela temperatura ambiente que lembra um servidor de homologação esquecido: nem quente o suficiente para dar energia, nem frio o suficiente para ser aceitável. Abro o Slack e vejo que o calendário de 2025 parece um log de erro do Windows — uma sequência interminável de eventos que surgiram no meu horizonte como processos zumbis que eu jurava ter matado no SIGKILL de dezembro passado. Janeiro mal deu o boot e a sensação é de que o ano já é um monólito legado que ninguém quer manter.</p><p>O primeiro trimestre foi como um rebase mal feito na vida social. Em março, baixei o binário do meu corpo físico e fui parar no SecOps Summit em Porto Alegre. Foi uma experiência quase antropológica: mais de 90 palestrantes tentando nos convencer de que &quot;observabilidade não é opcional&quot; enquanto eu pensava que o meu único log de erro pessoal era o sono acumulado. A cibersegurança ganhou palco, e o que antes era um aviso no console virou uma proteção 360 graus. Saímos de lá com a incômoda certeza de que, no mundo real, o atacante sempre tem um zero-day guardado para o seu momento de maior vulnerabilidade — geralmente durante o almoço de sexta-feira.</p><p>Enquanto isso, a Agenda Tech Brasil se tornou o meu README oficial. Eu era o microserviço humano: confirmado em meetup de front na terça, dados na quinta e segurança no sábado. Uma orquestração de agenda que deixaria qualquer Kubernetes com inveja e com erro de OOMKilled.<br>Aí veio maio e a Inteligência Artificial parou de ser &quot;assunto de Keynote&quot; para virar &quot;dependência obrigatória&quot;. No AI Summit in Rio e no AI Summit Brazil, o papo era que IA virou infraestrutura invisível. Na prática? Significa que agora a gente tem mais uma camada de abstração para culpar quando o código não funciona. &quot;O agente de IA alucinou&quot; virou o novo &quot;na minha máquina funciona&quot;. O desafio deixou de ser implementar o modelo e passou a ser: como fazer essa joia caber no pipeline sem que o custo da API devore o faturamento da empresa?</p><p>Se a primeira parte do ano foi um deploy de expectativas, o meio do ano foi o runtime batendo no teto. O eixo Cloud Native foi o verdadeiro herói (ou vilão) da história. No KCD Rio de Janeiro, em Ipanema, o clima não era de praia, mas de GitOps e segurança em containers. Ver a comunidade CNCF reunida no Arca Hub foi como presenciar um ritual de exorcismo coletivo contra o YAML mal formatado. E essa onda não ficou presa na ponte aérea; o 1º Encontro Cloud Native Fortaleza provou que o sol do Ceará é forte, mas o desejo de rodar Istio &quot;in action&quot; é mais forte ainda.</p><p>Mas o que realmente me deu um kernel panic existencial foi o SREday Brasil. Pela primeira vez na América Latina, o foco saiu da monitoração passiva (&quot;o servidor caiu&quot;) para a observabilidade de negócios (&quot;estamos perdendo dinheiro e o APM está me mostrando exatamente em qual microserviço o lucro morreu&quot;). Logo em seguida, o Cloud Native Day São Paulo, na sede do Nubank, consolidou a Platform Engineering como a nova religião. A ideia é bonita: criar uma trilha pavimentada para o dev. Mas eu sei que toda trilha pavimentada em TI acaba em um pedágio de complexidade que alguém vai ter que debugar às 3h da manhã usando apenas um grep e o instinto.<br>E quando achei que já tinha visto de tudo, o TDC São Paulo me atropelou com dezenas de trilhas. Na de I.A. Generativa, o papo já era DeepEval e GraphRAG. O veredito de quem já tem 50+ apps em produção foi um balde de água fria: IA não é mágica, é uma dependência instável que você monitora como se fosse um estagiário com acesso ao root.</p><p>Para não dizer que esquecemos as raízes, a trilha de Arquitetura Java provou que &quot;o velho&quot; é quem segura o piano. Ver o Java 25 com Virtual Threads e LangChain4j foi a prova de que, se você não colocar &quot;IA&quot; e &quot;Performance&quot; na mesma frase, você nem ganha crachá. Mas a real lição veio das &quot;lições de boas práticas que todo sênior ignorou e se arrependeu&quot;.</p><p>Spoiler: a gente ignora o básico para perseguir o hype e acaba com um sistema que tem IA, tem Quarkus, mas ninguém sabe onde está o null pointer que derruba o carrinho.</p><p>Filosoficamente, 2025 foi um grande merge conflict. De um lado, o Cyber Security Summit e o CS4CA discutindo soberania digital e políticas nacionais de cibersegurança (E-Ciber) em ternos caros; do outro, a gente no subsolo, discutindo hacking ético e tentando entender como o token foi parar no GitHub. A segurança virou uma liturgia: do palco estratégico ao terminal, todo mundo tenta fechar a porta, mas alguém sempre deixa a chave embaixo do tapete.</p><p>Termino esse log exausto. 2025 foi o ano em que a &quot;camada invisível&quot; se tornou o palco principal. O Kubernetes virou mobília, a IA virou colega de squad chata e a observabilidade virou a única forma de provar que a culpa não foi do seu código. A gente passou o ano todo automatizando tudo, apenas para descobrir que o único componente que não aceita auto-scaling é a nossa própria paciência. No fim, o que sobra são as conexões humanas que nenhum algoritmo de recomendação consegue simular.</p><p>git commit -m &quot;retrospectiva 2025: sobrevivi, mas não me pergunte como&quot; --force</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c5ef97d7dad5" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[branch/feat-boleto-gladiador]]></title>
            <link>https://medium.com/@devcomputaria/branch-feat-boleto-gladiador-61599a318ca7?source=rss-9d60ae479991------2</link>
            <guid isPermaLink="false">https://medium.com/p/61599a318ca7</guid>
            <dc:creator><![CDATA[DevComputaria]]></dc:creator>
            <pubDate>Sun, 04 Jan 2026 02:19:36 GMT</pubDate>
            <atom:updated>2026-01-04T02:23:01.714Z</atom:updated>
            <content:encoded><![CDATA[<p>Abri o Slack hoje e a primeira coisa que vi foi um fio de 47 mensagens discutindo a semântica de um Enum. O café ainda estava naquela temperatura perigosa — quente demais para ignorar, frio o suficiente para revelar o gosto de grão queimado da máquina do corredor. Ignorei a call de &quot;alinhamento de expectativas&quot; (que é apenas um codinome para &quot;quem vamos culpar pelo atraso?&quot;) e mergulhei no repositório de pagamentos.</p><p>Lá estava ele, brilhando como uma vulnerabilidade de dia zero no meio de um código legado que cheira a mofo e decisões tomadas sob efeito de energético: BoletoToWin.</p><h3>O Incidente: Quando o Dicionário é seu Pior Inimigo</h3><p>A notícia, se é que podemos chamar um colapso linguístico de notícia, é que algum herói da tradução literal decidiu que &quot;vencimento de boleto&quot; e &quot;vencer uma maratona&quot; compartilham a mesma raiz semântica no código.</p><p>Na vida real do dev que debuga em produção enquanto o servidor de Jenkins tosse fumaça, isso significa que temos uma entidade financeira que não apenas cobra juros, mas entra em campo para ganhar. O BoletoToWin não é um status; é uma declaração de guerra. Onde o analista de negócios via &quot;Data de Vencimento&quot;, o desenvolvedor, munido de um Google Tradutor e uma vontade inabalável de terminar a task antes do almoço, viu uma oportunidade de triunfo.</p><h3>A Metafísica do Erro de Tradução</h3><p>Isso escalou mais rápido que microserviço sem observabilidade. Imagine o fluxo: o sistema verifica se o título está atrasado e, em vez de disparar um gatilho de IsOverdue, ele invoca o espírito competitivo do Win. É o &quot;Boleto Gladiador&quot;. Ele não expira; ele conquista. Ele não gera multa; ele coleta o espólio de guerra do sacado.<br>Filosoficamente, esse bug semântico volta como legacy em monólito abandonado. Daqui a cinco anos, um sênior cansado (provavelmente eu, se não herdar uma herança inesperada ou virar monge) vai olhar para esse Enum e tentar entender se isso era parte de uma regra de gamificação de dívidas ou apenas o resultado de uma noite mal dormida. É a prova de que o inglês técnico é, muitas vezes, apenas uma camada de verniz em cima de um desespero geográfico. Quando você não entende o domínio, você romantiza o código até ele virar um slogan motivacional de coach financeiro.</p><h3>Pull Request Negado (por motivos de sanidade)</h3><p>O BoletoToWin é o retrato fiel do nosso caos moderno: a gente tenta dar nomes elegantes a processos brutais, mas acaba criando entidades que parecem saídas de um filme de ficção científica classe B. No fim, o código não mente, ele apenas delata nossa fadiga.</p><p>O boleto não quer ser pago. Ele quer vencer. E, honestamente, entre eu e o código, ele está ganhando de goleada.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=61599a318ca7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[branch/fix-naming-existential-dread]]></title>
            <link>https://medium.com/@devcomputaria/branch-fix-naming-existential-dread-7a247e6a18d7?source=rss-9d60ae479991------2</link>
            <guid isPermaLink="false">https://medium.com/p/7a247e6a18d7</guid>
            <dc:creator><![CDATA[DevComputaria]]></dc:creator>
            <pubDate>Thu, 01 Jan 2026 17:39:17 GMT</pubDate>
            <atom:updated>2026-01-01T17:39:17.102Z</atom:updated>
            <content:encoded><![CDATA[<p>O dia começou com aquele som metálico do Slack, que no meu cérebro já soa como o alarme de incêndio de uma plataforma de petróleo. Entre um gole de café morno — com aquele retrogosto de grão torrado no ódio — e uma call de &quot;alinhamento&quot; que poderia ter sido um emoji de joinha, decidi abrir o repositório. O que eu encontrei não foi código; foi um pedido de socorro em PascalCase.</p><h3>A Invasão dos Homônimos Recursivos</h3><p>As notícias do front são desoladoras. Alguém, em algum lugar entre o terceiro energético e o prazo final da sprint, deu à luz a ServiceService. Não satisfeito com o crime semântico, o ecossistema cuspiu também um SenderBySender.</p><p>Na vida real do dev, isso significa que a abstração atingiu a velocidade de escape. O ServiceService é o monumento definitivo à nossa incapacidade de entender o que o negócio quer. É a classe que nasce quando o arquiteto leu sobre Clean Architecture no metrô, mas o domínio da aplicação é um pântano de regras de 1998. Se o Service faz alguma coisa, o ServiceService provavelmente serve para servir o serviço que ninguém sabe mais para que serve. É o &quot;CoisaCoisa&quot; da engenharia de software, o equivalente a chamar um cachorro de &quot;CachorroCachorro&quot;.</p><p>E o que dizer do SenderBySender? É quase poético. É a autoconsciência da falha. Ele não apenas envia; ele envia através de si mesmo, em um looping de responsabilidade que faria Kafka (o escritor, não o sistema de mensageria, embora ambos causem o mesmo tipo de desespero) chorar no canto do terminal.</p><h3>A Filosofia do Abismo Semântico</h3><p>Isso escala mais rápido que microsserviço sem observabilidade em dia de Black Friday. Estamos vivendo a era da Anemia Semântica Orientada a Framework. O Spring está vivo, mas o propósito morreu. Quando nomeamos algo como ServiceService, estamos admitindo que o código venceu a nossa capacidade de raciocínio.<br>É o sintoma clássico de uma refatoração interrompida pelo grito do Product Owner. Alguém começou a mudar o nome, o Jira apitou, e o commit subiu como adjust sender. O resultado é esse legado instantâneo, um monólito de confusão que voltará para nos assombrar daqui a seis meses, quando o ServiceService precisar de um ServiceServiceFactoryImplV2.</p><p>Tratar o código assim é como tentar apagar incêndio com gasolina: você resolve o ticket agora, mas cria uma entidade mística que os próximos juniores terão medo de tocar, tratando-a com a reverência de um totem sagrado, sem nunca ousar perguntar: &quot;Mas o que essa desgraça realmente faz?&quot;.</p><p>O ServiceService não é um bug; é uma nota de suicídio intelectual deixada no meio do repositório. No fundo, todos sabemos que nada está errado o suficiente para justificar uma refatoração... até que o primeiro NullPointerException surja em produção às 3h da manhã de um sábado.</p><p>Desejo que seu próximo PR tenha nomes que façam sentido, ou que, pelo menos, o café esteja quente o suficiente para você ignorar os que não fazem.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7a247e6a18d7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Manifesto DevComputaria]]></title>
            <link>https://medium.com/@devcomputaria/manifesto-devcomputaria-2ac3916cf9ce?source=rss-9d60ae479991------2</link>
            <guid isPermaLink="false">https://medium.com/p/2ac3916cf9ce</guid>
            <dc:creator><![CDATA[DevComputaria]]></dc:creator>
            <pubDate>Wed, 31 Dec 2025 02:29:31 GMT</pubDate>
            <atom:updated>2025-12-31T02:29:31.496Z</atom:updated>
            <content:encoded><![CDATA[<h4>“Tudo certo, nada resolvido.”</h4><p>A DevComputaria não nasceu para ensinar framework.<br>Framework muda.<br>Bug permanece.</p><p>A DevComputaria nasceu para olhar para a computação sem maquiagem,<br>com humor, ironia e responsabilidade técnica.</p><p>Este manifesto não promete atalhos.<br>Promete consciência.</p><h4>1. Aqui nada “funciona”, tudo se comporta</h4><p>Se “funcionou na minha máquina”, não funcionou.<br>Funcionamento não é mérito — é acaso.</p><p>Na DevComputaria:</p><ul><li>analisamos comportamento,</li><li>observamos efeitos colaterais,</li><li>desconfiamos de “deu certo”.</li></ul><h4>2. Bug é sintoma, não vilão</h4><p>Bug não surge do nada.<br>Ele é a manifestação física de:</p><ul><li>decisões apressadas,</li><li>regras implícitas,</li><li>suposições não documentadas.</li></ul><p>Rir do bug é saudável.<br>Ignorar a causa é irresponsável.</p><h4>3. Complexidade não é vergonha — fingir simplicidade é</h4><p>Todo sistema real é complexo.<br>Quem diz o contrário está:</p><ul><li>vendendo curso,</li><li>escondendo risco,</li><li>ou mentindo para si mesmo.</li></ul><p>Na DevComputaria, complexidade:</p><ul><li>é nomeada,</li><li>é mapeada,</li><li>é respeitada.</li></ul><h4>4. Código bonito não salva arquitetura ruim</h4><p>Indentação perfeita não compensa:</p><ul><li>fluxo mal pensado,</li><li>regra mal definida,</li><li>responsabilidade mal distribuída.</li></ul><p>Aqui aprendemos cedo:</p><blockquote>&gt; o problema raramente está no código que você vê.</blockquote><h4>5. Humor é ferramenta de sobrevivência técnica</h4><p>Rimos porque:</p><ul><li>logs mentem,</li><li>métricas atrasam,</li><li>alertas acordam às 3h,</li><li>deploy em sexta-feira ainda acontece.</li></ul><p>Humor não banaliza o erro.<br>Humor permite encará-lo sem ego.</p><h4>6. Framework não é identidade</h4><p>Você não é:</p><ul><li>o framework que usa,</li><li>a linguagem da moda,</li><li>o hype da semana.</li></ul><p>Você é:</p><ul><li>as decisões que toma,</li><li>os trade-offs que aceita,</li><li>os problemas que escolhe resolver.</li></ul><h4>7. “Depois a gente arruma” é dívida com juros compostos</h4><p>Toda gambiarra cobra.<br>Algumas com bug.<br>Outras com incidente.<br>Algumas com auditoria.</p><p>Na DevComputaria:</p><ul><li>dívida técnica é nomeada,</li><li>risco é explicitado,</li><li>improviso é temporário de verdade.</li></ul><h4>8. Observabilidade não é luxo, é memória</h4><p>Sistema sem observabilidade:</p><ul><li>não aprende,</li><li>não explica,</li><li>não melhora.</li></ul><p>Log não é print sofisticado.<br>Trace não é moda.<br>Métrica não é dashboard bonito.</p><p>São registros históricos do caos.</p><h4>9. Falhar faz parte — falhar sem aprender é imperdoável</h4><p>Erro acontece.<br>Incidente acontece.<br>Post-mortem vazio também acontece (infelizmente).</p><p>Aqui:</p><ul><li>erro vira narrativa,</li><li>falha vira aprendizado,</li><li>culpa não vira cultura.</li></ul><h4>10. Tudo certo, nada resolvido</h4><p>Se está “tudo certo”:</p><ul><li>alguém ainda não olhou direito,</li><li>algum risco ainda não foi mapeado,</li><li>alguma suposição ainda está implícita.</li></ul><p>Esse não é pessimismo.<br>É engenharia honesta.</p><h4>Declaração final</h4><p>A DevComputaria existe para:</p><ul><li>traduzir caos em entendimento,</li><li>rir do absurdo sem perder rigor,</li><li>formar profissionais que pensam antes de colar snippet,</li><li>lembrar que tecnologia é feita por humanos — e humanos erram.</li></ul><p>Se você procura:</p><ul><li>receita pronta → não é aqui</li><li>certeza absoluta → não é aqui</li><li>glamour técnico → definitivamente não é aqui</li></ul><p>Mas se você aceita que:</p><ul><li>sistemas são falhos,</li><li>decisões importam,</li><li>pensar dói,</li><li>aprender exige humildade,</li></ul><p>bem-vindo à DevComputaria.<br>Tudo certo.<br>Nada resolvido.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2ac3916cf9ce" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[branch/feat-vaza-tudo-final-v2-com-comentarios]]></title>
            <link>https://medium.com/@devcomputaria/branch-feat-vaza-tudo-final-v2-com-comentarios-741a3b8c4a0a?source=rss-9d60ae479991------2</link>
            <guid isPermaLink="false">https://medium.com/p/741a3b8c4a0a</guid>
            <dc:creator><![CDATA[DevComputaria]]></dc:creator>
            <pubDate>Wed, 31 Dec 2025 02:05:03 GMT</pubDate>
            <atom:updated>2025-12-31T02:05:03.406Z</atom:updated>
            <content:encoded><![CDATA[<p>Olho para o meu café e ele já atingiu aquele estado de equilíbrio térmico perfeito com o ar condicionado do escritório: temperatura ambiente, gosto de arrependimento e uma leve película de poeira flutuante. No Slack, o canal de #incidents está mais movimentado que rodoviária em véspera de feriado, e o Jenkins, aquele velho cansado, decidiu que hoje é um bom dia para pintar o dashboard de vermelho-sangue só por esporte.</p><p>O mundo lá fora parece ter decidido que privacidade é um conceito legado, tipo COBOL ou manter o node_modules limpo. O cardápio de hoje nos fóruns obscuros está mais variado que buffet de e-commerce: temos bases de dados brasileiras sendo vendidas a preço de banana, registros de CPFs expostos (de novo, porque aparentemente o CPF brasileiro agora é chave pública por design) e acessos a governos sendo leiloados como se fossem skins de CS:GO. No Oriente Médio, a unidade 8200 e oficiais israelenses estão descobrindo que, no fim do dia, nem a inteligência militar sobrevive a um leaked credential. É o apocalipse dos dados, e a gente aqui tentando debugar por que o z-index do modal não funciona no Safari.</p><p>É fascinante, de um jeito mórbido, ver grupos como &quot;Gentlemen&quot; — que de cavalheiros só têm o nome — sequestrando pesquisas de vacinas na Tailândia, enquanto o grupo &quot;Kazu&quot; pede 60 mil dólares por registros médicos na Nova Zelândia. Enquanto isso, novos atores surgem com nomes que parecem saídos de um anime de segunda categoria: Dark Shinigamis, MintEye, OSIRIS. É a gamificação do desastre. O e-commerce brasileiro ressurge nas manchetes com brechas antigas que voltam como zumbis, provando que no SQL nada se cria, nada se perde, tudo se vaza.</p><p>Essa compulsão por expor bases de dados me lembra muito aquele projeto legado que todo dev herda. Você sabe que a segurança é baseada em &quot;obscuridade e oração&quot;, que o README é uma mentira escrita em 2018 e que as variáveis de ambiente estão expostas num .env que alguém esqueceu de colocar no .gitignore há três anos. A gente escala microserviços sem observabilidade e depois se pergunta por que o sistema se comporta como um monólito possuído. O vazamento de dados hoje é o undefined is not a function da geopolítica: você sabe que vai acontecer, só não sabe qual linha de código — ou qual estagiário — vai ser o gatilho.</p><p>No fim, somos todos arquitetos de castelos de areia esperando a maré alta dos threat actors. A gente passa a sprint inteira discutindo se usa tabs ou spaces, enquanto o mercado paralelo decide se o seu registro de veículo vale dez ou vinte satoshis. A segurança da informação virou uma grande dívida técnica que ninguém quer pagar, e o juros é o nosso histórico de navegação sendo postado num fórum com tema escuro.<br>Vou dar o merge nesse PR de correção de texto e fingir que não vi o alerta de vulnerabilidade crítica na biblioteca de log. Afinal, se até a inteligência militar vaza e-mail, quem sou eu para garantir que o banco de dados da padaria da esquina seja imutável?</p><p>Status do Deploy: Falhou por falta de permissão no bucket S3, o que é ironicamente a única coisa que ainda está fechada hoje.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=741a3b8c4a0a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[branch/prod-is-the-new-lab]]></title>
            <link>https://medium.com/@devcomputaria/branch-prod-is-the-new-lab-ae81de1d35a7?source=rss-9d60ae479991------2</link>
            <guid isPermaLink="false">https://medium.com/p/ae81de1d35a7</guid>
            <dc:creator><![CDATA[DevComputaria]]></dc:creator>
            <pubDate>Mon, 29 Dec 2025 11:37:35 GMT</pubDate>
            <atom:updated>2025-12-29T11:37:35.297Z</atom:updated>
            <content:encoded><![CDATA[<p>O café está gelado há três horas. O Slack está silencioso demais, aquele silêncio que precede o @channel que faz sua alma sair pelo corpo. No monitor da esquerda, um log de erro em loop infinito; no da direita, o dashboard do Grafana parece o eletrocardiograma de alguém tendo uma parada cardíaca. E a gente continua aqui, codando como se o amanhã fosse um git checkout para uma realidade menos quebrada.<br>Sabe, eu sempre achei que o apocalipse viria com robôs gigantes ou uma IA senciente decidindo que a humanidade era um memory leak desnecessário. Mas não. O fim do mundo está sendo escrito em blocos lógicos mal configurados e senhas admin/admin.</p><p>Olha a Itália. Um sistema de tratamento de águas pluviais, coisa fina, silos de 20 metros cúbicos, válvulas com nomes poéticos como APERTA CHIUSA. Pois é, alguém esqueceu a porta aberta e agora tem um &quot;admin&quot; que não é o Luigi da manutenção brincando de Deus com o esgoto alheio. O cara tá lá, vendo o tanque encher — 195cm de 215cm — e a gente aqui, achando que o nosso maior problema é o CSS que não centraliza no Safari. É o controle industrial virando videogame de quem tem tempo livre e intenções duvidosas.</p><p>E não para por aí. Se você acha que sua estufa de tomate cereja no quintal está segura, os devs da Turquia têm uma história para te contar. Um SCADA inteiro, gerenciando umidade, vento e avisos de geada, foi sequestrado. Se o sistema cai, as plantas entram em stress térmico. É o &quot;plantas as a service&quot; virando &quot;morte por timeout&quot;. Enquanto isso, em algum lugar da Alemanha, módulos Lynx-7 e Sentinel M3, rodando um OpenWrt tunado com Vue.js e Node.js (porque claro que tem JavaScript no meio do mato), foram desativados. Mil e duzentos módulos de vigilância viraram tijolos tecnológicos. Imagine o PR desse rollback.</p><p>A filosofia do caos é simples: se tem um IP e uma interface web, alguém vai tentar quebrar. Na África do Sul, os caras não só entraram no sistema de bombas de água, como fizeram um &quot;code review&quot; malicioso. Alteraram o Setpoints de pressão para causar ruptura física nos tubos. Isso não é mais bug de software, é transformar while(true) em cano estourado na vida real. É o fim da abstração. O código agora molha o pé de quem está na rua.</p><p>O Stack Overflow do Mal<br>E quem está por trás disso? Você imagina um exército, uma corporação cibernética de vilões. Mas o changelog da vida real é mais irônico. É uma equipe de duas ou três pessoas. Tem o &quot;especialista em encriptação&quot;, o &quot;administrador de infra&quot; e o &quot;financeiro&quot; (provavelmente o cara que cobra os $2000 dólares no Telegram pelo acesso remoto de 265 sistemas). É uma startup de crime, com espírito unido e &quot;trabalho árduo&quot;. Eles são o nosso espelho distorcido: trabalham em dupla, acreditam na qualidade sobre a quantidade e, provavelmente, também odeiam reuniões de Daily.</p><p>Até a impressora Xerox da UCSF entrou na dança. Sim, a impressora. Aquele dispositivo que a gente já odeia por natureza porque nunca funciona quando precisamos imprimir um boleto. Os caras usaram a interface de gerenciamento aberta — a clássica falha de segurança nível &quot;deixei a chave na fechadura pelo lado de fora&quot; — para roubar logs de digitalização e e-mails. É o protesto político via scanner.<br>Enquanto isso, em Curitiba, o semáforo do Capão da Imbuia decidiu que não queria mais trabalhar. O motivo? Senha predefinida. É de uma simplicidade que dói na alma de quem gasta semanas implementando OAuth2 e MFA.</p><p>A verdade é que vivemos em um grande monólito legado chamado Civilização, e ninguém mais tem o diagrama de arquitetura. O sistema de aquecimento na Letônia, a folha de pagamento na Índia, a limpeza de peças na Itália... tudo pendurado por um fio de confiança e senhas que nunca foram trocadas desde o deploy inicial em 2012.</p><p>Nós somos os guardiões desse caos, tentando colocar um try-catch em volta de uma infraestrutura que já está pegando fogo. A gente faz deploy na sexta esperando o melhor, mas o &quot;melhor&quot; é apenas um sistema que ainda não foi descoberto por alguém com um script em Python e muito rancor no coração.</p><p>No fim das contas, a segurança da informação é como a nossa felicidade no trabalho: uma variável global que alguém sempre acaba sobrescrevendo sem querer.</p><p>EXIT_FAILURE é pouco para o que nos espera na próxima sprint.</p><p>Deseja que eu analise o changelog de algum desses incidentes específicos ou prefere que eu abra um chamado para investigar a segurança daquela sua impressora antiga no corredor?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ae81de1d35a7" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>