28 ago
|
Wellbeinn
|
Castro Caldelas
28 ago
Wellbeinn
Castro Caldelas
100% remoto desde España · Contrato fijo · Wellbeinn
Buscamos a la persona que saque el núcleo de datos de salud de Wellbeinn de Firebase y lo lleve a nuestra propia plataforma en Postgres. Con la app en producción y usuarios reales dentro. Sin perder un dato. No es un backlog de CRUDs: es una migración con riesgo, un modelo de datos por diseñar y una decisión de arquitectura tuya cada semana.
Por favor, asegúrese de leer completamente el resumen y los requisitos de esta oportunidad de empleo que se detallan a continuación.
¿Donde estamos?
En Wellbeinn construimos una plataforma de bienestar que mide de verdad: una banda propia por BLE, equipos de presoterapia y una app que convierte frecuencia cardíaca, HRV, SpO2, temperatura, sueño y actividad en algo que una persona puede usar cada día. Está en producción, con usuarios reales y datos de salud reales. Hoy la app escribe en Firestore y una capa de Cloud Functions hace el resto. Nos ha traído hasta aquí, pero ya nos limita: el modelo documental no encaja con series temporales de salud, y buscamos optimizar la arquitectura y el sistema completo para una mayor soberanía de nuestro proyecto. La cabeza de puente ya está construida: una API en NestJS sobre Cloud Run y Postgres con OAuth2 (Ory Hydra) que sirve a clientes B2B, y un backend de coach con IA (Claude) también en Cloud Run. Buscamos a la persona que una las piezas y diseñe el destino.
QUÉ VAS A HACER
Diseñar y ejecutar la migración de Firestore a nuestro backend propio en Postgres, con la app en producción: modelo destino, doble escritura, backfill, reconciliación y corte.
Definir el modelo de datos de salud: series temporales por usuario, agregados diarios, derivados (sueño, recuperación, carga), idempotencia y versionado. La app es offline-first y reenvía,
el backend tiene que aguantarlo.
Consolidar la API: contratos OpenAPI, versionado, autenticación y una sola puerta de entrada para la app móvil y para las integraciones B2B.
Sustituir la lógica que hoy vive en Cloud Functions (Node 20, fin de soporte en octubre de 2026) por servicios que podamos testear y desplegar con criterio.
Llevar el backend de IA a producto de verdad: streaming, contexto de salud del usuario, control de coste y latencia por token, evaluación de calidad y guardarraíles.
Poner el RGPD en la arquitectura, no en un anexo: con datos de categoría especial (Art. 9), la minimización, el consentimiento versionado, el borrado en cascada verificable, la residencia en la UE y las trazas de auditoría se diseñan como propiedades del sistema.
Proponer y documentar decisiones -usamos ADRs- y saber decir "esto todavía no lo construimos".
NUESTRO STACK
Backend: TypeScript, NestJS, Node 22, PostgreSQL (Cloud SQL), OpenAPI, Ory Hydra (OAuth2/OIDC)
Infra: GCP — Cloud Run, Cloud SQL, Cloud Functions, Firebase (el punto de partida), CI/CD con GitHub Actions y Workload Identity Federation
IA: API de Claude (Anthropic) con prompt caching
App: Flutter y Riverpod, con caché local y sincronización offline-first sobre BLE. No la vas a mantener, pero es tu cliente principal y tendrás que entender cómo sincroniza.
LO IMPRESCINDIBLE
5+ años construyendo backends en producción ,
con TypeScript/Node a buen nivel (NestJS, Fastify o equivalente). No pedimos que conozcas nuestro framework; pedimos criterio.
Diseño de APIs como oficio: contrato antes que código, versionado, idempotencia, paginación, errores que un cliente pueda manejar.
Postgres de verdad: modelado, índices, planes de ejecución, particionado o Timescale para series temporales, migraciones sobre tablas vivas.
Haber migrado datos de un sistema en producción con usuarios dentro. Si nunca has hecho una doble escritura ni un backfill, esta no es la posición.
Criterio de arquitectura en equipo pequeño: elegir lo simple, escribir la decisión y sostenerla seis meses después.
Autonomía en remoto: escribir bien lo que decides y no necesitar que nadie te reparta el trabajo.
LO QUE VALORAMOS MUCHO
LLMs en producción (Claude, OpenAI o similar): diseño de prompts, tool use, streaming, RAG y, sobre todo, coste, latencia y evaluación. Un chatbot de demo no cuenta: queremos a alguien que sepa explicar por qué su factura fue la que fue.
Datos de salud o wearables, BLE, sensores.
RGPD sobre datos de categoría especial (Art. 9), o haber pasado una auditoría de datos de salud.
Sincronización offline-first, resolución de conflictos, colas de reintento.
Firestore/Firebase: saber de dónde salimos ayuda.
Series temporales a escala: TimescaleDB, ClickHouse o similar.
IaC (Terraform), observabilidad (trazas, métricas, logs), Python para data.
QUÉ OFRECEMOS
salario competitivo
Propiedad de verdad sobre el backend, con acceso directo a producto y a quien decide.
Equipo pequeño y ciclo corto: lo que mergeas llega a usuarios en días.
100% remoto desde cualquier punto de España. xiphteb
Contrato indefinido.
📌 Senior Backend Engineer - Datos de salud (TypeScript · Postgres · GCP) (Castro Caldelas)
🏢 Wellbeinn
📍 Castro Caldelas