~/pcn $ iniciando_

programaConNosotros

Iniciar sesiónCrear cuenta
  • programaConNosotrosprogramaConNosotrosComunidad · desde 2020
  • Inicio
  • Feed
Actividades
  • Eventos
  • Conversaciones
  • Charlas
  • Podcast
  • Desarrollo
Recursos
  • Cursos
  • Lectura
  • Videos
  • Especialidades
  • Herramientas
  • Proyectos
  • Entrevistas
Comunidad
  • Historia
  • Miembros
  • Logros
  • Galería
  • Setups
  • Partners
  • Changelog
SoporteFeedback

~/entrevistas/live-coding

enunciados + leetcode

[simulador][guías][live coding]

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.

# 1. tecnología

[ ]Frontend · React.jsweb, hooks, Next.js[ ]Frontend · iOSSwift, SwiftUI, UIKit[ ]Frontend · AndroidKotlin, Jetpack Compose[ ]Frontend · React NativeExpo, iOS y Android[ ]Backend · Node.jsExpress, NestJS[ ]Backend · PythonDjango, FastAPI[ ]Backend · JavaSpring Boot[ ]Backend · .NETC#, ASP.NET Core[ ]AI engineeringconstruir agentes de IA[ ]Agentic engineeringdesarrollar con agentes[x]Quality engineeringtesting manual y automatizado

# 2. seniority

[ ]Junior[ ]Semi-senior[x]Senior

# ejercicios (resolvelos por tu cuenta, con el tiempo que darían en la entrevista)

01Script de k6 con stages y thresholdsQue traduzcas un requisito de negocio a una prueba de performance realista con criterios de aceptación automáticos.60 min

Se viene una promoción y el negocio espera hasta 300 usuarios concurrentes en el checkout. Cada usuario hace: POST /api/login con email y contraseña (devuelve un token), GET /api/products, POST /api/cart con 1 a 3 productos al azar y POST /api/orders. El SLO acordado es p95 menor a 800 ms en POST /api/orders, p95 menor a 400 ms en el resto y menos de 1% de errores.

Escribí un script de k6 que modele ese escenario con un ramp-up a 300 VUs en 5 minutos, 10 minutos sostenidos y un ramp-down de 2 minutos, con thresholds que hagan fallar la corrida si no se cumple el SLO. Si no tenés un servicio contra el que correrlo, alcanza con que el script sea correcto y lo valides contra un mock local.

# requisitos

  • -Usar stages o un scenario ramping-vus con los tiempos pedidos.
  • -Definir thresholds por endpoint usando tags, no solo globales.
  • -Tomar los usuarios de prueba de un archivo con SharedArray para que cada VU use credenciales distintas.
  • -Agregar check sobre status y contenido de cada respuesta y sleep con think time realista.
  • -Agrupar las requests por paso del flujo para que el reporte sea legible.
  • -Parametrizar la URL base y los VUs con variables de entorno.

# si te sobra tiempo, te van a preguntar

  • -¿Qué diferencia hay entre un load test, un stress test, un spike test y un soak test, y cuál correrías primero?
  • -¿Usarías un modelo de VUs o de arrival rate para este caso? ¿Por qué?
  • -Si el p95 de órdenes da 1,2 s, ¿qué métricas del backend mirarías para encontrar el cuello de botella?
  • -¿Cómo lo integrarías en CI sin que sea lento ni golpee un entorno compartido?
02Diseñar la estructura de una suite de automatizaciónQue diseñes arquitectura de testing y prioridades de inversión, no solo que escribas tests individuales.60 min

Te suman a un equipo con una app web (login, catálogo, carrito, checkout y un panel de admin) que hoy tiene 400 tests E2E de Cypress en un único repo, tardan 50 minutos, fallan de forma intermitente cerca del 8% de las corridas y nadie confía en ellos. No hay tests de API y los datos de prueba dependen de una base de staging compartida.

Armá en código la base de una suite nueva con Playwright o Cypress que muestre cómo resolverías esto: estructura de carpetas, configuración por entorno, fixtures para autenticación y datos, un helper para crear datos por API, dos tests E2E de ejemplo y dos tests de API de ejemplo. Acompañalo con un README corto con las decisiones tomadas.

# requisitos

  • -Separar con claridad tests E2E, tests de API, page objects o componentes, y utilidades de datos.
  • -Crear los datos de cada test por API y limpiarlos, sin depender del estado previo de la base.
  • -Configurar paralelismo, reintentos acotados y captura de trace, video o screenshots en fallos.
  • -Permitir correr subconjuntos por tag (por ejemplo @smoke y @regression).
  • -Explicar en el README cómo migrarías gradualmente los 400 tests viejos.

# si te sobra tiempo, te van a preguntar

  • -¿Qué porcentaje de la cobertura actual moverías a API o a tests de componentes?
  • -¿Qué métricas usarías para mostrar al equipo que la suite nueva es más confiable?
  • -¿Cómo integrarías la suite en el pipeline para dar feedback en menos de 10 minutos?
03Testear paginación e idempotencia de una APIQue vayas más allá del camino feliz y pruebes propiedades sutiles de una API, como consistencia y concurrencia.45 min

El endpoint GET /api/transactions?cursor=<c>&limit=<n> devuelve { "items": [...], "nextCursor": string | null } ordenado por createdAt descendente, con limit entre 1 y 100 (por defecto 20). El endpoint POST /api/transactions acepta un header Idempotency-Key: si se repite la misma key con el mismo body, debe devolver la misma transacción sin duplicarla; si se repite con otro body, debe responder 422.

Escribí una suite automatizada que valide la paginación y la idempotencia, incluyendo qué pasa cuando se crean transacciones nuevas mientras alguien está paginando. Usá la herramienta de API testing que prefieras y un mock propio si no tenés el servicio.

# requisitos

  • -Recorrer todas las páginas y verificar que no hay elementos duplicados ni faltantes.
  • -Probar los límites de limit (0, 1, 100, 101) y un cursor inválido.
  • -Verificar que crear transacciones durante la paginación no produce duplicados en las páginas siguientes.
  • -Probar requests concurrentes con la misma Idempotency-Key y verificar que se crea una sola transacción.
  • -Probar la misma key con un body distinto y verificar el 422.

# si te sobra tiempo, te van a preguntar

  • -¿Qué diferencias de comportamiento esperarías entre paginación por cursor y por offset al testear?
  • -¿Cuánto tiempo debería vivir una idempotency key y cómo lo testearías?
  • -¿Qué riesgos de negocio cubren estos tests en un sistema de pagos?

# leetcode recomendado (Quality engineering · Senior)

MediumString to Integer (atoi)Es casi un ejercicio de testing: el desafío está en enumerar y manejar todos los casos de borde de la entrada.
MediumString CompressionManipulación in place con dos punteros y conteos de varios dígitos, muy pedido en screens de SDET senior.
MediumReverse Words in a StringParseo y normalización de espacios, el tipo de procesamiento de texto que aparece al validar outputs.
MediumMerge IntervalsOrdenar y unir rangos, aplicable a analizar ventanas de tiempo en logs o resultados de performance.
MediumTop K Frequent ElementsConteo con hash map y heap, como al reportar los tests o errores más frecuentes de una suite.
MediumSubarray Sum Equals KPrefix sums con hash map, un Medium de arrays frecuente que exige cuidar negativos y casos de borde.
$ progreso --live-codingQuality engineering · Senior

ejercicios0/3

leetcode0/6

$ cat guias/live-coding

Cómo encarar un live coding: el método para resolver en voz alta, complejidad, los patrones más frecuentes y cómo practicar.

leer la guía de live coding