Disponible para nuevos proyectos · Barranquilla, Colombia · Remoto

Tráeme el problema. Te devuelvo el producto funcionando.

Soy Luis, desarrollador full stack en Barranquilla. Software a medida: aplicaciones web, apps móviles, el backend que las sostiene y automatizaciones que le quitan trabajo manual a alguien. Entro cuando el problema todavía está en palabras y lo llevo hasta producción junto al equipo que ya está en él.

Última posición
Full Stack · Kymbo Devs
Feb – Dic 2025 · Remoto
Experiencia
3+ años
Web, móvil, backend y automatización
Stack principal
TypeScript · Python
NestJS · React Native · Postgres

Lo difícil casi nunca es el código.

Empecé a programar en 2022, y el primer cliente real me enseñó lo que ningún tutorial enseña: escribirlo es la mitad fácil. Lo que decide si un proyecto sale bien es cuánto entendiste antes de teclear — y a quién le preguntaste.

Desde entonces he trabajado en equipos Agile, con clientes que no hablan en términos técnicos y sobre código que otro escribió antes de que yo llegara. Cubro el producto entero — datos, backend, interfaz y despliegue — y eso sirve sobre todo para una cosa: hablar con cualquiera del equipo en su idioma, para que un problema no se quede esperando entre dos áreas.

quiz

Pregunto antes de construir

Lo que alguien pide y lo que necesita casi nunca son lo mismo. Insisto hasta que la petición tiene sentido, porque descubrirlo en la demo significa construir dos veces la misma pantalla.

route

Acordamos el orden, y lo defiendo

Qué se construye primero, qué puede esperar y qué se queda fuera de esta versión. Prefiero discutirlo en un documento que en un pull request.

repeat

Constancia sobre intensidad

Un proyecto no se termina con arranques de energía, se termina con ritmo: algo que mostrar en cada reunión de seguimiento, en vez de un fin de semana de rescate.

Proyectos destacados

Los dos llegaron a producción y siguen en pie. De cada uno prefiero contarte la decisión que costó tomar antes que recitar la lista de funcionalidades.

01

Trayko

Maqueta de la aplicación de viajes Trayko en dispositivos móviles mostrando el seguimiento en tiempo real y la interfaz de reserva.
React NativeExpoNestJSPostgreSQL

Movilidad compartida para gente que ya hace el mismo trayecto todos los días: uno publica el viaje, los demás reservan un puesto. Construí las cuatro piezas — la app en React Native/Expo, la API en NestJS, el panel de administración y el sitio — sobre un esquema de PostgreSQL que modelé antes de escribir la primera pantalla, porque un viaje con cupos, reservas y cancelaciones no perdona una tabla mal pensada.

account_treeReto de arquitectura

El asiento se reserva antes de pagarse. El conductor acepta, el pasajero tiene una ventana para pagar y, si la plata no llega, el cupo se libera solo. Esa única regla arrastra todo lo demás — cobrar, devolver, verificar quién maneja, comprobar quién se subió — y todo tiene que cuadrar igual cuando dos personas reservan en el mismo segundo.

check_smallPagos y comisión de plataforma
check_smallMonedero y reembolsos
check_smallVerificación de conductor y vehículo
check_smallChat y ubicación en vivo
check_smallNotificaciones push
check_smallPanel admin con auditoría

trending_upImpacto y Arquitectura

32 tablas
Un solo esquema para todo el producto
26 módulos
149 endpoints en NestJS
02

Streaming CRM

ReactExpressPostgreSQL

Los revendedores de streaming viven de fechas: cada cuenta vence un día distinto y olvidarse de una es perder al cliente. El SaaS convierte esa libreta mental en inventario, clientes, suscripciones y renovaciones, con un panel armado alrededor de lo único que importa a fin de mes: qué entró, qué se renueva y qué cuenta está sin usar.

lockProducto privado
Maqueta del panel de control de Streaming CRM mostrando inventario, analíticas y gestión de suscripciones.

speedResultado

Cero libretas
Las renovaciones las lleva el sistema
Un tablero
Ingresos, vencimientos y uso

hubFoco técnico

En las consultas. Un panel que suma ingresos, agrupa vencimientos y cruza el uso de cada cuenta tumba la base a punta de queries ingenuas, así que el esfuerzo real se fue en el modelo relacional y en los índices detrás de cada tarjeta — no en las tarjetas.

Proveedor A
Proveedor B
API Gateway
Capa de agregación
Panel
React UI

Trayectoria Profesional

En orden inverso, que es como se cuenta. Lo que hice está en el CV; acá está lo que empecé a hacer distinto después.

Desarrollador Full Stack

Kymbo Devs•Feb. 2025 — Dic. 2025

Un año construyendo en equipos Agile para los clientes de la agencia: APIs REST en NestJS y FastAPI sobre esquemas de PostgreSQL propios, agentes con LangChain, LangGraph y OpenAI, y módulos de Shopify mantenidos en Remix. La lección: una función con IA se cae por lo mismo que cualquier backend — datos que nadie modeló y entradas que nadie validó.

rocket_launch

APIs sobre datos que diseñé

Escribir el endpoint y modelar la tabla en la misma pasada cambia las dos cosas. La API sale más simple, porque el esquema ya responde la pregunta que el endpoint iba a resolver a mano.

groups

Agentes que no eran demos

LangGraph para orquestar los pasos, RAG y bases vectoriales para que el modelo responda con los documentos de la empresa y no con lo que recuerda de internet. Automatizar un proceso que alguien ya hacía — no un chat que contesta bonito.

Desarrollador Full Stack Freelance

Independiente•Ene. 2024 — Dic. 2024

Un año de aplicaciones web a medida para negocios de Barranquilla. Sin PM ni QA de por medio: el cliente describe el problema en su idioma y traducirlo es parte del trabajo antes de construir nada. La lección: casi nada de lo que falla es técnico.

  • checkCada proyecto de punta a punta — entender el negocio, elegir el stack, construirlo, desplegarlo y seguir ahí cuando algo se rompía a las nueve de la noche.
  • checkAprendí a enseñarle al cliente a usar lo que le entregué. Un sistema que el dueño no sabe tocar vuelve para siempre como soporte gratis.
  • checkReact por delante, APIs REST propias por detrás, y el rendimiento y el SEO tratados como parte del encargo y no como un extra que se cobra aparte.

Desarrollador Web

Edil Andina•Mar. 2023 — Sep. 2023

Mi primer trabajo con código que ya existía y usuarios que ya estaban ahí. Mantener sitios corporativos y montar tiendas en WordPress enseña algo que ningún proyecto desde cero enseña: a leer lo que otro escribió y no romperlo.

  • checkMantuve sitios corporativos y saqué cambios pedidos por stakeholders que no hablaban en términos técnicos — traducir el pedido era la mitad de la tarea.
  • checkSitios y e-commerce en WordPress, optimizando carga y experiencia. Ahí entendí que un segundo de más es una venta menos, y que el usuario no perdona lo que el desarrollador archiva como detalle.

Arsenal técnico

Una lista de tecnologías dice poco: cualquiera pega logos. Estas son con las que trabajo a diario y sostengo en producción. Cuando un proyecto pide otra cosa, la aprendo; lo que no hago es estrenarla dentro del código de un cliente.

Frontend y Móvil

devices
TypeScriptReactReact NativeExpoNext.jsRemixTailwind CSS

Backend y APIs

dns
Node.jsNestJSExpressFastAPIPythonJWT

Datos

database
PostgreSQLPrisma ORMRedisFirebase

Cloud y DevOps

cloud
DockerAWSRailwayVercelCloudflare

IA y Tecnologías Emergentes

psychology

La IA que me interesa no es el chat: es el proceso tedioso que alguien repite a mano todos los días. Eso obliga a decidir cuándo un modelo se gana su lugar y cuándo basta una consulta SQL. La mayoría de las veces basta la consulta, y saber en cuál de los dos casos estás es toda la habilidad.

OpenAI APILangChainLangGraph

Filosofía
de trabajo

No son frases de póster. Son las dos cosas que aprendí pagando el precio, y las únicas por las que detengo una reunión de arquitectura.

psychology
«El esquema de datos es la arquitectura. Todo lo que va encima es renegociable; una tabla mal pensada, no».
architecture
«Un agente sin plan para el momento en que el modelo falla no es una función: es una demo con suerte».

Construyamos algo
grande juntos.

Si ya sabes exactamente qué construir, cualquiera lo construye. Lo que hago mejor empieza antes: entender qué tiene que resolver el producto y qué se puede dejar fuera. Escríbeme y tienes respuesta en menos de 24 horas — y si no soy la persona para eso, te lo digo de una.