Usando IA como Ferramenta de Desenvolvimento

Publicado em 16 de março de 2026

Sou engenheiro de computação com perfil em hardware e software embarcado. No final de 2025, comecei a usar o Claude Code como ferramenta de desenvolvimento no meu dia a dia. O objetivo não era testar a ferramenta em tarefas triviais — era colocá-la à prova em projetos concretos, em diferentes domínios, para entender até onde ela serve como acelerador de produtividade real.

O trabalho foi distribuído entre três máquinas: Glaurung (Mac, Apple Silicon), Ancalagon (Windows + WSL2) e Smaug (SBC Particle Tachyon, Ubuntu ARM). O período total vai de novembro de 2025 a março de 2026, com intensificação nas últimas 5 semanas.

A seguir, um resumo do que produzi nesse período.


Números em Destaque

~23 mil

Linhas de código

~110

Commits

6

Linguagens

3

Máquinas


Infraestrutura Multi-Máquina

O domínio mais extenso de trabalho foi a automação do fluxo entre três máquinas — desde o chaveamento físico de periféricos até a gestão de infraestrutura como código em um SBC ARM.

KVM Setup (09–16 de março de 2026 — 6 commits)

Meu fluxo diário envolve alternar entre um Mac e um Windows compartilhando dois monitores Dell. O switch KVM é somente USB, então os inputs de vídeo são trocados manualmente em cada monitor. Teclado e mouse são compartilhados via Synergy. Para que tudo funcione de forma transparente, foram necessários vários componentes event-driven:

  • usb_switch — daemon Swift usando IOKit para detectar eventos de conexão/desconexão USB do KVM e acionar a troca de inputs dos monitores
  • synergy_switch — utilitário Swift usando CoreGraphics para mover o cursor até a borda da tela, acionando a transição do Synergy para a outra máquina
  • synergy_lock_watcher — redireciona o input para o Windows automaticamente quando a tela do Mac é bloqueada
  • synergy_caffeinate — previne display sleep enquanto um cliente Synergy está conectado
  • Detecção do ângulo da tampa via pybooklid — lê o sensor de ângulo da tampa do MacBook para escolher dinamicamente o layout do Synergy (lado a lado vs. empilhado) com base na posição física do laptop em relação ao monitor

Todos os componentes são event-driven com zero polling, reagindo a notificações do sistema ao invés de verificar estado periodicamente.

Network Guard (11 de março de 2026 — um dia)

Um problema surgiu no Mac quando WiFi e Ethernet USB-C estavam conectados à mesma rede: o macOS detectava hostname duplicado e renomeava automaticamente a máquina, causando problemas de conectividade. A solução foi um daemon Swift usando SCDynamicStore (~170 linhas) que monitora mudanças nas interfaces de rede e automaticamente desassocia o WiFi quando a Ethernet está ativa — preservando AirDrop e Handoff, que exigem que o rádio WiFi permaneça ligado.

Setup Tachyon / Smaug (novembro de 2025 — março de 2026 — 64 commits) — WIP

Infraestrutura como código para o SBC Particle Tachyon (Qualcomm QCM6490, Ubuntu ARM). Este foi o projeto de maior duração no conjunto e cobre:

  • Backup e restore com suporte cross-version (Ubuntu 20.04 ↔ 24.04), permitindo migração entre versões do SO sem reconfiguração manual
  • Serviços Docker — Immich (gerenciamento de fotos), Home Assistant (automação residencial) e Plex (servidor de mídia), todos orquestrados via Docker Compose
  • Fix NVMe ASPM — uma Pimoroni NVMe Base opcional conecta ao Tachyon via cabo flat PCIe, e o estado de energia L1 padrão causava perda de interrupção MSI-X, levando a timeouts de I/O sob carga. A correção envolveu 4 componentes (script + systemd + udev + sudoers)
  • Controle de fan — PWM por software via GPIO com curva térmica e sequência de soft-start, substituindo o comportamento padrão de fan sempre ligado
  • Monitoramento consolidado — dashboard unificado rastreando temperaturas de CPU/SSD, status de alimentação USB-PD e saúde dos containers Docker

Ferramentas de Sistema

Launchd Manager TUI (13 de março de 2026 — 8 commits em um dia) — WIP

Interface de terminal em Rust construída com Ratatui para gerenciar serviços launchd do macOS. A aplicação segue uma arquitetura limpa com filtros em tempo real, visualizadores de logs e plists, e integração com $EDITOR para edição de arquivos de configuração diretamente pela TUI.

Uma sessão de debugging interessante envolveu ghosting de caracteres — caracteres residuais aparecendo na tela após rolagem — que acabou sendo um problema de renderização do terminal exigindo limpeza explícita de regiões da tela.

Sistema de Código de Ativação (07 de fevereiro de 2026 — 2 commits)

Sistema de autenticação challenge-response para dispositivos embarcados usando HMAC-SHA256. A geração de código usa tripla camada: codificação por palavras, XOR com o ID do dispositivo e checksum para verificação de integridade. Implementado como dois scripts Python com zero dependências externas.


Peon Ping e Engenharia Reversa de Áudio

Peon Ping é um projeto open source para notificações sonoras de agentes de IA, com 348 commits e mais de 50 contribuidores. Meu envolvimento se concentrou na extração de áudio e suporte ao idioma português.

Extração de Áudio (13–14 de fevereiro de 2026)

  • war2sfx-extractor — parser de arquivos binários WAR/SUD do WarCraft II DOS com descompressão LZSS, escrito em Python puro. Extrai 676 arquivos WAV dos dados originais do jogo
  • extract_wc3.py — extração de áudio do WarCraft III Reforged via PyCASC, com monkey-patch no root parser para lidar com a estrutura CASC específica do jogo. Aproximadamente 7.400 arquivos extraídos
  • extract_sc2.py — extração de áudio do StarCraft II via libcasc.so/ctypes, já que o PyCASC não suporta o formato MNDX root usado pelo SC2. Aproximadamente 373.000 arquivos extraídos. Ainda não publicado

Sound Packs PT-BR

Contribuição ao Peon Ping (14 de fevereiro de 2026)

Adição de um filtro de idioma Português (BR) no seletor de sound packs, permitindo que usuários filtrem os packs disponíveis por idioma.

O destaque deste domínio foi a engenharia reversa de formatos binários da Blizzard (LZSS e CASC) para extrair áudio de jogos para um ecossistema open source — trabalho que exigiu compreensão de estruturas de arquivo não documentadas e adaptação de bibliotecas existentes para lidar com casos especiais.


Aplicações e Web

Matchmaker (dezembro de 2025 e fevereiro de 2026 — ~15 commits)

Uma aplicação existente de analytics de vendas construída com React + Express + MariaDB que recebi containerização completa com Docker. O setup inclui ambiente de desenvolvimento com hot-reload, ambiente de produção com Nginx + SSL e um script mm.sh unificado como ponto de entrada para gerenciar ambos os ambientes.

Este site — lucaspwo.github.io (março de 2026)

O post do Sigaweb foi criado bilingualmente (inglês e português) com validação visual via Chrome headless no WSL2 para verificar consistência de renderização entre ambas as versões. Um sistema de build está atualmente em desenvolvimento (WIP) para converter Markdown em HTML usando templates Nunjucks.


Reflexão

Após cinco meses usando o Claude Code nestes projetos, algumas observações se destacam:

  • A ferramenta é um acelerador, não um substituto. O desenvolvedor mantém a responsabilidade pela direção, decisões de arquitetura e validação. A IA não substitui a necessidade de entender o que está sendo construído — ela reduz a fricção de construí-lo
  • Menos fricção ao transitar entre domínios. Alternar entre Swift, Rust, Python, Bash, JavaScript e HTML na mesma semana normalmente carregaria um custo significativo de troca de contexto. A ferramenta absorve boa parte desse overhead, permitindo ramp-up mais rápido em cada linguagem
  • Debugging colaborativo em problemas difíceis. O fix de NVMe ASPM e a engenharia reversa dos formatos da Blizzard exigiram sessões de debugging iterativo onde iteração rápida era essencial. Ter um assistente de IA que gera e refina hipóteses rapidamente encurtou significativamente o ciclo de feedback
  • O volume produzido em aproximadamente 5 semanas intensivas seria impraticável de alcançar sozinho. Oito projetos em seis linguagens, três máquinas e múltiplos domínios — de debugging de PCIe no nível do kernel a extração de áudio de jogos a desenvolvimento web — representam uma amplitude que seria difícil de sustentar sem a ferramenta