We are really passionate about the Scala community, we want to help others learn and we love hearing stories from the amazing people contributing to the language. Mirco Dotta, is the Co-Founder of Triplequote, he started as a student of Martin Odersky and he definitely has a lot to be proud of in his career so far. In this exclusive interview with Signify he tells us more about this journey and his thoughts on Scala.
Tell us about your background what was it that sparked your interest in engineering?
As a kid I was an avid video games player and I was dreaming of building video games for a living. Hence, my initial interest in computers was uniquely due to their ludic aspect. The upside of this was that I quickly got comfortable with disassembling and assembling computers, since hardware upgrades were needed to maximise the graphical experience. Of course, this has nothing to do with the art of engineering, but it’s the curiosity to learn more about how computers and software are actually made that lead me to engineering.
What was it that made you take the step into using Scala as functional programming language?
I’ve been extremely fortunate to be a student of Martin Odersky at EPFL back in 2005. Martin used Scala to teach functional programming concepts to all 2nd year CS bachelor students, and that’s how I got hooked. Before knowing Scala I had been exposed to Java and C, but the elegance and readability of Scala made the other languages I knew look very cumbersome technologies. Things are different today, as new languages have appeared and Java has improved, but to me Scala is still on the front-seat of innovation and using Scala for development is very rewarding.
How do you feel Scala benefits the work you do?
In the past years I’ve been an active contributor to open-source projects, so I’m confident you can find bugs to blame on me!
On a more serious note, back in November 2016 I founded Triplequote together with Iulian Dragos and taken up the challenge of making Scala compilation as fast as Java. Why? Because during our years at Lightbend (formerly Typesafe) we have been hearing too many complaints about Scala compilation being slow and hampering the business. We love Scala, hence we decided to take action and help companies being successful with it. Today, thanks to Triplequote Hydra we can claim up to 6x compilation speedup on commodity hardware! Compiling Scala as fast as Java is definitely within our reach.
Is there anything which you feel helped you learn and progress your career in terms of the community e.g. meet-ups, conferences, courses? Are there any resources you would recommend?
Going to conferences has been a really good way to stay current with new developments in the Scala ecosystem and bring home ideas, patterns and best practices to apply at work. But when I need to master a concept or a technology I usually prefer to read a book or articles, as it allows me to proceed at my own pace. Three practical books that have made me a better software engineer are Java Concurrency in Practice, Clean Code, and Programming in Scala. While, if you like challenging yourself with more academic reads and you are interested in programming languages theory, I’d warmly recommend getting a copy of Types and Programming Languages by Benjamin Pierce.
You speak at many conferences, how do you feel these help you with your Scala work?
There is a lot of home preparation behind a presentation: one has to come up with content that is interesting and insightful, with the added challenge that it should be consumable by a broad audience. In fact, if you think you master a subject pretty well, sign yourself up for presenting it to your colleagues at work. Chances are that as you prepare the talk, you’ll learn aspects you have not considered before!
On top of that, standing in front of an audience can be intimidating. The first time I spoke at a conference (it was Scala Days 2011) probably wasn’t a disaster, but having butterflies in my stomach didn’t help. With time I got more relaxed and became more confident, and that helps making the "speaking at conference" experience more enjoyable for everyone.
Speaking at conferences made me a better communicator and a better professional overall.
What would you say has been the biggest challenge you have overcome in your career?
In both my academic and professional career, I’ve been very lucky to be surrounded by extremely talented persons. It’s truly great to have so many sources of inspirations right next to you, and you really get to push yourself out of your comfort zone. However, one can also feel the pressure of "having to overachieve". This sentiment can lead to both negative and positive emotional states, depending on how you process it. Learning to push yourself, while still accepting that failure can and does happen, is one of the most precious lessons I’ve learned. What’s key is to take the time to understand why things may have not worked out the way one expected, and do your best to improve on it.
Being the Co-Founder of Triplequote, what gave you the idea to put plans into action setting up the company?
As mentioned earlier, we created Triplequote because we want Scala to be successful in the enterprise. Businesses don’t really care about what language is being used, what matters is that value is delivered to customers faster than the competition. Scala makes it easy to write concise and correct software, and that is very relevant to the business. But, if a considerable part of the velocity gained thanks to the language is lost while waiting for the compiler, one gets to wonder if development teams are actually more productive with Scala. By using our Scala compiler, Triplequote Hydra, compilation time is drastically reduced, and hence developers’ productivity is no longer questioned.
Has Scala progressed as to how you thought it would when you started using it?
Aha! I have a funny story to share. Back in 2006 I was using Scala for a compiler construction assignment (I don’t remember what exact version of Scala I was using at the time, but probably Scala 2.1.x) and while compiling my program the Scala compiler crashed spectacularly. For some inexplicable reason, at the time I was not even considering the possibility that a compiler could have bugs, so I was more than certain the problem was in my code. Of course, I was wrong. Bugs exist in all software, compilers included! Scala has progressed immensely since I started using it and today it’s a very stable language. Bugs still exist of course, but to be honest I’m rarely (if ever) exposed to them. In fact, I’d really like to take the opportunity to thank the Scala team at Lightbend for the amazing work they have done on Scala in these past years: you rock!
What do you see for Scala in the future?
I’m convinced Scala will continue to grow in the areas of Machine Learning/AI and Data Science, which are sectors where Scala really shines. In fact, every month I find out about new companies that have selected Scala to innovate and disrupt their market. Furthermore, I believe it’s important for Scala to stay in the front seat of innovation, and I’m very excited to see how Dotty (often referred to as Scala 3) will mature. The Dotty features that I’m the most excited about is the Tasty intermediate representation, which is a solution to ensure compatibility across Scala versions (this means we won’t have to worry about binary compatibility of Scala libraries ever again!). Moreover, since Scala 2 should also support Tasty in a future release (maybe Scala 2.14), it will make the transition from Scala 2 to Scala 3 a lot simpler. One further important aspect of Tasty is that it will make it easier to write tooling for Scala. This also means there is a lot of work that we, as community, we will have to do. But, as far as I can tell, the future of Scala looks pretty bright to me!
Is there any advice you would give to someone starting a career in engineering?
Be curious, experiment, fail, learn and improve. Last but not least, try as much as you can to surround yourself with humble, intelligent, persons. Being the dumbest person in the room brings only benefits.