~/blog_
Deep dives on the bugs and design decisions I hit building full-stack systems — Java, Spring Boot, JPA, React and JavaScript.
·2 min read
React stale closures in useEffect: the bug and three fixes
An effect that runs once captures the first render's values forever. Here's why your interval keeps logging 0, and the three correct fixes — plus the one anti-fix that trades a stale value for an infinite loop.
React.jsJavaScriptHooks
·2 min read
The N+1 query problem in JPA/Hibernate, and how to actually fix it
The most common performance bug in JPA apps: one query becomes 1+N. Here's why it happens, the four real fixes, and the two traps (MultipleBagFetchException and in-memory pagination) that catch people applying them.
JavaJPAHibernatePerformance
·2 min read
Why your Spring @Transactional silently does nothing
@Transactional relies on AOP proxies. Self-invocation, private methods, and checked exceptions are the three reasons it quietly fails to roll back — with no error at all.
JavaSpring BootJPA