Portfolio de Proyectos
Un buen portfolio en GitHub no es solo subir código. Es demostrar que entiendes arquitectura, buenas prácticas y que puedes resolver problemas de negocio reales. Aquí tienes 3 ideas probadas para destacar.
La Regla de Oro del Portfolio
Los reclutadores han visto el dataset de Kaggle del Titanic mil veces. Usa APIs reales, haz web scraping, o usa datasets de gubernamentales masivos (ej: viajes de Taxis de NYC, citibikes). Un proyecto debe resolver una pregunta de negocio real.
Lo que debe tener tu README.md:
- Arquitectura: Un diagrama visual (hecho en draw.io o excalidraw) mostrando cómo fluyen los datos.
- Problema: Qué pregunta de negocio estás resolviendo.
- Herramientas: Por qué elegiste la herramienta A sobre la B. (Ej: "Usé PostgreSQL en vez de MongoDB porque los datos son altamente relacionales").
- Instrucciones: Cómo clonar y correr el proyecto con
docker-compose up.
Proyecto 1: El Pipeline Batch (Nivel Junior)
El Tracker de Reddit / Twitter
Objetivo: Extraer datos diariamente de una API pública, limpiarlos y guardarlos en una base de datos para responder métricas simples.
Arquitectura:
- Extracción: Script de Python usando requests a la API de Reddit (ej. subreddit
r/dataengineering). - Transformación: Pandas para limpiar textos vacíos, extraer hashtags, calcular longitud del post.
- Carga: SQLAlchemy para guardar en PostgreSQL.
- Orquestación: CronJob simple o GitHub Actions (para que corra gratis todos los días a las 00:00).
Proyecto 2: Modern Data Stack (Nivel Mid)
Analytics Engineer: E-commerce en dbt
Objetivo: Demostrar que puedes usar el stack moderno de analítica (ELT) usando la nube y modelado dimensional.
Arquitectura:
- Ingesta (EL): Usa una herramienta Open Source (Airbyte) para extraer datos de una base relacional falsa (o de Shopify API) y volcarlos crudos en BigQuery o Snowflake.
- Orquestación: Apache Airflow levantado en Docker local. Airflow dispara los jobs de Airbyte y luego dbt.
- Transformación (T): dbt (data build tool). Modelos Staging (limpieza), Intermedio y Marts (tablas de hechos y dimensiones). Incluye tests de dbt (unique, not_null).
- Visualización: Conecta Looker Studio o Metabase (gratis) al Data Warehouse.
Proyecto 3: Real-Time Event Streaming (Nivel Senior)
El Fraud Detector en Tiempo Real
Objetivo: Procesar miles de transacciones de tarjetas de crédito por segundo y detectar anomalías sobre la marcha.
Arquitectura:
- Generador de datos: Un script de Python que genera transacciones falsas (usando
Faker) y las inyecta en un topic de Kafka. - Message Broker: Apache Kafka (o Redpanda) corriendo en Docker.
- Stream Processing: Apache Spark Streaming (PySpark) o ksqlDB para leer de Kafka, hacer ventanas de tiempo (tumbling windows de 1 minuto) y detectar cuentas que hacen más de 5 compras en un minuto.
- Sink: Guardar los eventos "sospechosos" en otra base de datos de rápida lectura (como Elasticsearch o Redis) y los datos históricos en formato Parquet en S3 (Data Lake).