enunciados + leetcode
Enunciados como los de una entrevista real para resolver por tu cuenta, con el tiempo que te darían, y problemas de LeetCode recomendados para cada tecnología y seniority. Nada se corrige acá: resolvelo en tu editor, en voz alta, y marcá lo que ya practicaste.
Tenés una API REST chica de tareas en Node o Python con endpoints GET /tasks y POST /tasks, guardadas en memoria como { id, title, done, createdAt }. La feature pedida es: paginación por cursor en GET /tasks, filtro por done, y un endpoint PATCH /tasks/:id con validación del body.
Antes de escribir código, armá un plan de entre 4 y 6 pasos donde cada paso sea un cambio chico que el agente pueda hacer en una sola iteración, con su criterio de verificación (qué test o comando tiene que pasar). Ejecutá el plan paso a paso con el agente, verificando y commiteando al final de cada uno.
# requisitos
PATCH rechaza campos desconocidos y tipos incorrectos con 400.# si te sobra tiempo, te van a preguntar
Escribí este módulo y su test. Módulo: export async function fetchAll(ids, fetchOne) { const results = []; ids.forEach(async (id) => { results.push(await fetchOne(id)); }); return results; }. Test: un fetchOne falso que resuelve con setTimeout de un delay aleatorio entre 0 y 20 ms, y un expect(await fetchAll([1, 2, 3], fetchOne)).toEqual([r1, r2, r3]).
El test falla casi siempre y, si lo "arreglás" a medias, pasa a fallar de forma intermitente. Usá el agente para diagnosticar la causa raíz y arreglarla. No vale agregar reintentos al test ni sleeps.
# requisitos
forEach no espera promesas y el orden de resolución no está garantizado.ids.# si te sobra tiempo, te van a preguntar
fetchAll?fetchOne falla? ¿Promise.all o Promise.allSettled?Un agente implementó esta función para aplicar descuentos y la presentó como lista: function applyDiscount(price, code) { const codes = { PROMO10: 0.1, PROMO50: 0.5 }; const pct = codes[code.toUpperCase()]; return Math.round(price - price * pct); }. El ticket pedía: precios en centavos como enteros, códigos case insensitive, código inexistente o vacío no aplica descuento, y nunca devolver un precio negativo.
Hacé el code review como lo harías en un PR: listá cada problema con un ejemplo de entrada que lo demuestre, escribí los tests que lo cubren y después pedile al agente que lo corrija usando tus comentarios como única instrucción.
# requisitos
NaN en vez del precio original.code nulo o indefinido rompe en toUpperCase.price sea un entero no negativo.# si te sobra tiempo, te van a preguntar