A Software Engineer and Trainer with a passion for building systems and products that help others in meaningful ways, Alejandro Lujan is having fun with Big Data at Shopify and leads ScalaQuest, the game to learn Scala. He also organizes Scala Up North, the first and only Scala conference in Canada. He loves teaching and spent a few years working with Lightbend on training others on how to use Scala, Akka and Play to write elegant, solid and maintainable code.
In advance of his talk “ScalaQuest: The Scala Adventure” at Scala Days in New York on June 21st, we spoke to Alejandro about his background and role at Shopify, the challenges of teaching and learning Scala and how ScalaQuest these issues.
What’s your background and what does your current role involve?
I’ve worked mostly on JVM languages for the last 20 years. After getting a bachelor degree in Software Engineering, I co-founded a small consulting shop in Venezuela and moved on to do an MSc in Computer Science, followed by working on enterprise Java applications. In 2011, I was the second hire at a small startup building a greenfield project using Scala and Play. I then spent a few years developing, consulting and training through Lightbend. In October 2017, I joined Shopify as a Data Engineer. There, I build tools for processing a tremendous amount of data, for dozens of Data Engineers and Scientists across all teams of the organization.
What’s the biggest highlight of your career so far?
Training over a thousand people on how to use Scala, Akka and Play pushed me to learn more about these technologies than I ever dreamed of. It also sent me traveling to some very cool places, and let me work with very talented and curious people from which I learned tremendously.
My recent role in Big Data at Shopify is also a huge shift for me. I’ve had to learn technologies I’ve been curious about for years, and I’m surrounded by incredibly talented, kind and professional people. I am very lucky.
I know, I cheated by providing two highlights instead of one. Off by one error – they’re a thing. 🙂
Why did you pick Scala and what kind of problems does it solve for you?
I did not pick Scala. Scala picked me. Kind of.
When I got hired at Gush – a sadly defunct startup – as the second engineer, the decision was almost made to use Scala. I had barely heard of the language but was immediately attracted by its elegance. I was also drawn to Play as a web framework, so I fully supported the decision.
Having worked for many years with frameworks like Spring, Hibernate, Servlets, and Struts, I loved the simplicity Play offered. Its convention-over-configuration approach and the plug-and-play flexibility of its features and plugins made it super easy to adopt and solid enough to grow into over time.
What’s the most important challenge Scala developers are facing today?
Having trained many people on Scala, I’ve seen many teams struggle with a steep learning curve. Since Scala offers a mix of Object Oriented and Functional Programming, it’s very hard to please engineers with a strong background in either side. For some folks, it takes an open mind and a solid effort to appreciates the advantages of some parts of the language. It took me a while to use the more powerful tools the language offers. I’m a slow learner, which probably helped me become a better trainer.
What’s one thing that could address this challenge?
There is a lot of room for a variety of learning resources and activities, which could help ease adoption for different people. Personally, I’ve always believed in games as learning platforms, for a variety of reasons. This is why I’ve been working on ScalaQuest, the game to learn Scala.
Who should attend your talk at Scala Days and why?
In my talk, I will share the experience building ScalaQuest and some of the challenges we’ve faced.
Anyone who cares about learning or teaching Scala, driving adoption to these technologies, or simply likes games as educational environments, will get value from attending.
Whom would you like to connect with at the conference?
I love talking to people who are new to the ecosystem, and to learn about their success and failure stories.
And I’m certainly looking forward to chatting with the bright minds behind the core tools that make Scala such a great language to work with.