01
The 14-year-old monolith nobody fully understands anymore
Java EE on JBoss, 1.2M lines, three engineers who know specific areas, no central architecture documentation. The compliance team wants Java 17 by year-end. Operations needs the deploy time to drop from 45 minutes to under 10. Nobody on the current team has shipped a Spring Boot app in production.
02
JVM tuning is on someone's todo list since 2022
Heap is wrong. GC pauses are visible in p99 latency. The g1gc tuning settings were copied from a 2015 Stack Overflow answer. Nobody on the team has time to do a real performance run with JFR + async-profiler. Meanwhile customer support is fielding "the app is slow" tickets every Tuesday afternoon when the batch job runs.
03
Spring Boot 2 → 3 upgrade keeps getting pushed
Jakarta EE namespace migration touches every package import. javax.servlet is dead. The Spring Security DSL changed. Three of your dependencies are still on Spring Boot 2 and the maintainers have gone quiet. Internal estimate is 8 weeks; nobody has had 8 weeks free in the last 18 months.
04
Microservices were supposed to fix things
The team broke up the monolith into 37 services. Now there is no central transaction handling, eventual consistency bugs surface in production, distributed tracing was supposed to ship "next quarter" for the last two years, and the platform team is burnt out. Walking it back partially is the right call — but who decides which services merge back?
05
Compliance audit found 60+ outdated dependencies
Log4j incident reopened the dependency hygiene question. CVE scanner now flags every PR. The team has not done a clean dependency update sweep in three years and many transitives are on EOL versions. Some upgrades require code changes; some are blocked by library maintainers who never released a fix.