Deveríamos parar de nos definir como devs backend ou frontend?
Este post é inspirado no texto escrito pela Michelle Lim em 2020. Vou traduzir alguns pontos que achei relevante e fazer meus comentários sobre. O eixo “Frontend/Backend” não mapeia bem as motivações dos engenheiros de software. Se você usar apenas esse eixo, pode acabar em projetos de que não gosta ou, pior ainda, desistir prematuramente da engenharia. Em vez disso, tente usar o eixo “Produto/Infraestrutura” como o primeiro eixo para entender sua preferência de carreira....
Melhorando o terminal
O terminal é provavelmente a ferramenta que eu mais uso no meu dia a dia. Com o passar dos anos eu criei uma série de atalhos, scripts e hábitos que me fazem ser mais produtivo na execução de várias das minhas tarefas. Neste post vou contar algumas das coisas que eu configurei e venho usando, com o objetivo de talvez inspirar alguém a dedicar um tempo para fazer o mesmo....
Escolhendo dependências usando deps.dev
Escolher as dependências de um projeto é algo que algumas vezes menosprezamos, mas que pode ter um impacto muito relevante. A imagem a seguir ilustra bem a ideia: Para facilitar esse processo recentemente o Google lançou um novo projeto, o deps.dev e seu slogan resume bem o seu objetivo: Understand your dependencies. A ferramenta tem suporte a algumas linguagens de programação como JavaScript, Rust, Go, Python e Java. Para mostrar as vantagens vamos imaginar um cenário: uma equipe está desenvolvendo uma API em Go e precisa escolher uma biblioteca para implementar o conceito de Circuit Breaker....
Primeiras impressões sobre o Service Weaver
Embarquem no trem do hype comigo! No dia 01/03 o Google publicou no seu blog o lançamento de um novo framework, o Service Weaver. Lendo o post e a documentação fiquei bem empolgado e resolvi fazer uma prova de conceito. Eu adaptei o código de uma palestra sobre microsserviços em Go que havia feito algum tempo atrás e gostei muito do resultado. Gravei um video mostrando o código e minhas primeiras impressões....
Responsabilidade e disciplina
Em 2022 eu li dois livros que falam sobre duas das característica que eu considero cruciais para a carreira de qualquer profissional: responsabilidade e disciplina. Ambos os livros tem em comum um dos seus autores, o Jocko Willink: John Gretton “Jocko” Willink é um autor americano, podcaster e oficial aposentado da Marinha dos Estados Unidos que serviu nos Navy SEALs e é ex-membro do SEAL Team 3. Ele é co-autor do Responsabilidade extrema: Como os Navy Seals lideram e vencem e autor do Disciplina É Liberdade: Manual do Campo....
Developer productivity for fun and profit - Parte 1
Seja em cenários de crescimento acelerado ou mesmo no infeliz momento de layoffs que estamos passando, horas de desenvolvimento são um dos recursos mais caros e valiosos para as empresas. Desta forma, a produtividade e eficiência tornam-se diferenciais importantes para profissionais e times. Mas qual é a diferença entre produtividade e eficiência? Gostei bastante da definição que encontrei neste post: Enquanto a produtividade visa mais resultados com o mesmo esforço, a eficiência visa menos esforço, mantendo o mesmo resultado....
Programação pessimista
Alguns anos atrás Sam Newman publicou o livro Building Microservices que se tornou uma grande referência quando falamos em microsserviços. Em um dos capítulos, entitulado Microservices at scale, e que está público neste link, ele faz algumas afirmações interessantes (tradução minha): As falhas estão em toda parte Partir da suposição de que tudo pode e irá falhar leva você a pensar de forma diferente sobre como resolver problemas....
Go Cloud Development Kit
Neste post vou falar sobre um projeto bem interessante que é mantido pelo time que desenvolve a linguagem Go. Trata-se do Go Cloud Development Kit, também conhecido como Go CDK. O Go CDK fornece uma série de abstrações para um bom número de features bastante usadas em aplicações que rodam na nuvem, como banco de dados, armazenamento, mensageria, segredos, etc. O objetivo principal do projeto em criar estas abstrações é tornar o código independente de fornecedor de nuvem....
Aqueles que mantém o mundo girando
Em 2012 Scott Hanselman escreveu um post que ganhou certa popularidade: Dark Matter Developers: The Unseen 99%. Ele começa o seu texto definindo o que seria Matéria escura: Na astronomia e na cosmologia, a matéria escura é um tipo atualmente indeterminado de matéria que responde por uma grande parte da massa do universo, mas que não emite nem espalha luz ou outra radiação eletromagnética e, portanto, não pode ser vista diretamente com telescópios....
Dicas de livros sobre complexidade
Eu sempre tive a impressão de que um dos maiores males do desenvolvimento de software moderno é a complexidade. Não me refiro a complexidade dos problemas que são resolvidos atualmente, pois esses são realmente maiores do que décadas atrás. Machine learning, carros autônomos, microsserviços, etc, esses cenários possuem uma complexidade inerente e pouco podemos fazer para mitigar isso. Eu me refiro a complexidade que incutimos aos nossos códigos. Já vi aplicações que eram pouco mais do que CRUDs com várias camadas e frameworks que só tornavam o desenvolvimento e manutenção tarefas hercúleas....