Saliste de la pestaña o ventana. Esto queda registrado en el informe de integridad.
Salidas registradas: 0
Evaluación técnica · nivel 2 · entorno controladoDesarrollo Web · Full Stack · Nivel 2
Evaluación Técnica — Nivel 2
6 ejercicios · 85–95 minutos · Etapa final · Profundidad técnica real del puesto
Antes de empezar
Llegaste a la etapa final. Esta evaluación es más larga y exige más: hay código que vas a construir y probar acá mismo, y decisiones de arquitectura sobre nuestro stack real.
Corre en entorno controlado: mientras esté activa no se puede copiar/pegar, no hay clic derecho, y si salís de la pestaña queda registrado.
No busques las respuestas afuera. Queremos ver cómo razonás y construís vos, no una respuesta de internet.
Tres ejercicios se auto-evalúan en el navegador (botón “Probar”). Podés correrlos las veces que quieras antes de enviar.
Si no llegás a todo, está bien: priorizá calidad. El cronómetro arranca al apretar Comenzar y podés enviar antes de que termine.
⚠️ La integridad de la sesión se mide automáticamente (salidas de pestaña, intentos de copiar). No afecta tu nota técnica, pero queda en el informe del evaluador.
Ejercicio 1 de 6 · Lógica de negocio (auto-evaluable)
Cascada de venta con descuentos y subcapítulos
El corazón del sistema, ahora completo: jerarquía anidada y descuentos por capítulo.
Un presupuesto tiene capítulos. Cada capítulo define un coeficiente de venta para material y otro para mano de obra, puede tener un descuento (fracción, ej. 0.1 = 10%), contiene lotes y, opcionalmente, subcapítulos (misma estructura, anidados sin límite de profundidad).
// Reglas de cálculo:// venta de un lote = (costoMaterial × coefMaterial + costoManoObra × coefManoObra) × cantidad// venta BRUTA de un capítulo = suma de la venta de sus lotes + suma de la venta NETA de sus subcapítulos// venta NETA de un capítulo = venta bruta × (1 − descuento) // descuento por defecto: 0// venta del presupuesto = suma de la venta NETA de los capítulos de primer nivel// Estructura de entrada:// {// capitulos: [// { coefMaterial: 1.5, coefManoObra: 1.2, descuento: 0.1,// lotes: [ { cantidad: 2, costoMaterial: 100, costoManoObra: 50 } ],// subcapitulos: [ { coefMaterial: 1, coefManoObra: 1, lotes: [...] } ] }// ]// }functionventaTotal(presupuesto) {
// tu código acá
}
El descuento se aplica a la venta del capítulo (incluido lo que aportan sus subcapítulos ya netos). La recursión es lo que separa al que modela del que copia un loop plano.
Ejercicio 2 de 6 · Transformación de datos (auto-evaluable)
Resumen por capítulo
Para pintar la tabla del presupuesto necesitás un resumen agrupado. Recibís una lista plana de lotes, cada uno con su capituloId, su costo y su venta (totales del lote). Devolvé un objeto que, por cada capítulo, traiga el costo sumado, la venta sumada y el margen %.
a) Por cada cliente, el total facturado (suma de total_venta) y la cantidad de presupuestos de los últimos 90 días, mostrando solo los clientes con más de 5 presupuestos, ordenados de mayor a menor facturado.
b) Esa query empieza a ir lenta cuando budgets tiene 2 millones de filas. ¿Qué harías para que vuelva a rendir? Sé concreto (índices, qué columnas, qué mirarías para confirmarlo).
El punto (b) separa a quien escribió SQL de quien lo operó en producción.
Ejercicio 4 de 6 · Arquitectura Front-end
Migración AngularJS → React
Estamos migrando la pantalla del presupuesto de AngularJS a React. La tabla tiene 500 lotes editables; al cambiar el costo de un lote, el total del capítulo y del presupuesto deben actualizarse al instante. Explicá tu enfoque:
Cómo organizás los componentes y dónde vive el estado.
Cómo evitás recalcular y re-renderizar todo en cada tecla con 500 filas.
Qué hacés con los 500 inputs para que la pantalla no se trabe (performance).
Ejercicio 5 de 6 · Debugging (auto-evaluable)
Encontrá y corregí el bug
Esta función debería devolver una lista nueva con cada costo aumentado un pct% (ej. 10 = +10%), sin modificar la lista original. Tiene un problema sutil. Corregila en el editor y probala.
En React, mutar el dato que te pasan es justo lo que rompe la reactividad. Esa es la pista.
Ejercicio 6 de 6 · Comunicación técnica
Diagnóstico ante el cliente
El cliente reporta que un presupuesto le da un total distinto al que esperaba. Todavía no sabés por qué. Escribí el mensaje exacto que le mandarías mientras lo investigás: qué le pedís, cómo lo tranquilizás y cómo encarás el diagnóstico del lado técnico.
Revisá tus respuestas antes de enviar. Una vez enviada, no se modifica.
Evaluación completada
¡Listo! Evaluación enviada
Gracias por tu tiempo. El equipo va a revisar tus respuestas. Abajo queda el informe completo de la sesión.
Resumen de la sesión
—tiempo usado
0desenfoques de ventana
0intentos copiar/pegar
—auto-evaluables OK
0achicó la ventana
0ráfagas de escritura
—lectura de integridad
Respuestas · para el evaluador
Este bloque se puede seleccionar y copiar para guardarlo en Nexus o enviarlo al evaluador.