Arquitectura de bases de datos
Constraints reales, índices para los patrones de query reales, particionamiento, búsqueda full-text y vectorial, migraciones que sobreviven deploys multi-instancia.
Solo senior, distribuidos, con opinión. Llevamos prototipos a producción y nos quedamos para mantenerlos y mejorarlos.
Houdrik es un estudio distribuido y solo senior. Tomamos prototipos — generados por IA, vibecoded, entregados por contractors, o tu propio primer intento — y los llevamos a production-grade. Después nos quedamos para mantenerlos y mejorarlos.
El estudio está liderado por ingenieros que llevan años entregando software en producción juntos. Somos deliberadamente pequeños, solo senior y distribuidos, trabajando asíncronamente entre zonas horarias con un touch-point sincrónico cada dos semanas. El equipo más pequeño que puede entregar un producto serio de forma confiable es también el más barato de coordinar, el más fácil de alinear y el más rápido para moverse. Los case studies de este sitio reflejan proyectos liderados juntos por los mismos ingenieros — bajo el estudio y de trabajo previo.
La IA hizo asombrosamente fácil armar una aplicación. Un founder sin background de ingeniería puede producir un prototipo funcionando en una tarde. Un product manager puede pasar un screenshot a un modelo y recibir algo que casi parece producto real.
Lo que la IA NO hizo fácil es la siguiente parte. La parte donde el prototipo se encuentra con usuarios reales. Donde la autenticación tiene que ser realmente segura, el schema de base de datos tiene que soportar una auditoría, el deploy pipeline tiene que ser reversible, la observabilidad tiene que responder "¿por qué fue lento a las 14:07 el martes pasado?", y el runbook on-call tiene que ser legible por un ingeniero medio dormido.
Eso es aproximadamente el 90% del trabajo de operar software. La IA ayuda con partes, pero no lo suficiente para shippear sin un equipo experimentado. Nosotros somos ese equipo.
No somos para todos, y lo decimos. Trabajamos mejor con:
Rechazamos engagements donde:
Frontend o backend. TypeScript, Python, Go, o lo que encaje. Cloud gestionado o self-hosted. Postgres u otra DB donde gane su lugar. Nos rehusamos a listar un stack en esta página porque la respuesta depende enteramente de tu timeline, las skills de tu equipo, tus restricciones de hosting, y cómo se ve el fallo a las 3am.
Universal: elegimos herramientas maduras, bien mantenidas, que tu equipo siga pudiendo heredar y operar en tres años. Nombramos cada decisión claramente en el kickoff y la defendemos por escrito. Si tienes preferencia de stack la acomodamos generalmente.
Engagements time-boxed. Incluso retainers tienen budget mensual definido y cadencia de renovación. Siempre hay off-ramp.
Demo al final de cada sprint. Sprints de dos semanas. La demo va en URL real, sobre infra real — nunca screenshot, nunca localhost. No performeamos progreso a mitad de sprint; entregamos al final y dejamos que el artefacto hable. Si algo necesita una conversación fuera de banda la tenemos, pero la cadencia se mantiene calma.
Decisiones escritas. Cada decisión arquitectónica vive en repo como ADR de una pantalla. Future-us grateful; clientes pueden leer.
El trabajo es tuyo desde día uno. Código, infra, deploys, runbooks, dashboards. Sin proprietary middleware. Sin lock-in. Caminar con el sistema día 91 es supported by design.
No desaparecemos después del launch. Retainer mensual de mantenimiento y mejora es el follow-on más común. Si prefieres tomarlo in-house hand-off limpio. Cualquiera está bien.
Paso simple: envíanos un párrafo de qué quieres construir, arreglar o tomar. Respondemos en un día laborable. Primera conversación: 15-30 min, sin obligación, con quien liderará el engagement. Si no encaja te lo decimos, y usualmente sugerimos a alguien que sí.
También hacemos engagements pagados de scoping de una semana — propuesta de arquitectura escrita, plan ranked-risks, fee fijo — para proyectos donde la forma right del engagement aún no está clara.
Encuéntranos via contactos.
Sin juniors, sin bench-warmers. Cada proyecto se apoya en las mismas disciplinas senior — las que deciden si un sistema sobrevive a su segundo año.
Constraints reales, índices para los patrones de query reales, particionamiento, búsqueda full-text y vectorial, migraciones que sobreviven deploys multi-instancia.
Límites de servicios, colas, caché, idempotencia, retries — los patrones que deciden si una feature escala o se degrada en silencio.
Autenticación limpia ante OWASP, aislamiento multi-tenant a nivel de base de datos, almacenamiento de secretos, audit trails, compliance para clientes regulados.
Logs estructurados con request IDs correlacionados, métricas que mapean a impacto de usuario, distributed tracing, runbooks que un ingeniero medio dormido puede seguir.
Pipelines RAG, eval sets, techos de coste, estructura de prompts, rechazo gracioso — la ingeniería que convierte el output del modelo en una feature de producto.
Deploys containerizados, releases reversibles, performance budgets que el equipo mide y defiende.
Sistemas de componentes, accesibilidad, performance de front-end, la pulida editorial que hace que una herramienta se sienta terminada.
Workflows de CRM y back-office reemplazados con software confiable — agendamiento, reporting, pipelines financieros que no fallan en silencio.
Sin juniors. Sin bench-warmers. Las personas en la primera llamada son las que escriben el código que llega a tu producción.
Frontend, backend, SQL a mano, infraestructura y configuración de CI — sin titubear y sin un hand-off a alguien junior.
Crecemos por unos, no por cinco. Preferimos declinar un proyecto rentable antes que diluir la barra que lo hace funcionar.
Respondemos en un día laborable. MVP vibecoded, draft generado por IA, proyecto a medio terminar, o un producto funcionando que empieza a crujir — todo es bienvenido.
Iniciar un proyecto