Daniel Las Heras
Desarrollador de software
Daniel Las Heras es desarrollador de software. Diseña productos digitales con nuevas tecnologías.
Trabajo
Mi actividad de Github
Contribuciones
Lenguajes principales
- Python100%
- Shell0%
- PowerShell0%
Racha
5
días
Últimas newsletters
Las últimas newsletters publicadas.
Bases de Datos: Importancia y Conceptos Clave
Bienvenidos a la séptima edición de la newsletter. En esta ocasión vamos a hablar sobre las bases de datos y su importancia crucial a la hora de desarrollar software. En la actualidad, existe una gran variedad de bases de datos que dan soporte a las aplicaciones que utilizamos a diario. Cada tipo de base de datos ofrece ventajas específicas sobre los demás. Por ello, mi experiencia y recomendación es que siempre elijamos en función de las necesidades del problema y de los conocimientos del equipo que se encuentra al frente del proyecto. Uno de los grandes debates en este ámbito es el uso de sistemas relacionales frente a los no relacionales. Dentro de estas dos vertientes, las opciones más comunes y utilizadas hoy en día son, sin duda, PostgreSQL y MongoDB. Obviamente existen muchas otras alternativas, pero, junto a MariaDB, estas son las herramientas con las que he trabajado personalmente. Si tuviera que destacar los conceptos más importantes que se deben dominar en este campo, serían los siguientes: el modelado y la normalización de datos, la indexación, las transacciones y propiedades ACID, la optimización y mejora de consultas, y el compromiso entre consistencia y escalabilidad. Para aprender y reforzar estos fundamentos, uno de los mejores recursos disponibles es el siguiente repositorio de GitHub: https://github.com/pingcap/awesome-database-learning Espero que os haya gustado la edición de esta semana. Aunque mi área favorita dentro de la programación es el Frontend, considero indispensable mantener una visión global de los sistemas y conocer los cimientos de lo que estamos construyendo. Esto es especialmente crítico en el contexto actual, donde nos enfrentamos a continuos ataques de cadena de suministro (supply chain) en muchos de los entornos de desarrollo.
System Design: Importancia y Recursos Clave
Bienvenidos a la sexta edición de la newsletter. En esta ocasión, explicaremos la importancia del conocimiento en System Design y algunos de los recursos más interesantes para dominarlo. El System Design es crucial al diseñar y desarrollar software a gran escala; de hecho, muchas entrevistas en grandes empresas incluyen pruebas específicas en este campo. El objetivo principal de esta disciplina es saber cómo diseñar y escalar todas las partes que componen tu software. Uno de los recursos más populares es este repositorio de Donnemartin, que cuenta con más de 350k estrellas en GitHub (https://github.com/donnemartin/system-design-primer). Otro gran repositorio es el de https://github.com/karanpratapsingh/system-design, que también te permite conocer y estudiar los diferentes conceptos. Tener conocimientos sobre conceptos clave como Load Balancing, Caching, Database Sharding y Replication, entre muchos más, es fundamental para desarrollar productos utilizados por miles de personas. Actualmente, existen muchas herramientas que permiten crear diagramas o diseños para obtener una representación gráfica de cómo funciona tu sistema. Un aspecto crucial es la capacidad de planificar cómo escalamos el sistema y cómo resolverías los problemas potenciales que podrían surgir de ese planteamiento.
Cómo Elegir tu Stack: Necesidades del Proyecto vs. Tecnologías de Moda
Bienvenidos a la quinta edición de la newsletter. Hoy hablamos de algo que aparece en casi todos los proyectos nuevos: cómo elegir el stack de tecnologías con el que vas a trabajar. Mi opinión es clara: conviene dominar varios lenguajes populares, algunos frameworks y distintos tipos de bases de datos, y elegir según las necesidades concretas del proyecto. En muchos casos no hace falta el último framework de moda. Y si encima no lo dominas, puede ser una mala decisión a largo plazo. Un ejemplo personal: estoy arrancando un proyecto y me planteé usar Rust. Pero no conozco Rust en profundidad, y es uno de los lenguajes más difíciles que existen. Elegir un lenguaje, framework o librería sin conocerlo se acaba pagando cuando toca mantener el proyecto y darle soporte. En el *frontend* pasa lo mismo. Si dominas React y tienes una buena base de TypeScript, no tienes por qué usar Svelte o Angular solo porque te apetezca o estén de moda. Un proyecto real no es el sitio para experimentar con una tecnología que nunca has usado. Mi reflexión final: elige las tecnologías en función de las necesidades del proyecto y de las habilidades de las personas que lo van a desarrollar. Esa combinación, y no la tendencia del momento, es la que sostiene el proyecto a largo plazo.
Skills
Educación
Certificados
Google AI
mar. 2026
ID: G74W3PDZV8K9
Introduction to Generative AI
ene. 2026
ID: 21324833
Harvard University
CS50: Introduction to Computer Science
feb. 2026
Experiencia
Desarrollador web
Netytec · Jornada completa
Desarrollo y mantenimiento de aplicaciones web para clientes, incluyendo plataformas como Neomentor, Rossa y Trabajo en Soria. Implementación de soluciones full-stack con tecnologías modernas.
Desarrollador web
Netytec · Prácticas
Prácticas en desarrollo web, colaborando en proyectos internos y aprendiendo las bases del desarrollo profesional en un entorno de equipo.