What Makes an Internship Successful?

I have never had an internship. In fact, while I was an undergraduate in university, I never even had a summer job related to engineering or software development. I worked at a living-history museum for three summers, giving guided tours, performing artillery demonstrations, and playing bagpipes all day. It was…

Partitioning Akka Streams for Scalability and High-Availability

In an earlier article, I detailed a number of techniques that can be used to maximize the throughput for individual Akka Streams. In a subsequent article, I also explored how an Akka Stream can be internally partitioned, in order to improve throughput. The techniques presented in these articles primarily involved…

Partitioning Akka Streams to Maximize Throughput

In an earlier article, I detailed a number of techniques that can be used to maximize the throughput for Akka Streams. The article focused on improving the throughput of individual streams and the techniques mainly involved, but were not limited to, maximizing concurrency. A topic that I did not explore…

From a Time-Series Database to a Key Operational Technology for the Enterprise: Part III

This three-part series expands on a talk that I gave at a conference focused on time-series data in 2018. This three-part series is focused on the challenges of elevating a time-series database from being just an IT application, used in the data center, to a critical operational technology, used throughout…

From a Time-Series Database to a Key Operational Technology for the Enterprise: Part II

This three-part series expands on a talk that I gave at a conference focused on time-series data in 2018. The first article in this series explored challenges related to time when elevating a time-series database from simply an information technology, to being an operational technology, used through the enterprise. In…

From a Time-Series Database to a Key Operational Technology for the Enterprise: Part I

This three-part series expands on a talk that I gave at a conference focused on time-series data in 2018. Many people are familiar with using a time-series database for collecting metrics from servers, applications, databases, and services running in a data center. A time-series database can provide valuable insights into…

Maximizing Throughput for Akka Streams

The Akka Streams API is fantastic for building scalable applications that involve streaming workloads. It provides high-level semantics that naturally describe these workloads, and it handles the dynamics inherent to these systems, resulting in applications that are reliable and resilient. If you are not familiar with the Akka Streams API,…

The Importance of Agency

Dan Pink's Drive is one of my favourite books. I also really like his RSA talk on the same subject. Pink argues that people are happy, engaged, productive, and creative when they are intrinsically motivated, as opposed to being motivated extrinsically by money, fear, punishment, or shame. He argues that…

Scala's Future.successful: Do Not Block Your Future Success

I want to raise awareness of a simple mistake that can be made with the successful method of a Scala Future. A Future is a placeholder object for a value that may not yet exist. It is used for performing operations concurrently, in a non-blocking manner, and it enables scaling…

Integrating Akka Streams and Akka Actors: Part IV

I expand on these concepts in my Reactive Summit presentation. In the first article of this series, I demonstrated the most basic patterns for integrating Akka Actors and the Akka Streams API. In the second article, I began developing an example to show how actors compliment streams, providing fault-tolerance and…