Moneyball para Contratação: Pare de Perder Tempo e Dinheiro

2025-08-09

Este artigo critica os processos de contratação ineficientes atuais que desperdiçam tempo e recursos de candidatos e empresas. O autor argumenta que entrevistas de codificação tradicionais (estilo LeetCode) falham em distinguir efetivamente programadores excelentes de impostores e negligenciam as habilidades holísticas dos engenheiros de software. Uma abordagem melhor se concentra em habilidades de trabalho práticas, como revisão de código, design de arquitetura e avaliação de amostras de trabalho, enfatizando o trabalho em equipe e o estilo individual. O autor sugere combinar revisão de código com discussão ao vivo de amostras de trabalho e agendar reuniões entre candidatos e seus futuros gerentes para melhorar a eficiência e precisão da contratação. O objetivo final é encontrar funcionários adequados a longo prazo, em vez de candidatos de curto prazo.

Leia mais
Desenvolvimento

Desafios de Otimização em Linguagens de Baixo Nível e o Futuro da Programação Políglota

2025-07-27

Um problema recorrente em linguagens de baixo nível modernas é a dificuldade de otimização devido à sua desconexão com o hardware. O autor usa Haskell e Futhark como exemplos, destacando as vantagens das linguagens funcionais na otimização. Seu design restritivo e transparência referencial permitem que os compiladores tenham mais liberdade para otimizar. No entanto, alguns cenários ainda exigem operações de baixo nível, como os blocos `unsafe` do Rust. O artigo, por fim, defende um paradigma de programação políglota, construindo metalinguagens para permitir que os desenvolvedores escolham facilmente a ferramenta certa para o trabalho, como Futhark ou Datalog embutidos, melhorando assim o desempenho geral e solucionando os desafios de otimização.

Leia mais
Desenvolvimento

A Prisão do Programador: Escapando da Armadilha das Ferramentas de Software Inchadas

2025-07-14

Este artigo explora o dilema das ferramentas de software inchadas: para evitar a rotatividade de usuários, as ferramentas expandem constantemente sua funcionalidade, tornando-se finalmente incômodas. O autor propõe várias soluções: limitar o crescimento da ferramenta (impraticável), diminuir os custos de mudança (por meio de compatibilidade com versões anteriores e padronização), aproveitando FFI (Interface de Função Estrangeira) e IPC (Comunicação Interprocesso). Os shells Unix, usando IPC, permitem a composição de ferramentas, mas o fluxo de dados é unidirecional e carece de estrutura. PowerShell e NuShell introduzem dados estruturados, mas a interoperabilidade e a estabilidade da versão permanecem problemáticas. RPC (Chamada de Procedimento Remoto) oferece uma interface estruturada, mas requer extensa modificação de código. O autor conclui que os próprios programas são prisões, restringindo o fluxo de dados e a interoperabilidade, e anuncia uma postagem de acompanhamento explorando estratégias de fuga.

Leia mais

Adeus, fluxos de trabalho tediosos: minha configuração de desenvolvimento com tmux

2025-06-23

Esta publicação detalha um fluxo de trabalho de desenvolvimento altamente eficiente construído em torno do tmux. O autor usa uma configuração e scripts tmux inteligentes para abrir arquivos diretamente em um servidor remoto, alternar perfeitamente entre painéis e alternar facilmente entre arquivos — tudo sem clones locais. A publicação descreve o processo de configuração, incluindo expressões regulares e scripts, e compara alternativas. A motivação surgiu de frustrações com o atraso do VSCode e conflitos de associação de teclas. Embora seja complexo de configurar, o autor argumenta que os ganhos de eficiência superam o custo.

Leia mais
Desenvolvimento desenvolvimento remoto