This page is not translated yet. You are reading the Spanish original. The mock interviews, the landing page and the guides are available in English; the question bank and the courses are being translated progressively — contributions welcome.
Entrevistas Técnicas — Java Senior con Microservicios
This content is not available in your language yet.
Banco de preguntas de entrevista para posiciones Java Senior con arquitectura de microservicios. Cada pregunta incluye una respuesta resumen (30–60 segundos) y una respuesta detallada con código realista, trade-offs, errores comunes y lo que el entrevistador espera oír.
🎓 ¿Te faltan bases para responder esto? El curso Java senior + Spring enseña exactamente lo necesario, con laboratorios y autoevaluación. Ver también: índice completo · plan de estudio · glosario · inicio
Archivos
Sección titulada «Archivos»| Archivo | Contenido | Preguntas |
|---|---|---|
| 01-java-core-avanzado.md | JVM internals, GC, JMM, concurrencia avanzada, Loom, colecciones, Java moderno, Streams | 15 |
| 02-spring-y-microservicios.md | Spring Boot/Cloud internals, transacciones, resiliencia, Kafka, patrones distribuidos, observabilidad, testing | 16 |
| 03-casos-y-problemas.md | Casos de producción [CASO]: diagnóstico paso a paso, herramientas, solución y prevención | 15 |
| 04-quarkus-y-native.md | Quarkus, MicroProfile y native image: build-time processing, ArC, Mutiny, Panache, GraalVM | 16 |
Total: 62 preguntas.
Índice de preguntas
Sección titulada «Índice de preguntas»01 — Java Core Avanzado
Sección titulada «01 — Java Core Avanzado»- ¿Cómo funciona G1 GC internamente y qué parámetros clave usarías para hacer tuning?
- ¿Cuándo elegirías ZGC o Shenandoah en lugar de G1? ¿Qué sacrificas?
- Explica el Java Memory Model: ¿qué es happens-before y por qué importa?
volatilevssynchronizedvsAtomicLong/VarHandle: ¿cuándo usar cada uno?- ¿Qué garantías especiales dan los campos
finaly qué es la publicación segura (safe publication)? CompletableFuture: composición, manejo de errores y sus pitfalls principales- ForkJoinPool y work-stealing: ¿cómo funciona y qué problemas causa el commonPool?
- Virtual threads (Project Loom): ¿cómo funcionan, cuándo usarlos y qué es el pinning?
- Structured concurrency: ¿qué problema resuelve frente a ExecutorService y CompletableFuture?
- HashMap por dentro: hashing, resize, treeification y por qué es peligroso en concurrencia
- ConcurrentHashMap: ¿cómo logra thread-safety sin un lock global y qué garantías da?
- Records: ¿qué aportan realmente, qué limitaciones tienen y cuándo NO usarlos?
- Sealed classes + pattern matching: ¿cómo cambian el diseño de dominio en Java moderno?
- Streams paralelos: ¿cuándo ayudan, cuándo perjudican y cuáles son sus pitfalls?
- Streams secuenciales: pitfalls avanzados que delatan a un desarrollador junior
02 — Spring y Microservicios
Sección titulada «02 — Spring y Microservicios»- ¿Cómo funciona la auto-configuración de Spring Boot por dentro?
- @Transactional: propagación, rollback y los pitfalls del proxy
- ¿Cómo implementarías circuit breakers con Resilience4j y qué configuración importa de verdad?
- Comunicación síncrona vs asíncrona entre microservicios: ¿cómo decides?
- Kafka: consumer groups y rebalancing — ¿qué pasa exactamente y cómo lo controlas?
- Kafka: ¿qué significa exactly-once realmente y cómo se consigue con Java?
- Patrón Saga: orquestación vs coreografía para transacciones distribuidas
- Patrón Outbox: ¿cómo publicas eventos de forma atómica con tu transacción de BD?
- Proxies en Spring (JDK vs CGLIB) y ciclo de vida de beans: ¿qué errores reales causan?
- Spring Cloud Config y configuración dinámica: ¿cómo refrescas configuración sin redeploy y qué riesgos tiene?
- Spring Cloud Gateway: ¿qué papel juega y cómo implementarías rate limiting y resiliencia en el borde?
- CQRS y Event Sourcing: ¿qué resuelven, cómo se implementan y cuándo son una mala idea?
- Service discovery: ¿Eureka, DNS de Kubernetes o service mesh? ¿Client-side o server-side?
- Observabilidad en microservicios Java: Micrometer, OpenTelemetry y qué instrumentar
- Testcontainers: ¿cómo testeas integración real (BD, Kafka) sin mocks y sin flakiness?
- Contract testing con Pact: ¿cómo evitas romper consumidores sin tests E2E?
03 — Casos y Problemas de Producción (todos [CASO])
Sección titulada «03 — Casos y Problemas de Producción (todos [CASO])»- Memory leak en producción: el heap crece hasta OOM cada 3 días
- Latencia p99 alta en un servicio Spring Boot con p50 normal: ¿cómo lo investigas?
- Thread pool exhaustion: Tomcat deja de responder pero la CPU está al 10%
- Deadlock en producción: dos funcionalidades se congelan a la vez de forma intermitente
- Consumer lag creciente en Kafka: el consumidor procesa pero cada vez va más atrás
- Mensajes duplicados: facturación cobró dos veces el mismo pedido
- Transacción distribuida que deja datos inconsistentes: pedido pagado sin stock reservado
- N+1 queries con JPA/Hibernate: un listado que hace 400 queries
- OutOfMemoryError: Metaspace tras varios redeploys o en un servicio con mucha reflection
- Un servicio degradado tumba en cascada a toda la plataforma: anatomía y defensa
- Migrar un monolito a microservicios: ¿por dónde empiezas y cómo evitas el desastre?
- Full GC pauses de varios segundos: los health checks fallan y los pods se reinician
- HikariCP agotado: “Connection is not available, request timed out after 30000ms”
- Pérdida de mensajes: un evento de pedido nunca llegó a facturación
- Hot partition en Kafka: una partición concentra el tráfico y un consumer va ahogado
04 — Quarkus, MicroProfile y Native Image
Sección titulada «04 — Quarkus, MicroProfile y Native Image»- ¿Qué hace diferente a Quarkus de Spring Boot por dentro? Build-time processing
- ArC: el CDI de Quarkus — qué implementa, qué no, y el error del “bean eliminado”
- GraalVM Native Image: closed-world assumption — qué se rompe y cómo se registra
- JVM vs native: ¿cuándo compensa de verdad compilar a native?
- Mutiny y el modelo reactivo de Quarkus: Uni, Multi, event loop y @Blocking
- RESTEasy Reactive: imperativo y reactivo en el mismo stack — ¿cómo decide el dispatch?
- Panache: active record vs repository, límites y Panache reactive
- Configuración en Quarkus: MicroProfile Config, @ConfigMapping, perfiles y la trampa build-time
- SmallRye Fault Tolerance: semántica exacta de @Retry, @Timeout, @CircuitBreaker, @Bulkhead y @Fallback
- Reactive Messaging con Kafka: channels, ack, commit strategies y concurrencia
- Dev mode y Dev Services: live reload, testcontainers automáticos y continuous testing
- Testing en Quarkus: @QuarkusTest, @QuarkusIntegrationTest, @InjectMock y test profiles
- Transacciones en Quarkus: Narayana, propagación y el choque bloqueante/reactivo
- MicroProfile REST Client: interfaces tipadas, fault tolerance y propagación de contexto
- [CASO] En JVM funciona, el binario native peta en producción al deserializar un payload
- [CASO] Migrar 40 microservicios Spring Boot a Quarkus: ¿tiene sentido? Plan y criterios
Cómo usar este material
Sección titulada «Cómo usar este material»- Repaso rápido antes de la entrevista: leer solo las secciones “📝 Respuesta resumen” — están calibradas para responderse en 30–60 segundos.
- Estudio profundo: las secciones “📖 Respuesta detallada” incluyen el código, los trade-offs y los matices que distinguen una respuesta senior.
- Práctica de casos: en el archivo 03, tapar la respuesta y practicar el diagnóstico en voz alta: hipótesis → herramientas (jstack, jmap, async-profiler, MAT, GC logs, métricas) → solución → prevención.