Powering the Future [ _ ]

Tapad Engineering took to the skies and headed to Scala by the Bay, the largest Scala conference on the west coast. Scala is a powerful, expressive language that brings functional programming to the JVM. The San Francisco Bay Area is home to heavy hitters like Twitter, Uber, and Netflix. Tapad represented three strong with staff engineer Oleksii Iepishkin, and engineers Mark Canlas and Jeffrey Wang.


We enjoyed the company of other bright engineers who agreed that a typed and functional approach to problems is a fun and great way to scale. Scala makes correctness and conciseness easy to reach for so that side-effects can be managed and understood more easily. With a core that is easy to reason about, engineers can move on confidently to tackle problems like real-time and highly parallel processing of big data. Scalding author Oscar Boykin discussed the future of core functional types in Algebird, probabilistic data structures, and how the Aggregator type helps Twitter tackle counting in big data. We make extensive use of Scalding at Tapad to power our Device Graph, so thank you to Oscar and the team at Twitter.

The Scala ecosystem is growing to address both problems large and small. Li Haoyi showcased new features in Ammonite, a modern take on the Scala REPL, now with scripting support. From Alex Archambault, we saw Jupyter Scala, a Scala kernel for the interactive notebook platform Jupyter. Both tools are great in helping explore the expressive bits of Scala in much finer-grained detail. Maybe your next shell script will feature type safety and immutability.

Another recurring theme was Scala’s role in machine learning. This year, many were looking to type safe DSLs as a way of reducing the error-prone boilerplate in Spark jobs. Run-time errors cluster computing can be costly given that the iteration speed is usually on the order of hours and days. Less time fighting with code and run-time errors means more time spent solving problems in the domain and diving deep into the data.

Kelley Robinson helped demystify the infamous monad and Adelbert Chang shared his love of higher-kinded types. The amount of functional constructs out there can be intoxicating, helping grow the vocabulary of patterns one has for software design. Many problems can be generalized far beyond a world of just objects, classes, and interfaces. Conference attendees envisioned of a day when FP would overtake OOP as the common currency, given the proliferation of big data and machine learning opportunities.


A famous uncle once said, “with great power comes great responsibility.” The reach of Scala’s power is as wide as it is deep, occupying the entire spectrum from code that looks like Java to code that looks more like Haskell. Navigating this mix between object-oriented and functional can be tricky for larger organizations that have engineers at differing levels of fluency with functional concepts. Several speakers shared their experiences in managing organizations rooted in Java and OOP that are now transitioning into a more functional mindset with Scala. Here at Tapad, we have Scala School and Technical Talks to help one another on the journey to more functional Scala.

Despite its challenges, the future of Scala is bright. It is a great joy for us at Tapad Engineering to use Scala as our primary language. There are a wealth of things to learn and use that can make you a happier, more productive engineer. Scala has a vibrant community eager to tackle the hardest of problems with correctness and elegance. Learning more about functional programming, types, immutability, and parallelism will change how you think about software for the better.

The weekend away out west was a great opportunity to relax and connect with like-minded engineers. It’s an exciting time to be a Scala developer. Congratulations to Adriaan Moors and the team at Lightbend for the release of Scala 2.12. Christmas came early!

If you’re interested in tackling large problems and learning Scala with us, check out our current career opportunities at Tapad!