Your first Gradle task in 2025
Best practices in Gradle have changed quite a few times over the years, but the online tutorials are rarely updated. Let's review what is recommended as of Gradle 8, in 2025.
Best practices in Gradle have changed quite a few times over the years, but the online tutorials are rarely updated. Let's review what is recommended as of Gradle 8, in 2025.
Docker offers two ways to control what is executed when a container starts, ENTRYPOINT
and CMD
. Often, they are confused and misused.
MongoDB stores all its information in its own binary format called BSON. Lately, I've been writing my own implementation of BSON, and so I've been studying its specification. Here are a few things I learned about BSON documents.
Which Kotlin test framework should you use in 2025? Is there still room to innovate?
Sets are one of the most basic data structures of modern programming. Unlike arrays, sets require the data to confirm to a few invariants. Let's review what they are, and what happens when we break them.
Angular and Compose are both declarative UI frameworks and can both target the web ecosystem. Still, their approach is very different. Let's take a look at the similarities and the differences.
This week, we explore software architecture: interfaces, classes, objects and inheritance. We grade Kotlin through Java's prism, and thus mainly focus on object-oriented design.
Last week, we studied ways in which Kotlin improves upon Java when it comes to creating and destroying objects, eliminating Java pitfalls and footguns. This week, we discuss the common supertypes: Object
, Any
and Comparable
.
In the old days, programming languages would come and go. In the modern age, languages remain for decades as platforms on top of which new ecosystems are born, never to be dethroned. Java is the venerable sage of the server-side world—but new languages still attempt to take it on.
Throwable
is the supertype of all things that can be thrown. It often appears in codebases as an upper bound for error handling. Here's why you shouldn't do it.