Colin Breck does not need much introduction. A Staff Software Engineer at Tesla, Colin works on distributed systems for the monitoring, aggregation, and control of distributed, renewable-energy assets. With almost two decades of experience in developing time-series infrastructures for the monitoring and control of industrial applications, he previously worked on the PI System at OSIsoft, including the time-series database and publish-subscribe infrastructure. You can find his thoughts on software, engineering, and teams at blog.colinbreck.com.
In advance of his talk “Patterns for Streaming Telemetry with Akka Streams” at Scala Days in New York on June 21st, we spoke with Colin and asked him about his software engineer career, his passion for Scala and his plans for Scala Days.
What’s your background and how did you become a software engineer?
In university, I studied Mathematics and Engineering, a hybrid degree focused on process engineering, optimization, and control. In graduate school, I got interested in programming through developing dynamic process simulations and empirical models for fault-detection and condition-based maintenance. After my experiences in graduate school, I wanted to get a job that involved programming, but also a job with a connection to process engineering. I started my career building software systems for the monitoring and control of industrial applications, and I have continued working in this area ever since. I enjoy the engineering and systems-thinking involved in building and operating distributed systems, and systems that involve streaming data, like telemetry.
Why did you pick Scala and what kind of problems does it solve for you?
I began using Scala somewhat by accident. I started a new job a couple of years ago and two of my colleagues were interested in using Akka for a new project. At the time, I was new to both Akka and Scala, and even the JVM. I was interested in applying actor-model programming to industrial IoT applications after doing some reading on Microsoft Orleans. I had also worked on stream-data systems my whole career and I was eager to use Reactive Streams and a functional programming language in the context of these systems. Akka combined all of these aspects, as well as tools for distributed computing, and it fit the problem space that I was working in exceptionally well. Essentially, I came to Scala through Akka. The more that I use Scala, the more I like it. I enjoy the pragmatic nature of Scala in that it can be both object-oriented and functional, and it can work with the huge ecosystem of Java libraries. For those interested, I wrote about my initial impressions of Scala soon after I started using it (http://blog.colinbreck.com/my-initial-impressions-of-scala/).
Who should attend your talk at Scala Days and why?
My talk is intended to be introductory and practical. If you are new to Scala or Akka, you should find it useful. Even if you are familiar with Scala and Akka, but you are new to building applications for stream processing, or if you are unclear what the strengths of streams are relative to actors, this talk should be valuable.
Whom would you like to connect with at the conference?
There are a number of people in the Scala and Akka communities that I have not met before that I am looking forward to meeting. I am also looking forward to catching up with friends. For me, it is always great to catch up with members of the Akka Team to discuss what we have both been working on.
If you could invite one person to Scala Days, who would that be and why?
If I could only invite one person, it would be one of my teammates at work, so that after an interesting talk or hallway conversation, we could bounce ideas off of each other as to how we might improve the systems that we work on, or solve some of the challenging technical problems that we have. I am happy to say that one of my colleagues will be joining me in New York.
Don’t miss Colin’s talk “Patterns for Streaming Telemetry with Akka Streams” at Scala Days in New York on June 21st. Book your ticket now.