Ejercicios¶
Todos los ejercicios de la web (224) agrupados por nivel. Pulsa uno para ir a él; la solución está plegada debajo del enunciado. Esta página se genera automáticamente en cada build.
| Sección | Página | Ejercicio |
|---|---|---|
| Fundamentos | Algoritmos y estructuras de datos | Calcular complejidades |
| Fundamentos | Algoritmos y estructuras de datos | Elegir la estructura |
| Fundamentos | Bases de datos | Elegir el índice |
| Fundamentos | Bases de datos | Informe incoherente |
| Fundamentos | Concurrencia y sistemas operativos | Encontrar la carrera |
| Fundamentos | Concurrencia y sistemas operativos | Ley de Little |
| Fundamentos | Compilación, ejecución y servidores | ¿Qué necesita el contenedor? |
| Fundamentos | Redes | Calcular rangos CIDR |
| Fundamentos | Redes | Leer los tiempos de curl |
| Diseño y código | Patrones de diseño | Identificar el patrón |
| Diseño y código | Patrones de diseño | Builder para un objeto de prueba |
| Diseño y código | Principios SOLID | Identificar el principio incumplido |
| Diseño y código | Principios SOLID | Separar responsabilidades |
| Diseño y código | Testing | Mejorar un test |
| Diseño y código | Testing | Elegir el doble de prueba |
| Java y Spring | Java moderno (8 → 25) | De bucle a stream |
| Java y Spring | Java moderno (8 → 25) | Record con validación |
| Java y Spring | La JVM por dentro | Dimensionar la memoria de un Pod |
| Java y Spring | La JVM por dentro | Interpretar un error |
| Java y Spring | Spring y Spring Boot | Encontrar el fallo |
| Java y Spring | Spring y Spring Boot | Propiedades tipadas |
| Arquitectura | ADRs y trade-offs | ¿Merece un ADR? |
| Arquitectura | Diseño de APIs | Corregir el diseño REST |
| Arquitectura | Diseño de APIs | Clasificar cambios de API |
| Arquitectura | Domain-Driven Design | Clasificar subdominios |
| Arquitectura | Domain-Driven Design | Entidad o Value Object |
| Arquitectura | Estilos de arquitectura | Elegir estilo |
| Arquitectura | El rol del arquitecto | Reversible o irreversible |
| System Design | Caso: Autocompletado de búsqueda | Implementar el trie |
| System Design | Caso: Sistema de chat | Dimensionar servidores de chat |
| System Design | Fundamentos de System Design | Hacer un servicio stateless |
| System Design | Fundamentos de System Design | Elegir estrategia de caché |
| System Design | Caso: Almacén clave-valor distribuido | Configurar el quórum |
| System Design | Caso: News feed | Memoria de la caché de feeds |
| System Design | Caso: Sistema de notificaciones | Reintentos con jitter |
| System Design | Caso: Sistema de pagos | ¿Por qué no double? |
| System Design | Caso: Servicio de proximidad | Elegir la precisión |
| System Design | Caso resuelto: Rate limiter | Calcular el comportamiento |
| System Design | Caso resuelto: Rate limiter | Test sin esperas |
| System Design | Caso: Acortador de URLs | Longitud del código |
| System Design | Caso: Plataforma de vídeo (tipo YouTube) | ¿Por qué no subir a través del API? |
| System Design | Caso: Web crawler | Normalizar URLs |
| Datos | Apache Kafka | Elegir la clave |
| Datos | Apache Kafka | Calcular el lag |
| Datos | Plataformas de datos | Hechos y dimensiones |
| Datos | Procesamiento en streaming | Elegir la ventana |
| Plataforma | CI/CD | Calcular las métricas DORA |
| Plataforma | CI/CD | Acelerar un pipeline |
| Plataforma | Edge computing | Calcular el tráfico de una actualización |
| Plataforma | GitOps | Ordenar la instalación |
| Plataforma | GitOps | Rollback |
| Plataforma | IaC y Config as Code | Leer un plan |
| Plataforma | IaC y Config as Code | Organizar el estado |
| Plataforma | Kubernetes | Diagnosticar un Pod |
| Plataforma | Kubernetes | Calcular el rolling update |
| Plataforma | Observabilidad | ¿Métrica, log o traza? |
| Plataforma | Observabilidad | Presupuesto de errores |
| Plataforma | Seguridad | Validar un JWT |
| Plataforma | Seguridad | Encontrar la vulnerabilidad |
| Inteligencia Artificial | Agentes, MCP y Skills | ¿Workflow o agente? |
| Inteligencia Artificial | Construir aplicaciones con LLMs | Mejorar un prompt |
| Inteligencia Artificial | Ecosistema de IA | Abierto o cerrado |
| Inteligencia Artificial | IA en el edge | ¿Edge o nube? |
| Inteligencia Artificial | Harnesses y agentes de código | ¿Dónde va cada cosa? |
| Inteligencia Artificial | Jev y los modelos "System One" | Elegir el tipo de pregunta |
| Inteligencia Artificial | Cómo funcionan los LLMs | Calcular el coste de una funcionalidad |
| Inteligencia Artificial | MLOps, ajuste fino y servir modelos | Memoria para servir un modelo |
| Inteligencia Artificial | Seguridad, riesgos y regulación de la IA | Identificar la trifecta |
| Inteligencia Artificial | Tipos de IA y aprendizaje automático | ¿Reglas, ML o LLM? |
| Cloud | Amazon Web Services (AWS) | Política IAM de mínimo privilegio |
| Cloud | Microsoft Azure | Asignar permisos |
| Cloud | Certificaciones | Prerrequisitos y validez |
| Cloud | Certificaciones | ¿Sigue vigente? |
| Cloud | Costes y FinOps | Reserva o bajo demanda |
| Cloud | Equivalencias entre nubes | Traducir una arquitectura |
| Cloud | Google Cloud (GCP) | Jerarquía de recursos |
| Cloud | Cloud | Responsabilidad compartida |
| Biblioteca | Arquitectura Limpia (Clean Architecture) | Encontrar la violación |
| Biblioteca | Código Limpio (Clean Code) | Renombrar |
| Biblioteca | Código Limpio (Clean Code) | Separar comando y consulta |
| Biblioteca | Cracking the Coding Interview | Aplicar BUD |
| Biblioteca | System Design Interview | Estimación de telemetría |
| Sección | Página | Ejercicio |
|---|---|---|
| Fundamentos | Algoritmos y estructuras de datos | Paréntesis equilibrados |
| Fundamentos | Algoritmos y estructuras de datos | Dependencias cíclicas en Kustomizations |
| Fundamentos | Algoritmos y estructuras de datos | Top 3 sitios con más errores |
| Fundamentos | Bases de datos | Write skew |
| Fundamentos | Bases de datos | Renombrar una columna sin parada |
| Fundamentos | Concurrencia y sistemas operativos | Deadlock en transferencias |
| Fundamentos | Concurrencia y sistemas operativos | Timeout sobre varias llamadas |
| Fundamentos | Compilación, ejecución y servidores | Arranques lentos en Kubernetes |
| Fundamentos | Compilación, ejecución y servidores | WSGI frente a ASGI |
| Fundamentos | Redes | Diagnosticar un certificado |
| Fundamentos | Redes | DNS lento en Kubernetes |
| Diseño y código | Patrones de diseño | Decorator de reintentos con backoff |
| Diseño y código | Patrones de diseño | Observer asíncrono |
| Diseño y código | Principios SOLID | Eliminar switches con OCP |
| Diseño y código | Principios SOLID | Segregar una interfaz |
| Diseño y código | Testing | TDD de una función |
| Diseño y código | Testing | Test de integración con Testcontainers |
| Java y Spring | Java moderno (8 → 25) | Modelar con tipos sellados |
| Java y Spring | La JVM por dentro | Microbenchmark correcto |
| Java y Spring | La JVM por dentro | Fuga de memoria |
| Java y Spring | Spring y Spring Boot | Eliminar un N+1 |
| Java y Spring | Spring y Spring Boot | Probes de Kubernetes |
| Arquitectura | ADRs y trade-offs | Escribir un ADR |
| Arquitectura | Diseño de APIs | Implementar idempotencia |
| Arquitectura | Diseño de APIs | Paginación por cursor |
| Arquitectura | Domain-Driven Design | Límites de un agregado |
| Arquitectura | Estilos de arquitectura | Diseñar una saga |
| Arquitectura | Estilos de arquitectura | Evento o comando |
| Arquitectura | El rol del arquitecto | Escribir fitness functions |
| Arquitectura | El rol del arquitecto | Comunicar una decisión |
| System Design | Caso: Autocompletado de búsqueda | Memoria del trie |
| System Design | Caso: Sistema de chat | Sincronizar un dispositivo |
| System Design | Fundamentos de System Design | Circuit breaker |
| System Design | Fundamentos de System Design | Replication lag |
| System Design | Caso: Almacén clave-valor distribuido | Relojes vectoriales |
| System Design | Caso: News feed | Umbral de celebridad |
| System Design | Caso: Sistema de notificaciones | Deduplicar alertas |
| System Design | Caso: Sistema de pagos | Timeout al cobrar |
| System Design | Caso: Sistema de pagos | Asiento de un reembolso |
| System Design | Caso: Servicio de proximidad | Distancia de haversine |
| System Design | Caso resuelto: Rate limiter | Elegir algoritmo |
| System Design | Caso: Acortador de URLs | Codificar y decodificar |
| System Design | Caso: Acortador de URLs | Generador por rangos |
| System Design | Caso: Plataforma de vídeo (tipo YouTube) | Segmentos y cambio de calidad |
| System Design | Caso: Web crawler | Dimensionar el Bloom filter |
| Datos | Apache Kafka | Consumidor idempotente |
| Datos | Apache Kafka | Configuración durable |
| Datos | Plataformas de datos | Diseñar el pipeline de telemetría |
| Datos | Plataformas de datos | Dimensión que cambia |
| Datos | Procesamiento en streaming | Sitios que se reconectan tarde |
| Datos | Procesamiento en streaming | Outbox con Debezium |
| Plataforma | CI/CD | Elegir estrategia de despliegue |
| Plataforma | Edge computing | Diseñar los anillos |
| Plataforma | GitOps | Overlay para la flota edge |
| Plataforma | GitOps | Multi-tenancy |
| Plataforma | IaC y Config as Code | Política en CI |
| Plataforma | Kubernetes | Alta disponibilidad real |
| Plataforma | Kubernetes | Probes correctas |
| Plataforma | Observabilidad | Escribir PromQL |
| Plataforma | Observabilidad | Alerta mal diseñada |
| Plataforma | Seguridad | Endurecer un Deployment |
| Inteligencia Artificial | Agentes, MCP y Skills | Límites de un agente |
| Inteligencia Artificial | Agentes, MCP y Skills | Escribir una skill |
| Inteligencia Artificial | Construir aplicaciones con LLMs | Diseñar las herramientas de un asistente |
| Inteligencia Artificial | Construir aplicaciones con LLMs | Construir una evaluación |
| Inteligencia Artificial | Ecosistema de IA | Elegir la pila de un proyecto Java |
| Inteligencia Artificial | IA en el edge | Distribuir un modelo con GitOps |
| Inteligencia Artificial | Harnesses y agentes de código | Hook de protección |
| Inteligencia Artificial | Jev y los modelos "System One" | Diseñar la cascada |
| Inteligencia Artificial | Cómo funcionan los LLMs | Diseñar para las limitaciones |
| Inteligencia Artificial | Cómo funcionan los LLMs | Elegir modelo y esfuerzo |
| Inteligencia Artificial | MLOps, ajuste fino y servir modelos | ¿Ajuste fino? |
| Inteligencia Artificial | Seguridad, riesgos y regulación de la IA | Clasificar según el AI Act |
| Inteligencia Artificial | Tipos de IA y aprendizaje automático | Interpretar métricas |
| Cloud | Amazon Web Services (AWS) | Reducir el coste del NAT Gateway |
| Cloud | Microsoft Azure | Elegir mensajería |
| Cloud | Certificaciones | Elegir qué certificar |
| Cloud | Costes y FinOps | Comparar la misma plataforma en tres nubes |
| Cloud | Costes y FinOps | Etiquetado y asignación |
| Cloud | Equivalencias entre nubes | Diferencias que importan |
| Cloud | Google Cloud (GCP) | Coste de BigQuery |
| Cloud | Cloud | Elegir proveedor |
| Biblioteca | Arquitectura Limpia (Clean Architecture) | Diseñar un caso de uso con puertos |
| Biblioteca | Arquitectura Limpia (Clean Architecture) | Romper un ciclo |
| Biblioteca | Código Limpio (Clean Code) | Refactorizar una función |
| Biblioteca | Cracking the Coding Interview | Proceso completo en un problema |
| Biblioteca | System Design Interview | Estimar QPS y almacenamiento |
| Biblioteca | System Design Interview | Aplicar el marco de 4 pasos |
| Sección | Página | Ejercicio |
|---|---|---|
| Fundamentos | Algoritmos y estructuras de datos | LRU cache en O(1) |
| Fundamentos | Bases de datos | Cola de trabajos en PostgreSQL |
| Fundamentos | Concurrencia y sistemas operativos | Throttling de CPU |
| Fundamentos | Compilación, ejecución y servidores | Elegir el modelo de ejecución |
| Fundamentos | Redes | Plan de direcciones de una flota edge |
| Diseño y código | Patrones de diseño | Máquina de estados de un rollout |
| Diseño y código | Principios SOLID | Aplicar DIP en un proyecto real |
| Diseño y código | Testing | Estrategia de tests de una plataforma GitOps |
| Java y Spring | Java moderno (8 → 25) | Llamadas en paralelo con hilos virtuales |
| Java y Spring | La JVM por dentro | Arranque lento en Kubernetes |
| Java y Spring | Spring y Spring Boot | Llamada externa dentro de una transacción |
| Arquitectura | ADRs y trade-offs | Matriz de decisión |
| Arquitectura | Diseño de APIs | REST o gRPC para el enlace edge-hub |
| Arquitectura | Domain-Driven Design | Diseñar un context map |
| Arquitectura | Estilos de arquitectura | Estrangular un monolito |
| Arquitectura | El rol del arquitecto | Gestionar un desacuerdo técnico |
| System Design | Caso: Autocompletado de búsqueda | Autocompletado para la consola de la flota |
| System Design | Caso: Sistema de chat | Chat de operadores de la flota |
| System Design | Fundamentos de System Design | Consistent hashing en código |
| System Design | Caso: Almacén clave-valor distribuido | Merkle tree |
| System Design | Caso: News feed | Feed de actividad de la flota |
| System Design | Caso: Sistema de notificaciones | Garantía de envío |
| System Design | Caso: Sistema de pagos | Webhooks desordenados |
| System Design | Caso: Servicio de proximidad | Técnico más cercano a un sitio caído |
| System Design | Caso resuelto: Rate limiter | Contador deslizante en Redis |
| System Design | Caso: Acortador de URLs | Evitar códigos enumerables |
| System Design | Caso: Plataforma de vídeo (tipo YouTube) | Distribuir vídeos de formación a la flota edge |
| System Design | Caso: Web crawler | Educación con 10 000 workers |
| Datos | Apache Kafka | Topic compactado como estado de la flota |
| Datos | Plataformas de datos | Contrato de datos |
| Datos | Procesamiento en streaming | Kafka Streams o Flink |
| Plataforma | CI/CD | Cadena de suministro verificable |
| Plataforma | Edge computing | Sitio comprometido |
| Plataforma | GitOps | Promoción por anillos en la flota |
| Plataforma | IaC y Config as Code | IaC para una flota edge |
| Plataforma | Kubernetes | Pods pendientes |
| Plataforma | Observabilidad | Instrumentar un flujo |
| Plataforma | Seguridad | Rotación de secretos sin parada |
| Inteligencia Artificial | Agentes, MCP y Skills | Servidor MCP seguro |
| Inteligencia Artificial | Construir aplicaciones con LLMs | RAG sobre la documentación de la plataforma |
| Inteligencia Artificial | Harnesses y agentes de código | Adoptar agentes en un equipo |
| Inteligencia Artificial | Jev y los modelos "System One" | Evaluar la calibración |
| Inteligencia Artificial | MLOps, ajuste fino y servir modelos | Detectar deriva en producción |
| Inteligencia Artificial | Seguridad, riesgos y regulación de la IA | Red teaming de un asistente con RAG |
| Inteligencia Artificial | Tipos de IA y aprendizaje automático | Detectar data leakage |
| Cloud | Amazon Web Services (AWS) | Organización multi-cuenta |
| Cloud | Microsoft Azure | Flota con Azure Arc |
| Cloud | Costes y FinOps | Coste unitario de la flota |
| Cloud | Google Cloud (GCP) | CI sin claves hacia GCP |
| Cloud | Cloud | Estrategia multicloud |
| Biblioteca | Arquitectura Limpia (Clean Architecture) | Hacer cumplir la arquitectura |
| Biblioteca | Código Limpio (Clean Code) | Limpiar una clase real |
| Biblioteca | Cracking the Coding Interview | Explicar una solución |
| Biblioteca | System Design Interview | Cierre de una sesión de diseño |