When I was learning Clojure for the first time, I had two references that I found myself reading every single day. The first resource is a fantastic guide by Daniel Higginbotham called Clojure for the Brave and True. The second resource that I found myself using allowed me to immerse myself into the Clojure community and […]
Kotlin, despite being an object oriented language, offers a ton of support for Functional paradigms. One of the most common functional paradigms involves using a combination of map, filter, and reduce on Iterable types. However, Kotlin uses extension functions on Java Collections to create these functions in their standard library. That means that when you call […]
Behavior-Driven Development (BDD) has became quite a popular strategy for writing tests in the past ten or so years. BDD is a style of test-writing that focuses on test cases that flow like natural English sentences. Expekt is one such library for writing JUnit assertions in Kotlin. Combining JUnit and Expekt you can achieve results […]
Scrum is designed to be simple. It is a series of lightweight components that, when followed, have been show to improve team workflow. Scrum’s approach focuses on respect for people and self-organization to adapt to unpredictability and the difficulties that come with solving complex problems. The Values of Scrum Scrum focuses on a set of […]
Kotlin has a concept known as sealed hierarchies (several other languages implement this feature as well). In Kotlin, we can generate a sealed hierarchy through the use of sealed classes. What are Sealed Classes? Sealed classes are basically an extension to an enum class. They offer similar functionality with a few key differences. Similarly: The […]
After reading Spotify Lead Designer Tobias van Schneider’s outstanding post on side projects, I wanted to expand upon my feelings about them as well. Hopefully, if you’re not working on something outside of your normal day-to-day, you can find the motivation to start a side-project after reading this. There are really only four benefits I see to […]
A companion object sits inside a class definition and houses all the static methods which that class will own. Let’s convert a piece of Java code to Kotlin so you can see what I mean.