Issue
- An OutOfMemoryError occurred during a batch job while the responsible owner had already left the company
- Analyzed memory growth segments, implemented a short-term mitigation, then expanded it into company-wide optimization
Analysis
After receiving the issue report, I checked the OOM error logs and confirmed that memory had peaked during that time window.

Issue report alongside the OutOfMemoryError log from the batch job.

Memory usage chart confirming the peak during that time window.
Beyond the immediate OOM, discovered the root cause: JVM default max heap size was misconfigured.

Analysis of the misconfigured JVM default max heap size.
Improvement
I improved the JVM memory options in the Dockerfile and shared the same pattern company-wide so it could be applied consistently.

Follow-up plan covering Xmx tuning, autoscaling, and log alerts.

Change request applying the JVM memory options in the Dockerfile.
After the infrastructure work, I confirmed on reprocessing that memory operated stably at up to 553MB.

Reprocessing run confirming stable memory usage up to 553MB.