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

4

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

Tecnologías

Frameworks

Gestores de paquetes

Bases de datos

Servicios en la nube

Control de versiones

Herramientas de IA

Educación

IES Virgen del EspinoTécnico Superior en Desarrollo de Aplicaciones Websept. 2021 – feb. 2023
IES Virgen del EspinoGrado en Sistemas Microinformáticos y Redessept. 2019 – feb. 2020
IES Virgen del EspinoDesarrollo de Aplicaciones Multiplataforma (DAM)sept. 2023 – feb. 2024

Certificados

Google

Google AI

mar. 2026

ID: G74W3PDZV8K9

Introduction to Generative AI

ene. 2026

ID: 21324833

Harvard University

CS50: Introduction to Computer Science

feb. 2026

Experiencia

Suscríbete a la newsletter

Recibe mis últimos artículos y novedades directamente en tu bandeja de entrada.