An engineer familiar with a system would have a rough understanding of how information flows, what components exist and how they interact. That intimacy with the code is often a big part of how quickly they can zoom in to adapt software to changing requirements. Today, LLM-powered agents can
Ask anyone writing software "what's the toughest bug you faced?" and they probably have something they won't quickly forget. The longer their career, the more interesting the anecdotes get. Timing issues, unable to reproduce mysteries or something which took days to figure out. If
Slide from opening keynote of Stripe Sessions 2025 There is a recent video of Patrick Collison at Stripe Sessions 2025 stating that in 2024 Stripe did on average 1,145 pull requests per day . Not just creating them, but actually finishing them; " fully shipped into production ". All whilst
For all its flaws, Wikipedia is one of the marvels of the modern world. Free access to encyclopedic information about pretty much any subject you can think of. Maintained by thousands of international volunteers around the clock. Everything tends to be categorized, organized and kept relatively up-to-date. You
When working on tests integrating with the Spring Boot framework, it's good to know at least the basics of how the (testing) framework operates. One of these basics is that every Spring Boot application works with an application context. This context defines "everything" – beans, properties,
Anyone who has worked with a code base backed by the Spring Framework has probably encountered RestTemplate at some point: a simple HTTP client which allows type-based consumption of HTTP endpoints: restTemplate.getForObject("https://some.api/employee/1", Employee.class); Circa 2017, Spring 5 introduced WebFlux . Reactive
One of the telltale signs of software with a disorganized test suite (and perhaps architecture!) is not being able to see a clear divide of the test pyramid (or diamond or whatever test strategy). This pyramid exists with all kinds of proportions and there are still wars being fought over
It's not hard to write really convoluted, unexpressive code and in terms of instructions-per-LOC, other (JVM) languages will run circles around Java. Newer versions of the JDK however, definitely added a lot of improvements. It's not realistic to keep up with each and every
Professionally, I work on adding business value by using software. Luckily I managed to transform my hobby into a job and occasionally still enjoy writing software and building things in my spare time. Sometimes those "things" are quite silly, like a website called this button does nothing . As
In 2009, Tony Hoare apologized for his billion dollar mistake: introducing the null reference to ALGOL W in 1965. He argues that null reference violations and crashing software must have cost businesses an amount of money in the order of a billion dollars due to missed revenue, time wasted and
Recently I came across a piece of code which looked something like this: final SomeStatus result = Optional.ofNullable(dataObject.someField) .map(someField -> STATUS_IF_SOME_FIELD_EXISTS) .orElse(STATUS_IF_SOME_FIELD_IS_MISSING); Meaning that for dataObject.someField not being null, it maps to STATUS_IF_SOME_FIELD_