Una plataforma e-commerce completa, desde cero
Lideré la parte backend de toda la plataforma, construida desde cero, incluidos el carrito, el checkout y los flujos de pago.
Ingeniero Backend Senior
Construyo sistemas backend mantenibles, escalables y pragmáticos, y me gusta hacerme cargo de un problema desde el primer requisito hasta producción. También lancé yo solo un producto entero: Hoopline GM, en la App Store.
creando software desde 2015: 11+ years
Pagos, e-commerce y herramientas internas, puesto a puesto. Recorre la línea de tiempo.
Abrir /hooplineEl juego de mánager de baloncesto que construí yo solo y publiqué en la App Store. Mira cómo está montado.
Abrir /aboutCómo trabajo, qué me importa y qué hago lejos del teclado.
AbrirCada barra es un puesto, dibujado como la traza de una petición. Arrastra el marcador, o pulsa una fila, para ver qué estaba construyendo en ese momento.
Lo que he construido y la tecnología que hay detrás.
Lideré la parte backend de toda la plataforma, construida desde cero, incluidos el carrito, el checkout y los flujos de pago.
Diseñé e implementé un modelo que unificó distintos modos de venta y simplificó el flujo interno de la empresa.
Implementé flujos de pago, webhooks y suscripciones con PayPal dentro de Stripe, una funcionalidad que entonces estaba en beta y no tenía documentación que seguir.
Contribuí a un back office interno con el que otros equipos trabajan de forma autónoma: publicar proyectos, configurar las ventas en la web, comprobar el stock y gestionar los envíos.
Trabajo de forma habitual en rendimiento y calidad de código, con tests de Jest y E2E. Ayudo a los equipos en los que entro a montar y ampliar suites automáticas completas.
Me encargué de la dirección técnica, la planificación y la entrega de la plataforma, coordinando a varios equipos.
Cada puja a la vista.
No encontraba un juego de mánager de baloncesto que me gustara, así que hice uno para quien ama este deporte y disfruta con los números.
Es más profundo de lo que quizá quiere un jugador casual, y lo he asumido. Hice el juego al que yo quería jugar.
Un mánager de baloncesto gratuito donde el mercado, las reglas y las valoraciones son visibles. Haces el draft, pujas, fijas quinteto y tácticas, juegas la temporada y retas a otros mánagers.
Todo: la app (iOS publicada, Android en pruebas cerradas), el backend, los pagos, la analítica, el pipeline de publicación y la landing.
El repositorio de la app es privado, así que aquí tienes un recorrido por lo que hay dentro. Elige una carpeta.
Elige un flujo y sigue una petición por el sistema real, paso a paso.
Decisiones que tomé al construir Hoopline y que muestran cómo peso coste, riesgo y complejidad.
La simulación, las subastas, la economía, las temporadas y los playoffs son funciones SQL y tareas programadas. Todas las tablas tienen la seguridad a nivel de fila activada, y las que ningún cliente debe leer (como el registro de compras) no tienen política: quedan cerradas a propósito. Cada función security definer revoca los permisos de forma explícita.
La regla es tener menos dependencias. PostHog ya cubre los errores, así que solo añadiría Sentry si clasificar fallos se volviera un cuello de botella.
No responden a ninguna de las preguntas que de verdad sigo, y le cuestan algo de privacidad al usuario. Prefiero recoger menos.
Habría cruzado la línea del pay-to-win. Las monedas no se pueden comprar con dinero.
Un callback firmado confirma cada anuncio con recompensa antes de que el backend conceda nada.
Análisis y tests de Dart, una suite SQL numerada ejecutada con psql, comprobaciones de desfase entre migraciones y esquema y tests de Edge Functions, todo detrás de un único script. Aparte, y a propósito fuera de ese script porque consulta producción, otro comprueba quién puede ejecutar qué en el proyecto real.
Seis funciones security definer eran invocables sin sesión en producción. El test que debía detectarlo llevaba cuatro sprints en verde: la base de datos local no tenía los privilegios por defecto de Supabase y el propio arnés revocaba lo que luego comprobaba. Ninguna tocaba monedas, gemas ni energía. Ahora la base de pruebas se monta con los mismos privilegios que producción y un script de solo lectura pregunta al proyecto real quién puede ejecutar qué.
Una auditoría de rendimiento de la base de datos y del arranque de la app salió con números, no con intuiciones. Una consulta programada de notificaciones tardaba 655 ms en producción porque su plan se hacía sin conocer los valores; planificada con ellos, 34 ms. Cada clave foránea tiene ya su índice, lo que además arregló el borrado de cuenta. La tarea de correos de compra, que corre cada minuto, solo llama si hay algo que enviar, y la app construye las pestañas detrás de Inicio cuando Inicio ha terminado de leer.
Pantallas reales de la app de iOS (versión 1.0.6), en los idiomas en los que sale.
Hoopline GM es un juego independiente de gestión de baloncesto. No está afiliado, respaldado, patrocinado ni licenciado por ninguna liga, equipo, asociación de jugadores ni jugador de baloncesto profesional. Los jugadores reales se mencionan por su nombre junto con estadísticas públicas como parte del contenido deportivo del juego y de sus mecánicas de simulación. Estas menciones no implican respaldo, patrocinio, autorización ni afiliación alguna. Las estadísticas no son datos oficiales de ninguna liga. Todos los equipos, pabellones y competiciones del juego son ficticios.
Soy un ingeniero backend con experiencia en pagos, suscripciones, e-commerce y herramientas internas. En CrowdFarming he pasado por varios equipos y productos, diseñando servicios backend desde cero con Node.js y NestJS sobre PostgreSQL, MongoDB, Redis y AWS.
Me gusta ocuparme de un problema de principio a fin: entender los requisitos, diseñar la solución, definir endpoints y modelos de datos, desarrollar, escribir los tests y desplegar en producción. Lo que más me importa es el rendimiento, la calidad y el testing.
También he liderado. En SNIPPET pasé de Full Stack Developer a Technical Project Lead, con la dirección técnica, la planificación y la entrega de un producto. Hoy sigo muy metido en el código.
No tiene ningún problema en trabajar en equipo, tanto en la etapa de planificación como en el desarrollo, aportando ideas y soluciones óptimas para cada situación. También es independiente y es capaz de llevar proyectos por sí mismo con eficacia y cuidando hasta del más mínimo detalle.
Durante todo el tiempo que colaboramos, Víctor demostró tener un sentido de la organización impecable, muchas ganas de aprender y mejorar, mucha creatividad y conocimientos técnicos, así como habilidades comunicativas que resultan imprescindibles en el trabajo en equipo.
Extractos de recomendaciones de LinkedIn.
Lo que me exijo antes de dar algo por terminado.
Lejos del teclado.
Jugué durante un tiempo y ahora veo mucha NBA. Celtics hasta la médula, con Tatum como mi jugador favorito.
Me gusta casi todo. Últimamente, rap, jazz, soul y chillhop en bucle.
Gimnasio, correr y pádel. Todo lo que me mantenga en movimiento.
Los fines de semana son para la familia. Ahí se me va la mayor parte del tiempo libre.
El email es la forma más rápida de escribirme, ya sea por un problema backend, una idea o una charla sobre Hoopline.