SolvySolvy / Prueba técnica Ver el reto
Solvy · Ingeniería

Usa toda
la IA que
quieras.

Igual vamos a ver cómo piensas. Un reto de 4–6 horas: no premiamos qué tan rápido escribes, premiamos las decisiones que tomas.

TIEMPO · 4–6 HORAS
PARTE 1 · BACKEND HEXAGONAL
PARTE 2 · WEB O MÓVIL
01

La IA está permitida

Cópiala, pégala, pídele lo que sea. La única condición: vas a defender cada línea como si fuera tuya.

02

Dos partes

Primero un backend hexagonal en NestJS. Encima, el frontend que consume ese backend: eliges profundizar en web o en móvil.

03

Arquitectura y tests

Miramos los límites entre capas y que haya pruebas en los dos lados. Ahí se ve el oficio, no en el número de líneas.

El reto

Dos partes. Primero un backend hexagonal en NestJS. Después, el frontend que lo consume: eliges profundizar en web o en móvil. Con pruebas en las dos. Base de datos local con Prisma (SQLite basta).

01Parte 1 · Obligatoria

Backend hexagonal
en NestJS

Un backend pequeño pero bien puesto: un módulo simple en arquitectura hexagonal, con un par de endpoints. Pensado para 1½–2 horas.

STACK · NestJS · Prisma · base de datos local (SQLite)

  • Arquitectura hexagonal
  • Separa dominio, aplicación e infraestructura. El dominio no conoce NestJS ni detalles de HTTP.
  • Las reglas viven en el dominio; los datos entran por un puerto (un repositorio implementado sobre Prisma).
  • Endpoints
  • Un par de endpoints sobre un módulo simple (p. ej. servicios): listar y crear o actualizar.
  • Tests
  • Pruebas del caso de uso y de las reglas del dominio.

Parte 2 · Elige uno — el frontend consume tu backend

Opción A · Web

Profundización
en Next

Una funcionalidad web sobre tu backend, con una arquitectura de frontend por capas.

STACK · Next.js · HeroUI · Zod · Context

  • Arquitectura por capas
  • Dominio (tipos + Zod), servicio/adaptador (llama al endpoint), estado (hook/Context) y componentes, desacoplados.
  • Funcionalidad
  • Lista de servicios + una acción (crear o cambiar estado) con formulario validado; estados de carga, vacío y error.
  • Tests
  • Pruebas de un hook o de un componente.
Opción B · Móvil

Profundización
en Expo

La misma funcionalidad, pero como app móvil que consume tu backend.

STACK · Expo · React Native · NativeWind

  • Arquitectura por capas
  • La misma separación (dominio / servicio / estado / pantallas) adaptada a React Native.
  • Funcionalidad
  • Una pantalla con la lista + una acción, consumiendo tu backend.
  • Tests
  • Pruebas de un componente o de la capa de datos.
Opcional · Tu iniciativa

Sorpréndenos

Sin lista, sin pistas. Si tienes una idea propia, este es tu espacio.

¿Se te ocurre algo que sume? Constrúyelo.

Una funcionalidad extra, un detalle técnico, una mejora que se te antoje — lo que sea. No hay lista de tareas aquí a propósito: queremos ver tu criterio y tu curiosidad. Valoramos ese entusiasmo tanto como el código. Y si no haces nada, tampoco resta.
Qué NO evaluamos

No buscamos diseño pixel-perfect, ni cobertura del 100%, ni que termines todo. Preferimos algo pequeño, bien pensado y defendible antes que mucho a medias.

Cómo
cerramos

Qué evaluamos

  • Los límites entre capas: dominio, datos y presentación en su sitio.
  • Que el frontend consuma bien tu backend.
  • Pruebas en backend y frontend.
  • Código claro: nombres honestos, tipado real.
  • Cómo lo defiendes en vivo.

Qué entregar

  • Un repositorio con acceso para nosotros.
  • Un README: cómo correrlo y qué decisiones tomaste.
  • Historia de commits legible, no un solo commit final.

La defensa (45 min): nos muestras la demo, recorremos el código, preguntamos y te pedimos un cambio pequeño en vivo. Ahí es donde se ve todo.