RSSAmplifier

Blog

Saile IT

Saile IT

saile.itRSS feed ↗11 posts

Latest posts

The fading mental model of understanding software

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

Most bugs aren't hard to fix

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

On 1,145 pull requests per day

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

Wikis don't organize themselves

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

Quick tip: faster Spring Boot tests with better test contexts

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,

RestTemplate was never deprecated

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

Stop "Springifying" your unit tests

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

On not knowing your Java API's

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

Migrating a silly weekend project to Quarkus 3

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

Java might eventually get null-restricted types

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

In the wild: Java's Optional for control-flow

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_