Volver a proyectos

Transporte y delivery

One Rides

Transporte y encomiendas: features de punta a punta en Android, iOS, backend y web.

Rol
Desarrollador full stack: movil, web y backend
Duración
2 meses
Vista previa del proyecto One Rides

La misión

One Rides es una plataforma de transporte de pasajeros y encomiendas que opera en Venezuela, con apps nativas para pasajero y conductor, un backend en Node y siete paneles web. Los tomé como clientes junto a dos compañeros desarrolladores para mantener y hacer crecer ese sistema: doce repositorios en producción, cuatro plataformas avanzando en paralelo.

El reto

Acá una feature no termina en una pantalla. Un cambio de contrato arranca en el modelo de Mongoose y sigue en los servicios de Angular, en los DTO de Kotlin y en los modelos de Swift: si una de las cuatro capas queda atrás, el viaje se rompe en producción. Y encima el sistema mueve dinero real y gente real en la calle, así que no hay ventana cómoda para equivocarse.

Stack

Las herramientas con las que se construyó el proyecto.

  • TypeScript
  • Node.js
  • Git
  • Kotlin
  • Swift
  • Angular
  • MongoDB
  • Redis
  • Socket.IO
  • ClickUp
Tipo
Transporte y delivery
Rol
Desarrollador full stack: movil, web y backend
Periodo
Jun 2026 — Presente
Equipo
Tres desarrolladores sobre backend, apps nativas y paneles

Lo que hice

Mi aporte concreto al proyecto, agrupado por frente de trabajo.

Pagos y billetera

  • Integración del flujo de Pago Móvil de Bancaribe: validación por webhook bancario, aprobación de recargas y reclamos por referencia.
  • Directorio de números de pago asociados, con verificación por OTP y rechazo de números ya usados en otra cuenta.
  • Entrada de montos al estilo de la banca venezolana, de derecha a izquierda, replicada en Android, iOS y panel web.

Estabilidad en producción

  • Diagnóstico y corrección del cierre forzado de la app de conductor al llegar un viaje con la pantalla bloqueada.
  • Corrección del bucle de navegación que reseteaba el mapa e impedía aceptar viajes.
  • Rastreo de la falla real en la reasignación de conductor: viajes huérfanos acumulados, no la categoría del vehículo.

Integridad del despacho

  • Restricción de autoclickers en la app de conductor: detección en el dispositivo, validación en servidor y gesto de deslizar para aceptar.
  • Ventana exclusiva de asignación para conductores favoritos, configurable desde el backend.
  • Bloqueo de conductores por parte del cliente, cableado de la API al panel de administración y a las cuatro apps.

Multiplataforma y entorno

  • Features completas en Kotlin, Swift, Node y Angular, coordinando el mismo cambio de contrato en las cuatro capas.
  • Entorno local aislado y despliegue a QA, documentados para que el resto del equipo los pueda repetir.
  • Documentación técnica de cada feature y trazabilidad de las tareas en ClickUp.

Impacto

El marcador que dejó el proyecto.

Resultados del proyecto

12repos en paralelo

  • Cierres forzados de conductor atacados5100
  • Commits en dos meses de trabajo0174
  • Plataformas mantenidas en paralelo0004
  • Actualizaciones publicadas en las stores0003
Imagen pendientePantalla de solicitud de viaje en la app de pasajero
Solicitud de viaje en la app de pasajero
Imagen pendienteFlujo de pago móvil con validación de la referencia bancaria
Validación del pago móvil

Lo que me llevo

Toca una nota para leerla completa.

Deslizar, no tocar

Algunos conductores usaban autoclickers para acaparar viajes. Por eso aceptar dejó de ser un botón: ahora se desliza, y el servidor descarta las aceptaciones con reflejos imposibles.

Perdidos en el mar

Cuando un mapa no sabe dónde está, cae en latitud 0, longitud 0: un punto vacío en medio del Atlántico. Ver ahí a los conductores fue la señal de que el mapa se rehacía entero a cada segundo.

Hoy no existía

Venezuela va cuatro horas detrás de Londres, y por esa diferencia el calendario de viajes programados calculaba mal el día: podías reservar para mañana, pero no para dentro de dos horas.

La única salida

Pagabas, salía “Estamos validando tu pago” y el botón de atrás quedaba bloqueado esperando al banco. Si el banco no contestaba nunca, la única forma de salir era cerrar la app a la fuerza.

¿Tienes una buena oportunidad en mente?

Estoy abierto a nuevos retos como Frontend Developer en equipos remotos. Si crees que encajo en lo que están construyendo, hablemos.