Plataforma·MMXXV — MMXXVI
waydot
Un sistema operativo para empresas de servicio en campo
- Año
- MMXXV — MMXXVI
- Rol
- Fundador · único ingeniero
- En línea
- waydot.mx
I·Contexto
Las empresas de servicio en campo operan con WhatsApp, hojas de cálculo y llamadas. Una visita se captura tres veces, la nómina se calcula de memoria y nadie puede comprobar qué pasó en sitio.
II·Lo que hice
- I
Diseñé y construí los siete servicios: API, consola web, app Android, motor de optimización, sitio, documentación e infraestructura.
- II
Documenté cada decisión de arquitectura, y cada una nombra los archivos que la implementan.
- III
Pruebas contra Postgres real en CI; los errores conocidos tienen su propia prueba, marcada, hasta que se corrigen.
Módulos
- I
Operación y despacho
Mapa en vivo de tickets, técnicos y relojes de SLA.
- II
Ejecución en campo
Checklists, evidencias y firmas que funcionan sin señal.
- III
Personal y finanzas
Asistencias, visitas y kilometraje directo a la nómina.
- IV
Activos y redes de servicio
Quién tiene cada equipo, dónde y desde cuándo.
- V
Calidad, seguridad y confianza
Una bitácora encadenada con SHA-256 que nadie puede reescribir.
Cómo está hecho
- Aislamiento por fila
- Una sola base de datos con seguridad a nivel de fila forzada en Postgres. La empresa activa viaja con cada conexión y con cada trabajo en cola; sin ella, la consulta no devuelve nada en vez de devolver datos ajenos.
- Sincronización sin conexión
- La app guarda cada cambio con su identificador y la versión que vio. El servidor bloquea el registro, compara versiones y guarda el resultado: un reintento recibe la misma respuesta y nunca se aplica dos veces. Si hubo conflicto, regresa su copia para que el teléfono se ponga al día.
- Bitácora encadenada
- Cada entrada lleva el SHA-256 de su contenido y del hash anterior, por empresa, escrita dentro de la misma transacción que el cambio y serializada con un candado de Postgres. Un verificador recorre la cadena y señala el primer eslabón roto.
- Rutas y riesgo
- Un motor en Rust llama a OR-Tools por un puente en C++ para armar rutas con tiempo y capacidad por técnico. Dos modelos LightGBM entrenados en Rust, sin Python: uno calibra el riesgo de incumplir un SLA y otro da la duración de un trabajo como un rango, no un número.
- IA con permiso
- Las herramientas que escriben se detienen en la llamada exacta, con sus argumentos, hasta que una persona la aprueba. Pedirle al modelo que confirme se lo puede saltar; esto no. Y actúan con los permisos del usuario, nunca con más.
- Nómina
- Sólo lee lo aprobado: horas firmadas, permisos concedidos, reembolsos y aumentos vigentes. Cada línea dice de qué registro viene; un aumento a mitad de periodo lo divide, y retiene ISR.
- Evidencia que no cambia
- Las listas de tareas se copian al asignarse, así editar una plantilla no reescribe trabajos pasados. Las respuestas sólo se agregan: corregir es responder de nuevo.
- Infraestructura
- Terraform sobre DigitalOcean y Cloudflare. El servidor sólo acepta tráfico de la red de Cloudflare; archivos en R2, despliegues por etiqueta de imagen con reversión en un comando.
III·Lo que aprendí
“Todo lo que aprendí en diez años, en una sola plataforma.”
Herramientas
Laravel 13·
Siguiente obra
Compusof Tools
Una bitácora de campo que funciona sin señal