Sobre Fundable
Fundable es una plataforma de datos para startups que ayuda a inversores y otros equipos a descubrir e investigar empresas. Reúne información sobre empresas, inversores, actividades de financiación y personas para facilitar esa investigación.
Visión general del rol
Buscamos un ingeniero de datos senior para liderar la plataforma de datos de Fundable, desde la arquitectura hasta la producción, transformando de forma confiable grandes volúmenes de datos provenientes de APIs de proveedores, webhooks, archivos y web scraping en registros confiables para nuestros productos.
Actualmente, nuestros flujos de enriquecimiento y extracción se ejecutan en su mayoría de forma serial dentro de un contenedor. Tú liderarás la transición hacia una plataforma que soporte procesamiento concurrente, ingesta basada en eventos y flujos de trabajo por lotes orquestados.
Lo que liderarás
- Ingesta multi-fuente: Desarrollar una ingesta concurrente para APIs de proveedores, webhooks, archivos y scraping, con límites de tasa y manejo de fallos.
- Ejecución por lotes y basada en eventos: Orquestar flujos de trabajo programados y backfills históricos usando herramientas como Airflow, Dagster o Prefect. Construir ingesta basada en eventos con Pub/Sub o Cloud Tasks, incluyendo reintentos, colas de mensajes no procesables y reproducción controlada de fallos.
- Datos crudos a curados: Conservar los payloads originales, incluyendo JSON de proveedores, en Google Cloud Storage (GCS) antes de transformarlos con dbt. Establecer capas de medallón para datos crudos, estandarizados y curados.
- Corrección mediante recuperación: Implementar upserts idempotentes y reintentos seguros, reproducción y backfills históricos que eviten registros duplicados o corrupción de datos. Hacer que los datos sean rastreables hasta su origen y seguros para reprocesar.
- Calidad y entrega de datos: Definir contratos de datos, construir validaciones automatizadas y pruebas de pipeline, y monitorear frescura y fallos. Diseñar y optimizar esquemas, consultas y patrones de carga en PostgreSQL para que los productos downstream reciban datos confiables.
- Extracción y enriquecimiento: Integrar enriquecimiento de proveedores y extracción estructurada basada en LLM desde texto dentro de la plataforma.
Experiencia requerida
- Experiencia construyendo plataformas de datos de producción multi-fuente desde cero, desde la arquitectura inicial y la implementación de pipelines hasta el despliegue y operación continua.
- Experiencia en producción con herramientas de orquestación de flujos como Airflow, Dagster, Prefect o Temporal, incluyendo dependencias, reintentos y recuperación de fallos. Se prefiere experiencia con Airflow.
- Experiencia práctica en producción con dbt y GCP.
- Experiencia construyendo sistemas basados en eventos con colas de mensajes o tareas, incluyendo procesamiento asíncrono y recuperación de fallos.
- Habilidades sólidas en SQL y PostgreSQL, incluyendo modelado de datos, optimización de consultas y carga incremental confiable. Experiencia con contratos de datos, almacenamiento crudo y curado, políticas de retención y controles automatizados de calidad.
- Habilidades sólidas en Python, incluyendo HTTP asíncrono y procesamiento concurrente con herramientas como asyncio, aiohttp o HTTPX.
- Experiencia práctica en web scraping con herramientas como Scrapy, Playwright, Selenium o Beautiful Soup, incluyendo scraping concurrente, límites de tasa y manejo de fallos.
Experiencia deseable
- Experiencia trabajando en startups o equipos pequeños de ingeniería, con amplia responsabilidad y prioridades cambiantes.
- Experiencia en resolución de entidades es especialmente valiosa: emparejar registros de empresas y personas entre fuentes y reconciliar duplicados en entidades consistentes.
- Extracción estructurada basada en LLM o enriquecimiento de datos de empresas y personas.
- Familiaridad con BigQuery y Dataform.