Not many components live on their own, without any dependencies on others. Instead of tightly coupling them, we can improve the separation of concerns with dependency injection (DI).
Read More

JShell, the Java REPL

 · 9 min
Many languages contain a REPL, a Read-Evaluate-Print Loop. It evaluates declarations, statements, and expressions as they are entered and immediately shows the results. With Java 9, we finally got one too.
Read More
Git is packed with features and some can be very intimidating. So we resort to just using the same few commands we can memorize, over and over again.
Read More
Immutability is one of the core concepts of functional programming. “Fully” functional programming languages support it by design, at a language-level. But in Java, we need to design and implement it ourselves, at code-level.
Read More
By designing and writing code, we naturally start to develop our own personal style and habits, good and bad. The more code we write with the intent to improve, the better we’ll get eventually.
Read More
Java 8 gave us the Stream API, a lazy-sequential data pipeline of functional blocks.
Read More