engineering

👨‍💻 Software Engineering

Libros técnicos de distinta índole. Desde el pragmatismo de como aplicar patrones en nuestro día a día a los sistemas de diseño más complejos.

Leadership

Explora mis libros recomendados

Todos los enlaces son de afiliado de Amazon. Si alguno os interesa no solo os llevaréis el libro, también me ayudaréis con este proyecto.

Vibe Coding: The Future of Programming: Leveraging Your Experience in the Age of AI-Assisted Coding

Explora cómo la inteligencia artificial está cambiando radicalmente la programación, enfatizando en cómo aprovechar tu experiencia técnica para adaptarte y prosperar en un futuro donde la IA se convierte en tu colaboradora principal.

AI Engineering: Building Applications with Foundation Models

Presenta técnicas prácticas para construir aplicaciones robustas utilizando modelos de inteligencia artificial avanzados (foundation models). Detalla metodologías, herramientas y mejores prácticas para integrar estos modelos en aplicaciones reales.

Web Browser Engineering

Profundiza en cómo funcionan internamente los navegadores web modernos. Ofrece una mirada técnica detallada sobre arquitectura, motores de renderizado, seguridad y optimización del rendimiento en la construcción de navegadores eficientes.

Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith

Guía práctica que describe cómo descomponer aplicaciones monolíticas en arquitecturas basadas en microservicios. Ofrece patrones concretos, estrategias evolutivas y consejos realistas para una transición exitosa y gradual.

The Pragmatic Programmer: Your Journey to Mastery

Un clásico que ofrece principios prácticos y consejos concretos para desarrollar hábitos efectivos como ingeniero de software. Destaca temas como responsabilidad profesional, mejora continua y técnicas que permiten escribir código flexible y mantenible.

Clean Architecture: A Craftsman’s Guide to Software Structure and Design

Explora principios fundamentales de arquitectura de software para construir sistemas robustos, desacoplados y fáciles de mantener. Proporciona ejemplos prácticos sobre cómo diseñar aplicaciones independientes de frameworks, interfaces y detalles técnicos.

Clean Code: A Handbook of Agile Software Craftsmanship

Guía esencial para escribir código limpio, claro y legible. Ofrece técnicas prácticas sobre naming, estructuras de control, comentarios, pruebas y patrones para mejorar la calidad del software y facilitar su mantenimiento a largo plazo.

Test Driven Development: By Example

Introduce el desarrollo guiado por pruebas (TDD) con ejemplos concretos y prácticos. Explica cómo utilizar pruebas automatizadas para diseñar software robusto, reducir errores y facilitar cambios futuros en el código.

Design Patterns: Elements of Reusable Object-Oriented Software

Obra clásica sobre patrones de diseño en programación orientada a objetos, que describe soluciones probadas y reutilizables para problemas comunes de software. Incluye ejemplos detallados sobre cómo aplicar patrones como Singleton, Observer y Factory.

System Design Interview – An Insider’s Guide

Prepara al lector para entrevistas técnicas de diseño de sistemas en empresas tecnológicas. Explica conceptos fundamentales sobre escalabilidad, balanceo de carga, bases de datos y trade-offs críticos en sistemas distribuidos reales.

System Design Interview – An Insider’s Guide 2

Profundiza en casos más avanzados de diseño de sistemas, incluyendo análisis detallado de arquitecturas populares. Cubre aspectos avanzados como consistencia eventual, streaming de datos, seguridad y estrategias efectivas para entrevistas complejas.

Fundamentals of Software Architecture: An Engineering Approach

Proporciona una visión integral sobre los principios esenciales para diseñar arquitecturas de software robustas y flexibles. Combina teoría y práctica sobre decisiones arquitectónicas, patrones, trade-offs y procesos efectivos en ingeniería.

Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures

Enfocado en resolver los desafíos complejos de la arquitectura distribuida moderna. Explora problemas reales, trade-offs difíciles, consistencia de datos, comunicaciones entre servicios y técnicas prácticas para tomar mejores decisiones arquitectónicas.

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

Libro clave sobre sistemas intensivos en datos, abordando almacenamiento, procesamiento y gestión eficiente de datos. Profundiza en sistemas distribuidos, escalabilidad, rendimiento, consistencia y técnicas que sustentan aplicaciones robustas y fiables.

Building Evolutionary Architectures: Automated Software Governance

Explica cómo crear arquitecturas evolutivas que permitan cambios rápidos y seguros. Destaca técnicas avanzadas para automatizar la validación arquitectónica, asegurando así que el software evolucione continuamente de forma ordenada.

Software Engineering at Google: Lessons Learned from Programming Over Time

Comparte aprendizajes y prácticas comprobadas por Google para gestionar grandes bases de código y equipos distribuidos. Cubre desde código limpio hasta testing, revisiones de código y gestión efectiva de proyectos a gran escala.

Fundamentals of Software Architecture: An Engineering Approach

Proporciona una visión integral sobre los principios esenciales para diseñar arquitecturas de software robustas y flexibles. Combina teoría y práctica sobre decisiones arquitectónicas, patrones, trade-offs y procesos efectivos en ingeniería.

The Software Engineer’s Guidebook: Navigating Senior, Tech Lead, and Staff Engineer Positions at Tech Companies and Startups

Ofrece una guía detallada para avanzar profesionalmente en roles técnicos senior. Explica cómo gestionar equipos, influir estratégicamente, comunicar efectivamente, y cómo lograr impacto técnico significativo en organizaciones.

Cracking the Coding Interview, 6th Edition: 189 Programming Questions and Solutions

Manual práctico diseñado para preparar entrevistas técnicas en empresas tecnológicas líderes. Incluye preguntas y soluciones detalladas sobre algoritmos, estructuras de datos y resolución efectiva de problemas en entrevistas técnicas reales.