Domando Sistemas Complejos: Lecciones de Uber a Google

2025-05-15
Domando Sistemas Complejos: Lecciones de Uber a Google

Este artículo detalla las experiencias del autor en ingeniería de software en un competidor de Uber y en Google, diferenciando problemas complejos de sistemas complejos. Los problemas complejos siguen soluciones estructuradas y repetibles, mientras que los sistemas complejos exigen adaptabilidad y enfoques innovadores. El artículo profundiza en cinco características de los sistemas complejos: comportamiento emergente, consecuencias tardías, la trampa de la optimización local, histéresis y no linealidad. Se comparten estrategias para una operación eficaz en entornos complejos, incluyendo priorizar decisiones reversibles, definir las métricas correctas, abrazar la innovación, aprovechar las mejores prácticas (flags de características, lanzamientos canary, lanzamientos progresivos, pruebas shadow) y enfatizar la observabilidad, las pruebas de simulación y el aprendizaje automático. Finalmente, el autor destaca la importancia de la colaboración en equipo en sistemas complejos.

Leer más
Desarrollo

De Publicación en Blog a Bestseller: El Viaje de un Programador con un Libro sobre Go

2025-04-10
De Publicación en Blog a Bestseller: El Viaje de un Programador con un Libro sobre Go

Esta publicación detalla el viaje del autor al escribir su libro, "100 Errores en Go y Cómo Evitarlos". Comenzando con una simple prueba de concepto (PoC) en Go en Suiza, el autor relata los desafíos que enfrentó, incluyendo cambios de trabajo, interacciones con la editorial, la navegación a través de los comentarios de editores y revisores, y la eventual publicación y lanzamiento. La historia destaca el crecimiento personal del autor, el valor de la retroalimentación del lector y las mejoras en las habilidades de escritura. El éxito del libro, incluyendo las traducciones, se discute, así como las reflexiones sobre el significado y las recompensas de la escritura, y una perspectiva desapegada sobre el dinero y la fama.

Leer más
Desarrollo

Comprendiendo Functores, Applicativos y Mónadas en Haskell

2025-03-30
Comprendiendo Functores, Applicativos y Mónadas en Haskell

Este artículo proporciona una explicación clara y accesible de functores, aplicativos y mónadas en la programación funcional Haskell, utilizando analogías para facilitar la comprensión de conceptos complejos. El autor utiliza la metáfora de las cajas para ilustrar cómo estos tipos manejan la aplicación de funciones en diferentes escenarios, proporcionando ejemplos de código para demostrar su uso y diferencias. El artículo concluye con una reflexión sobre la importancia de aprender y compartir conocimiento, derivada de una interacción con la comunidad Haskell.

Leer más
Desarrollo Mónadas