<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Mirina-Gonzales</title>
    <description>The latest articles on Forem by Mirina-Gonzales (@mirinagonzales).</description>
    <link>https://forem.com/mirinagonzales</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1110116%2F8f85122a-472d-40e5-85f4-dfa20dbd402a.jpeg</url>
      <title>Forem: Mirina-Gonzales</title>
      <link>https://forem.com/mirinagonzales</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mirinagonzales"/>
    <language>en</language>
    <item>
      <title>The Data Engineering Lifecycle</title>
      <dc:creator>Mirina-Gonzales</dc:creator>
      <pubDate>Sat, 11 Apr 2026 23:50:21 +0000</pubDate>
      <link>https://forem.com/mirinagonzales/the-data-engineering-lifecycle-2n7m</link>
      <guid>https://forem.com/mirinagonzales/the-data-engineering-lifecycle-2n7m</guid>
      <description>&lt;p&gt;The goal of this blog post is to explore the &lt;strong&gt;Data Engineering (DE) Lifecycle&lt;/strong&gt; and understand how each of its stages works. To build this content, I am using the book &lt;em&gt;Fundamentals of Data Engineering&lt;/em&gt; by Joe Reis &amp;amp; Matt Housley as a reference.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿What is Data Engineering?
&lt;/h2&gt;

&lt;p&gt;Data Engineering is a discipline focused on designing, building, and maintaining flows that transform data from a source to a final storage destination or to the users who need it.&lt;/p&gt;

&lt;p&gt;There is often confusion between the &lt;strong&gt;Data Lifecycle&lt;/strong&gt; and the &lt;strong&gt;Data Engineering Lifecycle&lt;/strong&gt;; that is why we will make a distinction, although we will focus primarily on the engineering side.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Data Lifecycle (Management Focus)
&lt;/h2&gt;

&lt;p&gt;The Data Lifecycle is a separate concept. To define it, we refer to the &lt;strong&gt;DAMA-DMBOK&lt;/strong&gt; (Data Management Body of Knowledge). Here, the data lifecycle is defined similarly to that of a product: it is born, it is used, and eventually, it dies.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Planning:&lt;/strong&gt; Defining requirements and architectures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enablement / Design:&lt;/strong&gt; Creating the systems and tools needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creation / Acquisition:&lt;/strong&gt; The entry point of the data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintenance and Storage:&lt;/strong&gt; Processing and ensuring persistence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Usage:&lt;/strong&gt; Providing real value to the business.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enhancement:&lt;/strong&gt; Quality techniques and enrichment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archiving:&lt;/strong&gt; Keeping data for legal or historical reasons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Purging / Deletion:&lt;/strong&gt; Secure deletion once utility ends.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0jwb5kfdf2qk4gumr2c.png" alt="Ciclo de Vida del Dato según DAMA" width="800" height="436"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  2. The Data Engineering Lifecycle
&lt;/h2&gt;

&lt;p&gt;This cycle focuses on the "pipeline" and the technical stages that turn raw data into valuable resources. It is divided into &lt;strong&gt;5 main stages&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Generation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ingestion&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transformation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Serving&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frbm0m4pqvzv0bwifdudt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frbm0m4pqvzv0bwifdudt.png" alt="Data Engineering Lifecycle" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition to these, there are &lt;strong&gt;undercurrents&lt;/strong&gt; (cross-cutting concepts) that intervene in every stage: &lt;em&gt;Security, Data Management, DataOps, Data Architecture, Orchestration, and Software Engineering.&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Deep Dive into the Stages
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Generation
&lt;/h3&gt;

&lt;p&gt;The origin of everything. This is where data is born.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge vs. Control:&lt;/strong&gt; We aren't always the owners of the source (very common!), but we &lt;strong&gt;must&lt;/strong&gt; know how data is generated, its frequency, and its velocity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communication:&lt;/strong&gt; Talking to source owners helps anticipate changes. Every source has unique limits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schema Evolution:&lt;/strong&gt; The more a schema changes, the more challenging it becomes to keep the pipeline stable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Storage
&lt;/h3&gt;

&lt;p&gt;Choosing where to save data defines your freedom to operate. In the cloud, cost depends on the "storage temperature":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hot Storage:&lt;/strong&gt; Constant queries (low latency).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cold Storage:&lt;/strong&gt; Sporadic queries (e.g., once a month).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archive Storage:&lt;/strong&gt; Historical data "frozen" (high latency).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Tip: While storage seems cheap, as a company scales, costs can become a headache if you don't choose wisely from the start.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ingestion
&lt;/h3&gt;

&lt;p&gt;This is where bottlenecks often appear. You must decide your strategy based on the use case:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Batch:&lt;/strong&gt; Defined intervals (e.g., reading a DB or a CSV once a day).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streaming (Real-time):&lt;/strong&gt; Continuous flow (e.g., sensors or app events).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Transformation
&lt;/h3&gt;

&lt;p&gt;We move from "dirty" data to data that follows business rules. &lt;strong&gt;Data Wrangling&lt;/strong&gt; and cleaning are what guarantee the end user receives value and not "garbage."&lt;/p&gt;

&lt;h3&gt;
  
  
  Serving
&lt;/h3&gt;

&lt;p&gt;This is where we finally see the value of our work. Data is exposed for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analytics (BI)&lt;/li&gt;
&lt;li&gt;Machine Learning&lt;/li&gt;
&lt;li&gt;Reverse ETL&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Undercurrents
&lt;/h2&gt;

&lt;p&gt;To keep the cycle from breaking, we need these foundations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; Access only for those who need it. Additionally, a data engineer must keep in mind that they are responsible for the data they access and must ensure its security throughout their developments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Management:&lt;/strong&gt; Ensuring that data is understandable, maintains high quality, and respects privacy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DataOps:&lt;/strong&gt; Applying DevOps culture to data. Its goal is to automate, monitor, and detect errors quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture:&lt;/strong&gt; The architecture team is responsible for understanding the business holistically to make strategic decisions. Unlike an engineer, who may focus on a limited number of projects, architects must know the "full map" and balance business needs with the right technological solution. It defines how components communicate and ensures they work not just for now, but for future developments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orchestration:&lt;/strong&gt; The process of coordinating multiple jobs to run quickly and efficiently, either on a defined schedule or as needed. The orchestrator manages dependencies and monitors executions. A good design must account for the fact that processes can fail, defining automatic retry rules to avoid constant human intervention.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Software Engineering:&lt;/strong&gt; There are common areas between software engineering and data engineering; topics such as streaming, infrastructure as code (IaC), pipeline as code, development, and the use of open-source frameworks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which of these 5 stages has given you the most headaches lately? I’ll read your thoughts in the comments!&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>data</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>El Ciclo de Vida de la Ingeniería de Datos</title>
      <dc:creator>Mirina-Gonzales</dc:creator>
      <pubDate>Sat, 11 Apr 2026 23:34:54 +0000</pubDate>
      <link>https://forem.com/mirinagonzales/el-ciclo-de-vida-de-la-ingenieria-de-datos-3cfg</link>
      <guid>https://forem.com/mirinagonzales/el-ciclo-de-vida-de-la-ingenieria-de-datos-3cfg</guid>
      <description>&lt;p&gt;El objetivo de este blog es conocer el ciclo de vida que sigue la &lt;strong&gt;Ingeniería de Datos (DE)&lt;/strong&gt; y entender cómo interviene cada una de sus etapas. Para armar este contenido, estoy usando como referencia el libro &lt;em&gt;Fundamentals of Data Engineering&lt;/em&gt; de Joe Reis &amp;amp; Matt Housley.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es la Ingeniería de datos?
&lt;/h2&gt;

&lt;p&gt;La ingeniería de datos es una disciplina que se centra en diseñar, construir y mantener flujos que transforman los datos desde un origen hacia un almacenamiento final o hacia los usuarios que lo necesitan.&lt;/p&gt;

&lt;p&gt;Suele haber confusión entre el &lt;strong&gt;ciclo de vida del dato&lt;/strong&gt; y el de &lt;strong&gt;ingeniería de datos&lt;/strong&gt;; por eso haremos la diferenciación, aunque nos enfocaremos sobre todo en la parte de ingeniería.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Ciclo de Vida del Dato
&lt;/h2&gt;

&lt;p&gt;El ciclo de vida de los datos es un concepto distinto. Para definirlo, tomamos como referencia el &lt;strong&gt;DAMA-DMBOK&lt;/strong&gt;. Aquí se define que el dato tiene un ciclo similar al de un producto: nace, se usa y eventualmente muere.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Planificación:&lt;/strong&gt; Definir requisitos y arquitecturas antes de que el dato exista.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Habilitación / Diseño:&lt;/strong&gt; Crear los sistemas y bases de datos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creación / Adquisición:&lt;/strong&gt; El punto de entrada del dato (interno o externo).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mantenimiento y Almacenamiento:&lt;/strong&gt; Procesar, limpiar y asegurar persistencia.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uso:&lt;/strong&gt; La fase donde el dato aporta valor real al negocio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mejora:&lt;/strong&gt; Técnicas de calidad y enriquecimiento.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archivo:&lt;/strong&gt; Conservación por razones legales o históricas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Eliminación / Purga:&lt;/strong&gt; Borrado seguro cuando ya no hay utilidad.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5nhqubqr0vsu1gyw3anm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5nhqubqr0vsu1gyw3anm.png" alt="Ciclo de Vida del Dato según DAMA" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2. El Ciclo de Vida de la Ingeniería de Datos
&lt;/h2&gt;

&lt;p&gt;Este ciclo se enfoca en el "pipeline" y las etapas técnicas que convierten datos crudos en recursos valiosos. Se divide en 5 etapas principales:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Generación&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ingesta&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Almacenamiento&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transformación&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Capa de servicio&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Además de ellos existen &lt;strong&gt;conceptos transversales&lt;/strong&gt; (corrientes subterráneas) que intervienen en cada etapa: &lt;em&gt;Seguridad, Gestión de datos, DataOps, Arquitectura, Orquestación e Ingeniería de software.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qgmansxr6xw2ret55ee.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qgmansxr6xw2ret55ee.png" alt="Data Engineering Lifecycle" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Profundizando en las etapas
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Generación
&lt;/h3&gt;

&lt;p&gt;Es el origen de todo. Aquí es donde los datos nacen.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Conocimiento vs Control:&lt;/strong&gt; No siempre somos dueños de la fuente (algo muy común), pero sí debemo conocer cómo se generan, su frecuencia y velocidad.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comunicación:&lt;/strong&gt; Hablar con los dueños de la fuente ayuda a prever cambios. Cada fuente tiene límites y características unicas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evolución del esquema:&lt;/strong&gt; Mientras más cambie el esquema (Schema Evolution), más desafiante será mantener el pipeline estable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Almacenamiento
&lt;/h3&gt;

&lt;p&gt;Elegir dónde guardar los datos define qué tanta libertad tendrás para operar. En la nube, el costo depende de cual es el tiempo de acceso conocido como la "temperatura" del acceso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hot Storage:&lt;/strong&gt; Consultas constantes (baja latencia).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cold Storage:&lt;/strong&gt; Consultas esporádicas (ej. una vez al mes).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archive Storage:&lt;/strong&gt; Datos históricos "congelados" (alta latencia).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aunque el storage parece barato, cuando la empresa escala, los costos pueden darte dolores de cabeza si no eliges bien desde el inicio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ingesta
&lt;/h3&gt;

&lt;p&gt;Aquí aparecen los cuellos de botella. Debes decidir tu estrategia según el caso de uso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Batch (Lotes):&lt;/strong&gt; Intervalos definidos (ejemplo leer una DB o un CSV una vez al día).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streaming (Tiempo real):&lt;/strong&gt; Flujo constante (ejemplo sensores o eventos de apps).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Importante: El streaming puede ser más caro si está activado 24/7, pero un batch mal optimizado puede descontrolarse en cómputo. Analiza siempre la fuente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Transformación
&lt;/h3&gt;

&lt;p&gt;Pasamos de datos "sucios" a datos que siguen reglas de negocio o generan valor. El Data Wrangling y la limpieza de datos son lo que garantiza que el usuario final reciba valor y no "basura".&lt;/p&gt;

&lt;h3&gt;
  
  
  Capa de servicio
&lt;/h3&gt;

&lt;p&gt;Donde por fin vemos el valor de todo nuestro trabajo. Los datos se exponen para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analítica (BI)&lt;/li&gt;
&lt;li&gt;Machine Learning&lt;/li&gt;
&lt;li&gt;Reverse ETL&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Conceptos Transversales
&lt;/h2&gt;

&lt;p&gt;Para que el ciclo no se rompa, necesitamos estas bases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Seguridad:&lt;/strong&gt; Acceso solo a quien lo necesite. Ademas el ingeniero de datos debe tener encuenta que es el responsable de los datos a los que puede acceder y en sus desarrollos velar por la seguridad de estos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gestión de datos:&lt;/strong&gt; Asegurar que el dato sea entendible, tenga calidad y respete la privacidad.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DataOps:&lt;/strong&gt; Aplicando la Cultura DevOps pero en datos. Automatizar, monitorear y detectar errores rápido. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Arquitectura:&lt;/strong&gt; El equipo de arquitectura es el encargado de entender el negocio de forma completa para tomar decisiones estratégicas. A diferencia de un ingeniero, que suele enfocarse en una cantidad limitada de proyectos o tareas específicas, los arquitectos deben conocer el mapa completo. Su rol es balancear las necesidades del negocio con la solución tecnológica más adecuada.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Orquestación:&lt;/strong&gt; Es el proceso de coordinar múltiples jobs para que corran de manera rápida y eficiente, ya sea en un horario definido o según se necesite. El orquestador es el que se encarga de gestionar las dependencias.&lt;br&gt;
Además, la orquestación incluye el monitoreo de estas ejecuciones. Un buen diseño debe contemplar que los procesos pueden fallar, definiendo reglas de reintento automáticas para no depender de la intervención humana constante.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ingeniería del Software:&lt;/strong&gt; Existen áreas comunes entre la ingeniería de software y la ingeniería de datos; temas como streaming, infraestructura como código, pipeline as code, desarrollo y el uso de frameworks open source.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;¿Cuál de estas 5 etapas te ha dado más dolores de cabeza recientemente?&lt;/strong&gt; ¡Te leo en los comentarios! &lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>data</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Los datos se cocinan entre muchas manos: descubre cuál es la tuya</title>
      <dc:creator>Mirina-Gonzales</dc:creator>
      <pubDate>Fri, 03 Apr 2026 05:47:01 +0000</pubDate>
      <link>https://forem.com/mirinagonzales/los-datos-se-cocinan-entre-muchas-manos-descubre-cual-es-la-tuya-42a7</link>
      <guid>https://forem.com/mirinagonzales/los-datos-se-cocinan-entre-muchas-manos-descubre-cual-es-la-tuya-42a7</guid>
      <description>&lt;h2&gt;
  
  
  Introducción
&lt;/h2&gt;

&lt;p&gt;El objetivo de este blog es compartir los diferentes roles que existen en el mundo de los datos. Si eres nueva en este mundo puede ser complicado entender cómo se relacionan entre ellos y sobre todo cómo se diferencian, es por eso que elegí la metáfora de la cocina, donde podemos identificar las diferencias de una forma más cercana y fácil de entender.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Por qué existen tantos roles en datos?
&lt;/h2&gt;

&lt;p&gt;Cuando una empresa es pequeña y está incursionando en el mundo de los datos, puede que una sola persona asuma diferentes roles. Pero mientras la empresa va creciendo, las necesidades se vuelven más específicas y es ahí donde se necesitan manos más especializadas. Es diferente tener 4 requerimientos a tener 30 requerimientos que son necesarios para la operatividad del negocio. &lt;/p&gt;

&lt;h2&gt;
  
  
  Antes de elegir un rol - Como viajan los datos
&lt;/h2&gt;

&lt;p&gt;Para entender los roles es útil entender primero cómo viajan los datos dentro de una empresa, igual que en una cocina donde cada persona tiene una función en el proceso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los ingredientes llegan → ingesta de datos&lt;/li&gt;
&lt;li&gt;Se limpian y organizan → transformación y limpieza&lt;/li&gt;
&lt;li&gt;Se guardan en su lugar → almacenamiento en bases de datos o data warehouses&lt;/li&gt;
&lt;li&gt;Se cocinan → procesamiento y análisis&lt;/li&gt;
&lt;li&gt;Se sirven → visualización y reportes&lt;/li&gt;
&lt;li&gt;Se crean nuevas recetas → modelos de ML y ciencia de datos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cada rol vive en una parte distinta de este recorrido. Ninguno es más importante que otro: si falla uno, el proceso completo se ve afectado. Como en una cocina, de que serviría tener el mejor chef si no se tiene un buen almacenamiento de alimentos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Los roles
&lt;/h2&gt;

&lt;p&gt;A continuación, presentamos los roles más comunes en un equipo de datos. Ten en cuenta que, a medida que el equipo crece, las funciones tienden a especializarse cada vez más y nuevo roles aparecen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ttrkkrfeognds2luwe6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ttrkkrfeognds2luwe6.png" alt="Flujo de roles de datos" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Analista de datos&lt;/strong&gt;&lt;br&gt;
Explora los datos disponibles para responder preguntas de negocio. Tiene la capacidad de traducir los datos en información que otros equipos pueden entender y usar para decidir. Algunas de sus actividades son: identificar patrones y tendencias en los datos, construir reportes y visualizaciones, y consultar bases de datos para responder preguntas concretas.&lt;br&gt;
&lt;strong&gt;- Ingeniera de datos&lt;/strong&gt;&lt;br&gt;
Construye y mantiene los flujos de datos desde un origen hacia un destino. Sin ella, los datos no llegan a tiempo ni en buen estado a quienes los necesitan. Algunas de sus actividades son: conectar diferentes fuentes de datos, limpiar y estandarizar la información, y garantizar que los pipelines funcionen correctamente.&lt;br&gt;
&lt;strong&gt;- Científica de datos&lt;/strong&gt;&lt;br&gt;
Usa estadística y algoritmos para encontrar patrones ocultos y predecir comportamientos futuros. Algunas de sus actividades son: construir modelos predictivos, aplicar estadística para validar hipótesis, y extraer insights donde el análisis tradicional no logra llegar.&lt;br&gt;
&lt;strong&gt;- Ingeniería de ML&lt;/strong&gt;&lt;br&gt;
Toma los modelos creados por la científica de datos y los hace funcionar dentro de un sistema real, de forma estable y a escala. No inventa el algoritmo, lo convierte en algo que puede correr en producción todos los días sin fallar.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ojito: Los roles de científica de datos e ingeniera de Machine Learning pueden ser confusos porque dependiendo de la empresa las actividades varían o se solapan. En empresas pequeñas una sola persona puede asumir los dos roles. La separación aparece cuando el volumen de trabajo lo justifica.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Siempre lee la descripción:
&lt;/h2&gt;

&lt;p&gt;Recomiendo revisar los requisitos de cada oferta laboral, si bien buscamos identificar las diferencia algunas empresas pueden poner el nombre de un rol y buscar habilidades de otros o herramientas qiue no concoes, entonces es bueno asegurarse, los titulos aveces dicen la verdad a medias.&lt;br&gt;
Una oferta que dice "Data Scientist" en una empresa puede ser trabajo de análisis puro con SQL y Excel, sin ningún modelo de Machine Learning. En otra empresa ese mismo título puede requerir conocimientos profundos de estadística, Python y redes neuronales. El título es el mismo, el trabajo es completamente distinto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Que herramientas necesitas
&lt;/h2&gt;

&lt;p&gt;Python:&lt;br&gt;
&lt;a href="https://www.w3schools.com/python/default.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/python/default.asp&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.kaggle.com/learn/python" rel="noopener noreferrer"&gt;https://www.kaggle.com/learn/python&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pandas:&lt;br&gt;
&lt;a href="https://www.w3schools.com/python/pandas/default.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/python/pandas/default.asp&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.kaggle.com/learn/pandas" rel="noopener noreferrer"&gt;https://www.kaggle.com/learn/pandas&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SQL:&lt;br&gt;
&lt;a href="https://sqlbolt.com/" rel="noopener noreferrer"&gt;https://sqlbolt.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.kaggle.com/learn/intro-to-sql" rel="noopener noreferrer"&gt;https://www.kaggle.com/learn/intro-to-sql&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.w3schools.com/sql/default.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/sql/default.asp&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;El mundo de los datos puede parecer infinito cuando lo ves desde afuera, pero una vez que entiendes cómo se divide el trabajo todo empieza a tener sentido. Como en cualquier cocina, no necesitas saber hacer todo: necesitas encontrar el rol donde tus habilidades y tu curiosidad se encuentran.&lt;/p&gt;

&lt;p&gt;La buena noticia es que todos los caminos comparten un punto de partida: SQL es la herramienta que atraviesa todos los roles, y Python te abre las puertas de casi cualquier rol que tú elijas. Y recuerda, siempre se puede cambiar.&lt;/p&gt;

</description>
      <category>data</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>ThinkInk: Optimizing the Reader's Journey with Generative AI and Copilot CLI - Using Python, Streamlit and Gemini</title>
      <dc:creator>Mirina-Gonzales</dc:creator>
      <pubDate>Fri, 13 Feb 2026 06:47:34 +0000</pubDate>
      <link>https://forem.com/mirinagonzales/thinkink-optimizing-the-readers-journey-with-generative-ai-and-copilot-cli-29jm</link>
      <guid>https://forem.com/mirinagonzales/thinkink-optimizing-the-readers-journey-with-generative-ai-and-copilot-cli-29jm</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I am a person who loves reading, but sometimes I find it hard to decide which book to choose or to find one about a new topic I want to explore. I created this application for people like me: readers looking to get hooked on a story before opening it and walk away with key ideas at the end; but also for those who want to start their reading journey and don't know where to begin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;ThinkInk&lt;/em&gt;&lt;/strong&gt; is an application designed to accompany and motivate both established and new readers to discover titles, get to know authors, and explore their works.&lt;/p&gt;

&lt;p&gt;During development, many ideas for improvement emerged, which led me to split the application into two sections:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Local Exploration:&lt;/strong&gt; Allows interaction with a list of 10 books stored in a file within the repository. It includes detailed information about the book and the author. This section works autonomously and locally, as the data is integrated directly into the code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploration with Generative IA (Gemini):&lt;/strong&gt; To expand the possibilities, I integrated Gemini. This section allows discovering books by topic, author, or title without restrictions. For this functionality, the user only needs to add a secret key (which can be generated for free for testing purposes), expanding the application's functionality.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As a Data Engineer, my goal is always to make data accessible and useful. Although I started ThinkInk in Spanish, I knew a global challenge required a global reach. With Copilot's guidance, I moved beyond my comfort zone to implement a seamless multi-language experience, ensuring no reader is left behind.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🚀 &lt;strong&gt;Explore the Repository:&lt;/strong&gt; &lt;a href="https://github.com/Mirina-Gonzales/ThinkInk-app" rel="noopener noreferrer"&gt;ThinkInk on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ Installation and Execution
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Requirements
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.8+&lt;/li&gt;
&lt;li&gt;pip (package manager)&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;1. Clone the repository&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Mirina-Gonzales/ThinkInk-app.git
&lt;span class="nb"&gt;cd &lt;/span&gt;ThinkInk-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Create virtual environment&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv
&lt;span class="nb"&gt;source &lt;/span&gt;venv/bin/activate        &lt;span class="c"&gt;# Linux/Mac&lt;/span&gt;
&lt;span class="c"&gt;# or&lt;/span&gt;
venv&lt;span class="se"&gt;\S&lt;/span&gt;cripts&lt;span class="se"&gt;\a&lt;/span&gt;ctivate           &lt;span class="c"&gt;# Windows&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Install dependencies&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Configure Gemini (Optional but recommended)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step A: Get API Key&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://makersuite.google.com/app/apikey" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click "Get API Key"&lt;/li&gt;
&lt;li&gt;Copy your key&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step B: Create .env file&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
In the project root, create a &lt;code&gt;.env&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GEMINI_API_KEY=your_key_here
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or use the template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;span class="c"&gt;# Then edit .env with your key&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Run the application&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;streamlit run app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The app will open at &lt;code&gt;http://localhost:8502&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Note: If you encounter any issues during the installation on Windows (such as virtual environment errors), I have included a troubleshooting section in the README to help you out.&lt;/p&gt;

&lt;h3&gt;
  
  
  📸 App Showcase: See it in Action
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🌍 Seamless Multilingual Interface
&lt;/h4&gt;

&lt;p&gt;The application dynamically translates the entire interface and content, providing a truly global experience for any reader.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Spanish Version&lt;/th&gt;
&lt;th&gt;English Version&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj6cgpr3i9pydw0n21o4n.png" alt="app_es" width="800" height="628"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpfsjib4hwgad93ox4zq9.png" alt="app_en" width="800" height="628"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  📂 Local Library Exploration
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Reflective Reading:&lt;/em&gt;&lt;/strong&gt; Users can interact with a curated local database of classic books, answering pre- and post-reading questions designed to deepen their connection with the text.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7xvdkqnofjsiyh898qux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7xvdkqnofjsiyh898qux.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Dynamic Data Loading:&lt;/em&gt;&lt;/strong&gt; Even the local data (titles, authors, and insights) adapts to the selected language, ensuring consistency across the platform.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgdupc0y9sp765sejz2pj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgdupc0y9sp765sejz2pj.png" alt=" " width="800" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  🤖 AI-Powered Intelligence (Gemini)
&lt;/h4&gt;

&lt;p&gt;This is where the magic happens. By integrating Google Gemini AI, ThinkInk breaks the limits of a static library:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;In-Depth Analysis:&lt;/em&gt;&lt;/strong&gt; Uses generative AI to provide summaries and character breakdowns for any book in the local repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6es2q0i7m0251cenxrpo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6es2q0i7m0251cenxrpo.png" alt=" " width="800" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Smart Topic Discovery:&lt;/em&gt;&lt;/strong&gt; Users can search for books based on specific themes (e.g., "Friendship", "Dystopia"). Gemini acts as an expert literary consultant to find the perfect match.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzw2xybxs1rqkmjs6054.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzw2xybxs1rqkmjs6054.png" alt=" " width="800" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;I absolutely loved the experience. Although I use Copilot daily for my Data Engineering tasks, I hadn't yet ventured into building a full application from scratch. I built this app using Streamlit, and while I was already familiar with the tool, Copilot was what added that "Senior" touch to the entire development process.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Step-by-Step Process:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;🗺️ Defining the Solution:&lt;/strong&gt;&lt;/em&gt; I started by giving Copilot context about the application and the features I wanted. I asked for a professional folder structure and, after validating it, we created the first functional version using locally stored books.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;🧪 Validating Quality from the Start:&lt;/strong&gt;&lt;/em&gt; I requested the creation and execution of unit tests. Seeing how Copilot designed the tests helped me learn a lot about the testing process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;🤖 Powering up with AI (Gemini):&lt;/em&gt;&lt;/strong&gt; To increase the complexity, I used GitHub Copilot CLI to help me integrate Google Gemini AI. I wanted to apply specific restrictions to the AI's usage, so we implemented Guardrails. We configured rules to ensure the tool only responds about books, avoiding offensive content or off-topic subjects—something I consider vital when working with these technologies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;🌍 Breaking Barriers with i18n:&lt;/strong&gt;&lt;/em&gt; I wanted the app to be bilingual. When I asked for recommendations, Copilot offered three different options and suggested i18n because it is lightweight and ideal for my level of experience with internationalization. The comments it generated were incredibly helpful in understanding how the multi-language flow works.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;✨ Refinement and Documentation:&lt;/em&gt;&lt;/strong&gt; Finally, we iterated to remove redundant functions that were complicating navigation. We also generated README.md files in both languages, ensuring the technical content remained consistent.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Why Working Step-by-Step was so Rewarding
&lt;/h3&gt;

&lt;p&gt;Instead of sending a massive prompt with everything I needed, I decided to work iteratively. This allowed me to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Full Control:&lt;/strong&gt;&lt;/em&gt; I could supervise every change and avoid getting lost among so many new features.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Precise Adjustments:&lt;/strong&gt;&lt;/em&gt; If Copilot generated something that didn't quite match what I expected for the app, we corrected it in the moment before moving forward.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Real Learning:&lt;/strong&gt;&lt;/em&gt; By going step-by-step, I was able to understand the "why" behind every solution, especially regarding testing and language management—areas I hadn't worked in before.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🎀 Conclusion
&lt;/h2&gt;

&lt;p&gt;Building ThinkInk has been a fun and deeply educational experience. As a Data Engineer, this project allowed me to bridge the gap between data processing and frontend interface development. Although I had worked with Streamlit before, Copilot helped me easily overcome the barrier of adding that professional touch with ease. Thanks to this, I now plan to create new applications by exploring other frontend languages as well.&lt;/p&gt;

&lt;p&gt;I believe the step-by-step methodology using GitHub Copilot CLI was the key to success: it gave me full control over every change and, most importantly, allowed me to deeply understand the code being generated. I highly recommend this iterative approach to maintain full mastery over the projects you are working on.&lt;/p&gt;

&lt;p&gt;I hope this application helps the community and inspires more people to build new things, unlocking new skills and exploring the potential of AI in development.&lt;/p&gt;




&lt;h2&gt;
  
  
  👤 Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mirina Gonzales Rodriguez&lt;/strong&gt; - &lt;a href="https://dev.to/mirinagonzales"&gt;DEV Profile&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Mirina-Gonzales" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>githubchallenge</category>
      <category>githubcopilot</category>
      <category>ai</category>
      <category>devchallenge</category>
    </item>
    <item>
      <title>Streamlit desde cero: cómo crear una app para explorar y visualizar datos</title>
      <dc:creator>Mirina-Gonzales</dc:creator>
      <pubDate>Sat, 03 Jan 2026 08:48:17 +0000</pubDate>
      <link>https://forem.com/mirinagonzales/streamlit-desde-cero-como-crear-una-app-para-explorar-y-visualizar-datos-desde-un-csv-5642</link>
      <guid>https://forem.com/mirinagonzales/streamlit-desde-cero-como-crear-una-app-para-explorar-y-visualizar-datos-desde-un-csv-5642</guid>
      <description>&lt;p&gt;Streamlit desde cero: cómo cargar, explorar y graficar datos desde un archivo CSV&lt;/p&gt;




&lt;h2&gt;
  
  
  Introducción
&lt;/h2&gt;

&lt;p&gt;En este artículo se usará &lt;strong&gt;Streamlit desde cero&lt;/strong&gt; para construir una aplicación interactiva que permita cargar, explorar y visualizar datos desde un archivo CSV en un ambiente local.&lt;/p&gt;

&lt;p&gt;El objetivo es crear rápidamente una aplicación para visualizar datos.&lt;/p&gt;

&lt;p&gt;El repositorio es el siguiente: &lt;a href="https://github.com/Mirina-Gonzales/tech-talks-with-miri" rel="noopener noreferrer"&gt;https://github.com/Mirina-Gonzales/tech-talks-with-miri&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Streamlit
&lt;/h2&gt;

&lt;p&gt;Es un framework de Python de código abierto que permite a profesionales del área de datos crear aplicaciones interactivas de manera simple.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Permite agilidad para trabajar, porque la actualización de los cambios es rápida.&lt;/li&gt;
&lt;li&gt;Tiene una gran variedad de componentes listos para usar, por ejemplo: botones, tablas, mapas, cuadros, etc.&lt;/li&gt;
&lt;li&gt;Permite reducir los tiempos de carga porque cuenta con sistema de cache, que almacena los datos en memoria y permite reutilizarlos en diferentes páginas dentro de una misma aplicación.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Otras Tecnologías Utilizadas
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; es un lenguaje de programación de alto nivel, fácil de aprender y muy versátil, utilizado ampliamente en desarrollo web, automatización, ciencia de datos, inteligencia artificial y muchas otras áreas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pandas&lt;/strong&gt; es una biblioteca de Python diseñada para manipular, limpiar y analizar datos de forma eficiente, ofreciendo estructuras como DataFrames.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Github&lt;/strong&gt; es una plataforma en la nube basada en el sistema de control de versiones git, que se utiliza para alojar, compartir y colaborar en proyectos de software.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Arquitectura
&lt;/h2&gt;

&lt;p&gt;Esta es la arquitectura implementada: los datos están almacenados en un CSV en el ambiente local, como lenguaje de programación se usará Python con la librería de Pandas para una mejor manipulación de los datos y finalmente Streamlit será el framework que permitirá la visualización de los datos en un web local.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0ulwyw73n6lsapjkuo7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0ulwyw73n6lsapjkuo7.png" alt="Arqutectura a implementar" width="800" height="835"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Análisis del código
&lt;/h2&gt;

&lt;p&gt;En esta sección conoceremos algunos de los comandos que se utilizan en la demo, para mayor información en la sección de recursos está el enlace de la documentación.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Se pueden usar &lt;code&gt;st.header&lt;/code&gt;, &lt;code&gt;st.subheader&lt;/code&gt; y &lt;code&gt;st.write&lt;/code&gt; para mostrar títulos y textos en la aplicación.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;st.header("Probar Streamlit de manera local")

st.subheader("3. Presentación de gráficos para análisis exploratorio de datos (EDA)")

st.write("¿Cuál es la distribución de los diferentes estados de fumador dentro de los grupos de personas con y sin diabetes?")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3adcv56q0v4heanhfmah.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3adcv56q0v4heanhfmah.png" alt="Imprimir las tres opciones de texto" width="800" height="215"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configuración de la página
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;st.set_page_config( page_title="Streamlit local", page_icon="📁", layout="wide" )
st.title("💻 Probar Streamlit de manera local")
st.write("""
Esta aplicación demuestra cómo cargar y explorar un conjunto de datos localmente usando Streamlit.
El conjunto de datos utilizado es un conjunto de datos ficticio sobre diabetes.
""")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Para importar los datos desde un archivo CSV local se utiliza Pandas.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uploaded_file = "data/diabetes_dataset.csv"
df = pd.read_csv(uploaded_file)
st.success(" ✅ Archivo cargado correctamente.")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Para imprimir un dataframe usar  st.dataframe
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;st.dataframe(df.head())
st.dataframe(df.describe())
st.write("Filas y columnas:", df.shape)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1obn3uohzpeoe0n9rjs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1obn3uohzpeoe0n9rjs.png" alt="Imprimir dataframe" width="800" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Se puede experimentar con diferentes filtros para las visualizaciones de datos en este caso st.slider
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;visualizacionn = st.slider("Número de filas", 5, 100, 5)
st.dataframe(df.head(n))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fql9akpsohfdbsw5mwtf1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fql9akpsohfdbsw5mwtf1.png" alt="visualizar el filtro de slide" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Imprimir un Treemap
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fig = px.treemap(
    df,
    path=["diagnosed_diabetes", "smoking_status"],
    title="Treemap jerárquico: Diabetes → Fumador"
)
st.plotly_chart(fig, use_container_width=True)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9zbenny0d559pl3kz0h1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9zbenny0d559pl3kz0h1.png" alt="imprimir treemap" width="800" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Imprimir Pie Chart
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;st.subheader("Diabéticos")
diab = df[df["diagnosed_diabetes"] == 1]["smoking_status"].value_counts()

fig1, ax1 = plt.subplots(figsize=(5,5))
ax1.pie(diab, labels=diab.index, autopct="%1.1f%%")
ax1.set_title("Fumadores (Diabéticos)")
st.pyplot(fig1)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4menaamfl4kvi9a5ypwg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4menaamfl4kvi9a5ypwg.png" alt="imprimir pie chart" width="614" height="654"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Implementación Paso a Paso
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Preparar ambiente
&lt;/h3&gt;

&lt;p&gt;Clonar o descargar el repositorio desde GitHub: &lt;a href="https://github.com/Mirina-Gonzales/tech-talks-with-miri" rel="noopener noreferrer"&gt;https://github.com/Mirina-Gonzales/tech-talks-with-miri&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Abrir el proyecto en un IDE como Visual Studio Code.&lt;/li&gt;
&lt;li&gt;Abrir una terminal.&lt;/li&gt;
&lt;li&gt;Navega hasta la carpeta:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;demo-local-streamlit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Crear ambiente virtual
&lt;/h3&gt;

&lt;p&gt;Se llamará al ambiente: _env-local-streamlit _&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Crear ambiente
python -m venv env-local-streamlit

# Activar ambiente
source env-local-streamlit/bin/activate

# Listar librerías antes de instalar 
pip list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrr8967pgezyfb5jf3uv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrr8967pgezyfb5jf3uv.png" alt="comandos de crear ambiente" width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Instalar dependencias
&lt;/h3&gt;

&lt;p&gt;Usando el archivo requirements.txt que se encuentra en el proyecto se instalaran los paquetes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install -r requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Validar la instalación&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjlaakejcrsbq9y3dmkf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjlaakejcrsbq9y3dmkf.png" alt="Listar librerías luego de ejecutar el requirements" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ejecutar aplicación
&lt;/h3&gt;

&lt;p&gt;Con el ambiente virtual activo y las dependencias instaladas, ejecutar la aplicación con el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;streamlit run src/main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkobf9bqvim07qjedyov8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkobf9bqvim07qjedyov8.png" alt="ejemplo de ejecutar aplicacion streamlit" width="800" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzqcxp2c5i079arujr40d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzqcxp2c5i079arujr40d.png" alt="Imagen de la aplicación ejecutandose" width="800" height="641"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusiones
&lt;/h2&gt;

&lt;p&gt;En este blog se creó una demo de Streamlit, utilizando como fuente de datos un archivo csv almacenado en el ambiente local. Se analizó y procesó los datos utilizando Pandas y finalmente con Streamlit se desplegó una aplicación web para visualizar los datos procesados. Experimentando lo simple que es usar el framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recursos Recomendados
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Documentación oficial de Streamlit: &lt;a href="https://docs.streamlit.io" rel="noopener noreferrer"&gt;https://docs.streamlit.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Repositorio de ejemplo con una aplicación más compleja desplegada en GCP usando Cloud Run:
&lt;a href="https://github.com/Mirina-Gonzales/mg-gcp-cloudrun-streamlit" rel="noopener noreferrer"&gt;https://github.com/Mirina-Gonzales/mg-gcp-cloudrun-streamlit&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sobre la Autora
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Mirina Gonzales&lt;br&gt;&lt;br&gt;
Data Engineer | Women Techmakers Ambassador&lt;br&gt;&lt;br&gt;
🔗 LinkedIn: linkedin.com/in/mirina-gonzales-rodriguez/&lt;br&gt;&lt;br&gt;
💻 GitHub: github.com/Mirina-Gonzales&lt;br&gt;&lt;br&gt;
✍️ Blog: dev.to/mirinagonzales | medium.com/@mirina.gonzales&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>python</category>
      <category>streamlit</category>
      <category>datascience</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>Construyendo desde la raíz: guía para tus primeros pasos en datos y cloud</title>
      <dc:creator>Mirina-Gonzales</dc:creator>
      <pubDate>Sat, 05 Jul 2025 07:33:00 +0000</pubDate>
      <link>https://forem.com/mirinagonzales/construyendo-desde-la-raiz-guia-para-tus-primeros-pasos-en-datos-y-cloud-1egl</link>
      <guid>https://forem.com/mirinagonzales/construyendo-desde-la-raiz-guia-para-tus-primeros-pasos-en-datos-y-cloud-1egl</guid>
      <description>&lt;p&gt;Hola, espero te encuentres bien :) !&lt;br&gt;
Si estás interesada en el mundo de los datos y la nube, y tienes muchas dudas sobre por dónde empezar, este artículo puede darte una idea clara de las cosas que puedes hacer.&lt;/p&gt;

&lt;p&gt;Cuando yo quería comenzar como ingeniera de datos, me sentía muy abrumada por toda la información disponible: cursos, certificaciones, herramientas... Tal vez eso mismo te está pasando. Espero poder ayudarte con estos primeros pasos.&lt;/p&gt;

&lt;p&gt;Aquí compartiré recursos que me ayudaron cuando empecé y que, a lo largo del tiempo, he encontrado realmente útiles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Libros:
&lt;/h2&gt;

&lt;p&gt;Tengo una preferencia por leer, porque siento que puedo controlar la velocidad y personalmente se me hace más fácil estudiar de esta manera. Te comparto algunos libros que me parecen útiles.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Python for Data Analysis – Wes McKinney
&lt;/h4&gt;

&lt;p&gt;Este libro tiene temas básicos sobre Python y el uso de pandas que considero importante si quieres trabajar en datos, además de hablar de exploración, limpieza y manipulación de datos.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Python Crash Course – Eric Matthes
&lt;/h4&gt;

&lt;p&gt;Similar al libro anterior habla sobre Python y tiene proyectos para iniciar desde cero, es bueno si no tienes experiencia en programación o quieres ver los fundamentos.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Learning Spark – Jules S. Damji
&lt;/h4&gt;

&lt;p&gt;Spark es un framework importante en la manipulación de grandes cantidades de datos, y puedes utilizar diferentes lenguajes que están disponibles con el framework sobre todo recomiéndo Python porque es un buen punto de partida.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Big Data for Dummies – Judith Hurwitz
&lt;/h4&gt;

&lt;p&gt;Este no es un libro que haya leído completo porque cuando lo encontré ya tenía experiencia y conocimiento en varios temas que aborda, pero por lo mismo creo que es bueno si estas iniciando maneja de una manera fácil varios conceptos necesarios.&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Delta Lake: The Definitive Guide – Denny Lee, et al.
&lt;/h4&gt;

&lt;p&gt;Luego de tener un poco más de experiencia en manipulación de datos, este libro habla sobre Delta Lake un formato conocido de manipulación de datos, se explica la consistencia y el rendimiento que garantiza el uso de Delta Sharing.&lt;/p&gt;

&lt;h4&gt;
  
  
  6. Designing Data-Intensive Applications – Martin Kleppmann
&lt;/h4&gt;

&lt;p&gt;Siento que este libro es más avanzando sobre a comparación de los anteriores porque abarca temas más complicados, como escalabilidad, tolerancia a fallos y arquitectura de datos. Si busca profundizar este libro es el indicado, si lo sientes un poco abrumante tranquila suele serlo.&lt;/p&gt;

&lt;p&gt;Puedes empezar por los primeros dos y luego ir subiendo la dificultad según veas tu interés en estos temas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cursos:
&lt;/h2&gt;

&lt;p&gt;Algunos cursos que recomiendo, algunos de ellos llevé y otros que creo que son muy interesantes y podrian ayudar ayudarte.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Tu primer pipeline con Spotify (YouTube – Gratuito)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Serie de 3 videos para crear un pipeline desde cero usando datos de Spotify.&lt;/li&gt;
&lt;li&gt;Fue el primer pipeline que creé. Tuve algunas dificultades técnicas, pero me dio el empuje que necesitaba.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📺 &lt;a href="https://www.youtube.com/watch?v=dvviIUKwH7o" rel="noopener noreferrer"&gt;Ver en YouTube&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Introducción a la nube con AWS (SkillBuilder – Gratuito)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Curso ideal para entender los conceptos básicos de cloud computing.&lt;/li&gt;
&lt;li&gt;Plataforma con más cursos gratuitos que te pueden interesar.
🔗 &lt;a href="https://skillbuilder.aws/learn/FU5WCYVGKY/aws-cloud-quest-cloud-practitioner/JF9TKU68GT" rel="noopener noreferrer"&gt;Curso AWS Cloud Quest&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. Fundamentos de Azure (Microsoft Learn – Gratuito)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Plataforma con rutas de aprendizaje gratuitas y preparación para certificaciones.
🔗 &lt;a href="https://learn.microsoft.com/en-us/credentials/certifications/azure-fundamentals/?practice-assessment-type=certification" rel="noopener noreferrer"&gt;Azure Fundamentals&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Comunidades
&lt;/h2&gt;

&lt;p&gt;Por experiencia personal recomiendo participar en comunidades que hagan match con lo que estas buscando aprender, en este caso hay varias comunidades tanto para datos como cloud, te comparto algunas.&lt;br&gt;
Algunas de estas comunidades dictan cursos gratis, organizan grupos de estudios para certificaciones entre otras actividades.&lt;/p&gt;

&lt;h4&gt;
  
  
  Data Wizard Club
&lt;/h4&gt;

&lt;p&gt;Es una nueva comunidad, pero por eso no es que no esten activos, estan activos en las diferentes actividades como grupos de estudio, charlas en temas relacionados en datos y servicios de cloud enfocado en datos.&lt;br&gt;
&lt;a href="https://www.linkedin.com/company/data-wizard-club/posts/?feedView=all" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  DataTalksClub
&lt;/h4&gt;

&lt;p&gt;Aqui podran encontrar diferentes cursos a seguir de manera gratis, cada cierto tiempo lanza diferentes cursos y quedan grabados en You Tube y tienen un buen repo de Github.&lt;br&gt;
&lt;a href="https://www.linkedin.com/company/datatalks-club/posts/?feedView=all" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://datatalks.club/blog/guide-to-free-online-courses-at-datatalks-club.html" rel="noopener noreferrer"&gt;Pagina Web&lt;br&gt;
&lt;/a&gt;&lt;a href="https://github.com/DataTalksClub" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;También hay comunidades enfocadas en las diferentes nubes o proveedores de servicios, aqui les dejo algunas comunidades que creo que son muy activas y están compartiendo recursos, organizan eventos y hasta grupos de certificaciones con sorteo de voucher!&lt;/p&gt;

&lt;h4&gt;
  
  
  AWS User Group Perú
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/company/awsusergroupperu/posts/?feedView=all" rel="noopener noreferrer"&gt;LinkedIn&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  AWS Girls Perú
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/company/aws-girls-user-group-peru/posts/?feedView=all" rel="noopener noreferrer"&gt;LinkedIn&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  AWS Women Colombia
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/company/aws-women-colombia/posts/?feedView=all" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Microsoft User Group Perú
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/company/mugdelperu/posts/" rel="noopener noreferrer"&gt;LinkedIn&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  GDG Cloud Lima
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/company/gdg-cloud-lima/" rel="noopener noreferrer"&gt;LinkedIn&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Participar en comunidades ha sido de mucha ayuda en mi camino, por eso te recomiendo que tú también lo hagas. No necesitas ser experta para aportar en si necesitas ganas de aprender!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusiones
&lt;/h2&gt;

&lt;p&gt;Para finalizar no creo que debas seguir todos estos cursos o leer todos estos libros para poder sentirte preparado, el camino se hace al andar.&lt;br&gt;
Es normal dudar al inicio, mi recomendación es que elijas un recurso, comiences a construir algo práctico ya sea en tu computadora o usando una plataforma en la nube y te des la oportunidad de experimentar.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Creando API con FAST API y con el servidor uvicorn: si tus cambios no se actualizan en tu servidor lugar</title>
      <dc:creator>Mirina-Gonzales</dc:creator>
      <pubDate>Thu, 25 Jul 2024 03:08:21 +0000</pubDate>
      <link>https://forem.com/mirinagonzales/creando-api-con-fast-api-y-con-el-servidor-uvicorn-si-tus-cambios-no-se-actualizan-en-tu-servidor-lugar-g7a</link>
      <guid>https://forem.com/mirinagonzales/creando-api-con-fast-api-y-con-el-servidor-uvicorn-si-tus-cambios-no-se-actualizan-en-tu-servidor-lugar-g7a</guid>
      <description>&lt;p&gt;Si estas creando una api usando FastApi y mientras haces pruebas en tu local no ves que se apliquen los cambios de tu codigo en tu servidor local, lo que puedes es matar los procesos que estan corriendo en el task manager.&lt;/p&gt;

&lt;p&gt;Ingresa al Task Manager y ingresa a la pestaña de detalles. Busca los procesos de Python si tienes cual es el pip de tus procesos los detienes o puedes apagar todos para asegurarte.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa4r5tots8urs8b6113kz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa4r5tots8urs8b6113kz.png" alt=" " width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aquí se pueden ver cuales son los pip de las tareas que se estan ejecutando&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxwp7zwfdto6bsvz9t7kq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxwp7zwfdto6bsvz9t7kq.png" alt=" " width="800" height="140"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>fastapi</category>
      <category>beginners</category>
      <category>python</category>
    </item>
  </channel>
</rss>
