Se escribe la decisión, no sólo el código
Cada decisión de arquitectura queda en un ADR antes de implementarse. No para el proceso: para que dentro de un año se sepa por qué algo es como es, y quien llegue después no tenga que adivinar.
Construimos el sistema con el que una tortillería, un consultorio y un taller llevan su operación completa — y los agentes de IA que la automatizan. No es una demo: del otro lado hay alguien cerrando caja.
No son valores de pared. Cada una se puede comprobar entrando al repositorio: los ADRs están escritos, las pruebas de aislamiento corren en cada build y el sitio público no promete nada que el código no haga.
Cada decisión de arquitectura queda en un ADR antes de implementarse. No para el proceso: para que dentro de un año se sepa por qué algo es como es, y quien llegue después no tenga que adivinar.
Toda función nueva entra con su camino feliz y al menos un caso de error. Las tablas con datos de varios negocios además llevan pruebas de aislamiento que corren en CI: si una consulta deja escapar datos de un tenant a otro, el build se cae antes de que alguien lo note en producción.
El aislamiento entre negocios vive en políticas de Row-Level Security de Postgres, no en un if del backend. Si un código intenta saltárselo, lo rechaza la base. Es una forma de trabajar exigente y es deliberada.
El sitio público no promete funcionalidad que no existe, y el producto no simula resultados. Cuando algo está a medias lo decimos. Si te incomoda escribir «esto todavía no lo hace», éste no es el lugar.
Construimos agentes de IA y también los usamos para construir. Ninguna de las dos cosas sustituye entender el problema: el código que entra lo entiende alguien, se revisa y se prueba, venga de donde venga.
Del otro lado hay una tortillería, un consultorio, un taller. Las decisiones se toman pensando en quien cierra caja a las diez de la noche, no en la demo bonita.
Python 3.12 · FastAPI · SQLAlchemy 2.0 async · PostgreSQL 16 con RLS y ltree · Redis · Celery
TypeScript · Next.js App Router · React · Tailwind · Radix UI · TanStack Query · Zustand
Agentes sobre Anthropic Claude, con herramientas por dominio, aprobación humana y guardrails
AWS · Terraform · GitHub Actions con OIDC · monorepo pnpm + Turborepo
No publicamos un tablero de vacantes porque preferimos no anunciar puestos que no existen. Éstos son los perfiles con los que crecemos: si te reconoces en alguno, escríbenos y guardamos tu perfil para cuando se abra la posición.
Backend en Python o frontend en TypeScript, con gusto por el dominio: facturación, inventarios, nómina. La parte difícil aquí no es el framework, son las reglas del SAT.
Diseño de agentes, herramientas, evaluación y guardrails. Que un agente conteste no es el reto; que conteste bien sobre datos reales de un negocio, sí.
Interfaces para gente que no tiene tiempo de aprenderse un ERP. Criterio para quitar, no sólo para agregar.
Quien conoce el SAT por dentro y puede traducirlo a reglas. Sin este perfil, lo demás no sirve.
Acompañar a negocios que están migrando su operación completa. Paciencia, claridad y ganas de documentar lo que se aprende.
Explicar valor sin exagerarlo, a dueños de negocio y a despachos contables. Aquí no se vende con letras chiquitas.
Cuéntanos qué haces y qué te gustaría construir. Manda lo que mejor te represente: repositorio, portafolio, un caso que resolviste. La carta de presentación formal no hace falta.
Una plática sobre tu experiencia y sobre el problema que estamos resolviendo. Preguntas de los dos lados: también te conviene saber dónde te estás metiendo.
Un problema real y pequeño, con tiempo razonable y sin trabajo gratis. Después lo revisamos juntos, que es la parte que de verdad nos dice cómo piensas.
Respondemos en cualquier caso, y si es que no, te decimos por qué. Nadie se queda esperando.
Cuéntanos qué construyes
Mándanos qué haces, qué te late construir y cómo llegaste hasta aquí. Leemos todo lo que llega y contestamos, aunque la respuesta sea que todavía no.
Contestamos siempre, y si es que no, te decimos por qué.