Your application should not be responsible for Database Migrations.

Classic database/schema migration patterns are a nightmare for modern systems. As Software Engineers push for a more distributed ecosystem, one is tempted to ask: “Why should the code that manages one system, live with the application code of another system?” What pattern is this? My first exposure to this pattern was with Rails in 2013. With Rails/ActiveRecord, when your application boots up it checks the database schema against a list of schema changes you’ve defined and ensures the database meets those requirements. “But Brad, this is really convenient”. I agree that it is really convenient when you’re working with a...

List Processes by Memory Usage in Linux

I recently was running into an issue where a Systemd service was crashing due to an out of memory error. I was pretty sure that my project wasn’t taking up too much memory, but I wasn’t certain what was. Thankfully, with the use of some command-line wizardry, I was able to find out that Hyper (the terminal app) was using almost 3gb of memory! ps -e -o pid,vsz,comm= | sort -r -n -k 2 We have two commands here, each with their own man page should you want to learn more. The first command is ps which displays information about...

What Is Gradle Scan?

A Gradle scan is a build scan that provides insights into how your build ran and why it did what it did. Once you’ve generated a scan, you can share that with other members of your team (or anyone who may help diagnose issues) via a URL. Here’s a sample scan! Heads Up!Scans are supported with Gradle 4.3+ out of the box. Most new projects are going to be using this, but you may need to update OR install the Gradle Scan plugin in your existing project. Creating a Gradle Scan Creating a Gradle scan is extremely easy! In your...

Setting Up Sentry Logging with Scala / Play

Sentry is an error tracking service that helps you quickly track errors in many environments. While it’s not the only option for error reporting (Rollbar comes to mind since they sponsor most of the podcasts I listen to), Sentry is my favorite option. Today, we’re going to setup Sentry reporting for our Scala / Play application. Unfamiliar with Play?The Play framework is a web framework for building predictable and scalable applications. Featuring support for Java and Scala, the Play framework is a great consideration when choosing your next framework. Creating an account First, you’ll need to create a free account...

Adapting Traits for Kotlin

Traits are a pattern introduced in Scala (at least, this was my first introduction to them) that help avoid deep class hierarchies in favor of composition. If you don’t have Scala experience, but do have Java experience, you can treat this similarly to Java 8 Interfaces. However, I still prefer to call them Traits. Although Traits have first-class support in Scala, Kotlin does not directly have Traits. However, Kotlin does support default interface implementations, just like Java 8. It’s fair to assume then, that Kotlin can have a similar concept of Traits only constructed from Interfaces with default implementations. In...

Developer Burnout: 9 Tips to Help

Burnout happens — especially developer burnout. It’s unfortunate, but a fact of life. However, it seems to happen to developers (and maybe Doctors, but you’re not my target audience) far more often than other professions. It may manifest in the emotion of dread, knowing you have to go in to work tomorrow. Or it may manifest in sadness, just thinking about staring at code. Or it may possibly manifest as anger, thinking about the project that won’t seem to work. Unfortunately, we’ve found that ping-pong tables and dart boards aren’t the cure for developer burnout. Instead, we’ve seen that being...

Comparing Kotlin to Scala

Kotlin to Scala. Scala to Kotlin. Two contenders for my heart. In the left corner, we have the new comer! Weighing in at just over 1.2MB — The Ambassador of Android: Kotlin! And in the right corner, we have the long-time favorite, weighing in at just over 5.3MB — The Archduke of Akka, The Sultan of Spark: Scala! If you’ve made it this far through my silliness, you’re likely comparing Kotlin to Scala for your next project. There’s definitely some key takeaways from the above paragraph that may influence your decision. However there’s more to each language than I could...