[MM’s] Engineering Weekly #31 — Simplify or Die: Rethinking Our Tools, Frameworks and Tech Habits
How complexity kills developer flow — and why teams are reclaiming simplicity, from dropping Docker to optimizing Spring and rediscovering Kotlin.

🎯 Featured Article
🐋 We Finally Ditched Docker for Local Development — Here’s the Shocking Reason Why
After years of “Dockerize everything,” one team pulled the plug — finding that Docker had become a performance and complexity bottleneck. Their switch to native installs, Makefiles and lightweight environments restored speed and simplicity to local dev.
⬢ Docker’s convenience can mask serious productivity losses as projects scale.
⬢ A well-designed local setup often outperforms containerization for small-to-medium teams.
⏩ TL;DR (Quick Recap)
⬢ Teams are simplifying workflows to cut overhead and cognitive load.
⬢ JVM frameworks are evolving for faster startup, stronger security and modern lifecycle management.
⬢ Kotlin’s steady rise continues with better interoperability and ecosystem maturity.
⬢ AI tooling is maturing — but infrastructure, not models, remains the strategic edge.
☕ JVM Corner
🧠 JUnit 6.0.0 Ships with Java 17 Baseline, Cancellation API, and Kotlin suspend Support
JUnit 6 unifies its ecosystem, introduces fail-fast testing, Kotlin suspend support and performance telemetry for modern JVM development.
⬢ Raises the baseline to Java 17 and Kotlin 2.2, aligning with modern JVM standards.
⬢ Improves developer insight with JFR listeners and cancellation APIs.
⚡ Performance Improvements in JDK 25
The latest JDK brings major performance boosts via scoped values, better GCs and compiler optimizations.
⬢ Consistent focus on low-latency and throughput improvements across the stack.
🧩 From Python to Kotlin: A Transition Worth Making
Teams migrating from Python to Kotlin cite better type safety, performance and maintainability.
⬢ Kotlin offers a smoother onboarding for developers from dynamic languages.
⬢ Encourages more robust backend systems with modern async capabilities.
🔧 How to use the Develocity IntelliJ plugin to speed up Gradle builds with real-time insights
A new IntelliJ plugin provides live Gradle build analytics for faster feedback loops.
⬢ Visualizes build performance bottlenecks in real time.
🧱 Testing the untestable
A pragmatic guide to handling static methods and legacy Java code.
⬢ Demonstrates Mockito-based static method mocking and design pattern fixes.
🧩 Merging Hilla into Flow: Embracing the Java core
Vaadin consolidates its frameworks, doubling down on Java-native UI.
🍃 Spring Updates
🚀 How I Cut Our Spring Boot Startup Time from 40 Seconds to 8
A hands-on optimization story tackling bean initialization and unused dependencies.
⬢ Pinpoints JPA and Spring Security as common startup slowdowns.
⬢ Demonstrates measurable wins from incremental tuning.
⚙️ @PostConstruct Is Dead in Spring Boot 3 — Here’s What You Should Use Instead
A concise guide on modern lifecycle hooks in Spring Boot 3.
⬢ Details the shift to ApplicationRunner, SmartLifecycle and context-aware initialization.
⬢ Encourages explicit, testable startup behavior.
🔐 Multi-Factor Authentication in Spring Security 7
Spring Security introduces native MFA support for stronger authentication flows.
⬢ Combines password, device and biometric factors.
⬢ Marks a major step toward user-centric app security.
🐦 Spring for Apache Kafka 4.0.0-RC1 is Available Now
New release candidate brings more robust consumer handling and flexible interceptors.
⬢ Improves error resilience and monitoring.
🔍 Extra Reads
AI & Infrastructure
🤖 What McDonald’s Can Still Teach Us About the AI Race — The true power in AI lies not in models, but in controlling compute, energy and distribution.
🧩 Claude Skills are awesome, maybe a bigger deal than MCP — A simple, file-based approach to defining agent capabilities and tool usage.
💭 The AI-collapse pre-mortem — A balanced critique of LLM hype and the practical advances in real AI domains.
Culture & Reflection
🧠 Are we living in a golden age of stupidity? — Technology’s paradox: smarter tools, dumber habits.
💼 You can have two Big Things, but not three — A sharp reflection on time, ambition and life trade-offs.
🍟 What Happened to Apple’s Legendary Attention to Detail? — An opinionated critique of Apple’s declining design rigor.
Developer Tools & Legacy Wisdom
💡 Vibing a Non-Trivial Ghostty Feature — Building complex features with AI agents in the loop.
🛠️ Scripts I wrote that I use all the time — Practical automation nuggets from years of scripting.
⌨️ The IDEs we had 30 years ago… and we lost — A nostalgic look at developer productivity before GUIs took over.
Architecture & Design
🌐 How and Why Netflix Built a Real-Time Distributed Graph — Building a graph architecture to unify member activity across Netflix’s expanding platform.
💭 Programming With Less Than Nothing — A thought-provoking dive into combinatory logic as the essence of computation.
Originally posted on marconak-matej.medium.com.