Saltar al contenido principal

🎯 Banco de Preguntas — Senior

Preguntas de opción múltiple para evaluar conocimientos de nivel Senior en .NET, arquitectura distribuida, cloud y liderazgo técnico. Cubre trade-offs reales, patrones de diseño y decisiones de arquitectura que se discuten en entrevistas senior.

Cómo usar este banco

Intenta responder cada pregunta antes de revelar el resultado. Las explicaciones detallan por qué la respuesta correcta es correcta y por qué las demás están mal.


Arquitectura

¿Cuándo es recomendable empezar con un monolito modular en lugar de microservicios?

¿Qué problema principal resuelve CQRS y cuál es su trade-off más significativo?

En el teorema CAP, durante una partición de red en un sistema distribuido, ¿qué determina si debes elegir CP o AP?

¿En qué escenario tiene valor real implementar Event Sourcing?


Clean Architecture y DDD

¿Cuál es el propósito principal de un Aggregate Root en Domain-Driven Design?

¿Cuál es la diferencia clave entre un Domain Event y un Integration Event?

¿Cuál es la diferencia fundamental entre un Value Object y una Entity en DDD?

¿Qué define los límites de un Bounded Context en DDD?


Microservicios Distribuidos

¿Por qué se prefiere Saga sobre 2PC (Two-Phase Commit) para transacciones distribuidas entre microservicios?

¿Qué problema resuelve el patrón Circuit Breaker y cómo pasa del estado Open al estado Half-Open?

¿Qué garantía de entrega ofrece el Outbox Pattern y qué problema concreto resuelve?

¿Cuándo conviene usar BFF (Backend for Frontend) en lugar de un API Gateway genérico?


Concurrencia .NET

¿Por qué NO deberías usar Task.Run para envolver operaciones I/O-bound como llamadas a base de datos o HTTP?

¿Cuándo usar SemaphoreSlim en lugar de lock para sincronización en .NET?

¿Cuál es el caso de uso principal de IAsyncEnumerable en .NET?

¿Cuál de las siguientes situaciones puede causar un deadlock en código async .NET?


Performance

¿Cómo afecta la diferencia entre operaciones CPU-bound e I/O-bound al diseño de endpoints en una API .NET?

¿Cuándo usar Redis distribuido en lugar de IMemoryCache en una API .NET desplegada en múltiples instancias?

¿Cuál es la diferencia de rendimiento entre Select con proyección vs Include en EF Core?

¿Qué es el problema del thundering herd y cómo se mitiga en una API con caché?


Seguridad

¿Qué es BOLA/IDOR y por qué es la vulnerabilidad más común en APIs REST?

¿Dónde debe almacenarse un JWT access token en una SPA y por qué?

¿Cuál es la diferencia entre Fixed Window y Token Bucket como algoritmos de rate limiting?

¿Qué protege HSTS (HTTP Strict Transport Security) y cómo funciona?


Cloud y DevOps

¿Cuál es la diferencia principal entre Blue/Green deployment y Canary deployment?

¿Por qué se prefiere Managed Identity sobre connection strings para acceder a servicios Azure desde una aplicación?

¿Cuándo usar Azure Service Bus en lugar de Azure Event Hub?

¿Qué problema fundamental resuelve Infrastructure as Code (IaC) con herramientas como Terraform?


Liderazgo Técnico

¿Cómo priorizarías la deuda técnica en un backlog que compite con features de negocio?

¿Para qué sirve un ADR (Architecture Decision Record) y cuándo crearlo?

¿Cuál es el criterio más importante en una decisión Build vs Buy para un componente de software?

Durante un code review, ¿qué deberías revisar con mayor prioridad?


Observabilidad

¿Cuál es la diferencia fundamental entre los tres pilares de la observabilidad: logs, métricas y trazas distribuidas?

¿Por qué se recomienda logging estructurado en lugar de concatenar strings en los logs en sistemas de producción?

¿Cuál es la diferencia entre SLI, SLO y SLA en el contexto de Site Reliability Engineering?

¿Cuál es la diferencia entre liveness probe y readiness probe en Kubernetes?


Arquitectura Event-Driven

¿Cuándo elegirías Apache Kafka sobre RabbitMQ para un sistema de mensajería?

¿Qué problema resuelve el Outbox Pattern y qué garantía proporciona?

¿Cuál es la diferencia entre at-least-once y exactly-once delivery, y cuál es más común en la práctica?

¿Cuáles son los trade-offs entre Choreography y Orchestration en el patrón Saga para transacciones distribuidas?


Escalabilidad de Bases de Datos

¿Cuál es la diferencia entre sharding horizontal y particionamiento vertical de una base de datos?

¿Qué es un covering index y cómo reduce el I/O en una consulta?

¿Cuándo es correcto elegir una base de datos NoSQL sobre una relacional SQL para un sistema nuevo?

¿Qué es la estrategia Expand/Contract (también llamada parallel change) para migraciones zero-downtime?


Concurrencia Avanzada

¿Cuál es la diferencia entre `lock` (Monitor) y `SemaphoreSlim` en .NET y cuándo usar cada uno?

¿Qué es un deadlock y cómo se produce el escenario clásico en aplicaciones multithreaded?

¿Por qué `async void` es peligroso en C# y cuándo es aceptable usarlo?


System Design

¿Cómo diseñarías un sistema de caché distribuida para reducir la carga en una base de datos con alto tráfico de lectura?

¿Cuál es el principal trade-off del patrón CQRS (Command Query Responsibility Segregation) en un sistema distribuido?

¿Qué afirma el CAP Theorem y qué eligen los sistemas CP vs AP en la práctica?