Preparación por nivel
Senior en Java
Escenarios complejos de Java: arquitectura, compromisos técnicos, rendimiento y decisiones de mayor impacto.
¿Cómo estructurarías una aplicación Java para que el dominio no dependa del framework de turno?¿Qué decisiones de diseño cambian cuando entiendes bien la JVM, el heap y el garbage collector?¿Cómo elegirías entre concurrencia con `CompletableFuture`, pools, colas o procesamiento síncrono?¿Cómo diseñarías acceso a datos y transacciones para evitar inconsistencias y N+1?Heredas un monolito Java con deuda técnica y poco tipado de dominio: ¿por dónde empiezas?¿Cómo decidirías entre Spring, Quarkus o un stack más ligero según el tipo de sistema?¿Cuándo introducirías cach? en una app Java y cómo evitarías datos obsoletos peligrosos?¿Cómo diagnosticarías fugas de memoria o presión de GC en una aplicación Java en producción?¿Cómo manejarías versionado de API y compatibilidad binaria en librerías o servicios Java?¿Qué revisarías al diseñar integración con sistemas externos lentos o poco fiables?¿Cómo plantearías observabilidad real en Java más all? de logs sueltos?¿Cuándo tiene sentido introducir mensajería o procesamiento asíncrono en un backend Java?¿Cómo modernizarías un código Java lleno de herencia profunda y utilidades estáticas?