The power of today’s Open Source libraries is integration, and the Cats ecosystem is a great case-in-point. Combining Http4s, fs2, and Doobie makes for a powerful recipe that is ridiculously easy to use.
At Scale By the Bay, Senior Scala Evangelist at Nasdaq Alexander Ioffe will present a talk "Quill + Doobie = Better Together". In advance of the talk, we spoke with Alexander about his love for Scala, how he became a Quill maintainer, his talk and how he is bringing Quill enthusiasts together as a part of the event's Unconference track.
Tell us a little bit about your background: how did you get interested in software engineering and data specifically?
In terms of software, Java was my first proficiency, but Scala was my first love. In terms of data, Hadoop and Spark are the former and latter respectively. After using 'map' the first time, I never wanted to write another loop again. After using 'flatMapGroups' the first time, I never wanted to write another reducer.
I became acquainted with Scala about five years ago, not through Spark but through Slick. At the time, my choice was either to figure out how to wrangle several hundred multi-page SQL queries into some kind of system with polymorphic abstractions... or resign to becoming a near-full-time DBA. Since the latter option was unacceptable, I learned Slick and Scala at the same time. To say this was challenging is an understatement, but the move was more than worth it. Over the coming years, my product increased in complexity by a factor of three. The amount of generated SQL-code that it produces today would normally require a dedicated team of SQL coders to effectively manage by hand.
Later I became acquainted with Quill and immediately saw how it does mostly the same things as Slick but in a far easier way. Well... time to rewrite the codebase!
By the time that was underway, I was a Quill maintainer.
What has your professional journey been like? Any learnings you can share with those just starting theirs?
In my first two years in the Software industry (back in 2011), I became very adept at writing UIs in a language called Flex. Then the mobile-revolution started and Apple's refusal to support Flash as a platform made most of these skills obsolete - that was really painful. I learned not to become overly attached to a single platform or framework and resigned to cynicism.
In further retrospect, however, that might not be the right lesson to learn. Things like TypeScript came along later that had very similar ideas to the ones that Flex had. I think the ultimate lesson is that the good parts of languages eventually make their way into future ones, even in times of significant upheaval. This is a microcosm of a much greater pattern, that the world generally moves in a positive direction, although sometimes it is very hard to see how.
So next time you're cynical of mankind and literacy statistics don't convince you to be hopeful, compare programming languages across large gaps in time. You’ll be happy to be living in 2019!
What is your role at NASDAQ and what is the most exciting thing you are working on at the moment?
At Nasdaq, I try to Dogfood Quill to the extreme. I use it with both traditional RDBMS products as well as Spark. This commonality allows a whole lot of so-called "synergies" because I can train newcomers in a single skillset and share much of the same code. Normally these two use-cases require vastly different codebases.
What will you talk about at Scale By the Bay?
With my co-presenter Rob Norris [Editor note: Rob, unfortunately, will not be presenting at Scale the Bay this year], we've created something that builds on the strengths of our respective frameworks and opens the door to many possibilities. Quill's strength is functional query-composition whereas Doobie's strength is functional effect composition. Getting both of these things right is a feat that very few database-interaction libraries have achieved. At the talk, I'm going to put all of these pieces together and show you how to code a restful service using Quill, Doobie, FS2, and Http4s which is surprisingly, very, very simple.
Whom would you like to meet at the conference?
I'd like to meet with Li Haoyi as well as Flavio Brasil who I just met face-to-face for the first time today. I am putting together a pseudo Quill Meetup during the unconference track for any Quill users to come in and discuss their use-cases and see how to improve the library.
Don't miss Alexander Ioffe at Scale By the Bay. Book your ticket now.