Carlos Mendes

Carlos Mendes

Staff Engineer

Arquiteto de software com mais de 15 anos de experiência construindo sistemas distribuídos de alta escala. Trabalhou na Stone, Mercado Livre e atualmente lidera iniciativas de arquitetura em uma startup de fintech. Especialista em design de sistemas e mentoria técnica.

Livros Recomendados

Carlos compartilhou os 5 livros que foram mais importantes em sua trajetória profissional.

1
The Pragmatic Programmer

The Pragmatic Programmer

David Thomas, Andrew Hunt

Por que escolheu este livro

Estava no segundo ano de faculdade, sabendo Java e Python, mas sentindo que faltava algo. Queria entender o que separa um programador de um engenheiro de software. Este livro foi recomendado como 'o manual de mentalidade de engenharia'.

Qual conceito mais usa no dia a dia

DRY (Don't Repeat Yourself) - mas não só código duplicado. Uso para identificar duplicação de conhecimento: mesma lógica de negócio em dois lugares, configurações repetidas, processos manuais que deveriam ser automatizados. É uma lente para ver ineficiências em todo o sistema.

Para quem e quando recomenda

Para estudantes de ciência da computação no penúltimo ano, ou desenvolvedores júnior no primeiro emprego. Leia quando você já sabe programar mas quer entender como pensar sobre software de forma profissional e sustentável.

352 páginas20194.6
2
Design Patterns: Elements of Reusable Object-Oriented Software and Advanced Programming Techniques

Por que escolheu este livro

Estava em reuniões de design técnico e seniores falavam 'Observer', 'Factory', 'Decorator' - era como se falassem outro idioma. Escolhi este livro para aprender o vocabulário que me fazia sentir excluído das discussões importantes.

Qual conceito mais usa no dia a dia

Strategy Pattern. Uso semanalmente para isolar algoritmos que mudam frequentemente (pricing, validações, formatações). No código, manifesta como injeção de dependência - ao invés de if/else gigantes, componho comportamentos. Facilita testes e mudanças de requisitos.

Para quem e quando recomenda

Para mid-level engineers (3-5 anos) que querem influenciar decisões de arquitetura. Leia quando você domina a linguagem mas suas soluções parecem sempre 'gambiarras'. O livro mostra que existe estrutura por trás do caos aparente.

395 páginas19944.5
3
Refactoring: Improving the Design of Existing Code

Por que escolheu este livro

Herdei um monolito de 200k linhas sem testes. Qualquer mudança quebrava algo em produção. Estava paralisado entre 'deixar como está' e 'reescrever tudo'. Refactoring me mostrou que existe um caminho do meio: evolução incremental e segura.

Qual conceito mais usa no dia a dia

Extract Method + Working Effectively with Legacy Code. Antes de qualquer mudança, escrevo um teste de caracterização do comportamento atual. Depois faço micro-refatorações (renomear, extrair, mover) sempre mantendo verde. Em 6 meses transformei o sistema mais temido em um dos mais seguros para modificar.

Para quem e quando recomenda

Para qualquer desenvolvedor que trabalha com código legado (ou seja, 90% de nós). Essencial quando você está assumindo um sistema existente ou quando seu próprio código de 6 meses atrás parece ter sido escrito por um estranho.

448 páginas20184.4
4
Designing Data-Intensive Applications

Por que escolheu este livro

Foi promovido a Staff Engineer e precisava decidir entre PostgreSQL, MongoDB, Cassandra, Redis para diferentes use cases. Minhas decisões impactariam a empresa por anos. Precisava entender profundamente trade-offs de bancos de dados, não só tutoriais superficiais.

Qual conceito mais usa no dia a dia

CAP Theorem na prática. Quando design sistemas, começo perguntando: 'o que acontece durante uma partition?' Isso guia se uso transações ACID (consistência forte) ou eventual consistency. Uso diariamente para explicar stakeholders por que não podemos ter 'zero downtime E consistência perfeita E latência de 10ms'.

Para quem e quando recomenda

Para senior+ engineers que tomam decisões de arquitetura ou staff engineers mentorando times. Leia quando você for responsável por escolher tecnologias que custarão milhões para mudar depois. Idealmente antes de arquitetar seu primeiro sistema distribuído.

624 páginas20174.8
5
System Design Interview

Por que escolheu este livro

Estava me preparando para entrevistas de Staff na FAANG, mas percebi que o livro era mais do que prep de entrevista - era um framework mental para pensar sobre escala, disponibilidade e trade-offs de forma estruturada em qualquer sistema.

Qual conceito mais usa no dia a dia

O framework de 'requisitos não-funcionais' (RNFs). Agora em todo design doc, explicito: QPS esperado, p99 latência, disponibilidade target, custo de infra. Isso força conversas honestas sobre trade-offs antes de escrever uma linha de código. Economiza meses de retrabalho.

Para quem e quando recomenda

Para engineers mid-level+ que querem crescer para senior/staff. Leia quando você já construiu alguns sistemas mas quer entender as decisões de arquitetura de forma sistemática. Ótimo complemento ao DDIA - este é mais prático e orientado a casos de uso.

322 páginas20204.7