Adriaan Moors, Keynote speaker at Scala Days Berlin as well as Scala Days New York is Team Lead at Lightbend. We were lucky enough to have the amazing opportunity to ask Adriaan a few questions about Scala, the community and his experience. We hope you enjoy this interview and thank you Adriaan.
- Tell us about yourself, what’s your background, when did you fall in love with software engineering?
My dad introduced me to programming at a pretty young age -- I’ve been programming since I could read. First Basic on a Philips MSX, then Borland C 4.5 and Turbo Assembler on an 8086. Later, in high school, C++ and Java.
- What made you adopt Scala as your functional language? How did you learn Scala?
I was in grad school, interested in datatype generic programming. I looked at Haskell, but I’m an OO programmer at heart, so I decided to add the missing feature to Scala, rather than give up OO and use Haskell. That’s also how I got involved with Scala: by implementing type constructor polymorphism, now over 10 years go.
- What's it like working for Lightbend?
I’m really grateful to be part of this group of people, led by caring and experienced executives, to bring the technology we’re passionate about to the greatest possible audience.
- What were the first functional languages you started using?
Haskell & Scala
- What do you think the future holds for Scala?
- What is your favourite aspect on working with Scala?
I love working on the tools that allow other programmers to realize their goals. My main motivator is the hope that we can make them more productive, and that they enjoy programming in Scala.
- How do you stay up to date on all things functional and new technologies?
I’m lucky to be in our Lausanne office, which is on the EPFL campus. This gives me easy access to the research happening on the other side of the street. Of course, also The Internet.
- How do you feel we can ensure that a positive difference is made to the gender gap in the tech world?
I don't know, but I'm happy to share my thinking on the topic of these two questions. Before jumping in, I’d like to acknowledge that the problem is larger than the gender gap: there are many underrepresented groups in tech. While it’s important to understand and address the different challenges faced specifically by each group, I hope that, conceptually, the ideas apply across the board.
I think an important first step is to emphasize and cultivate empathy. Why are some groups of people not as represented in our community? This is an important question that we must try to answer, in part by looking inward, but more importantly by inviting those groups of people and listening to how we can do better. We won’t make any progress by taking our own experience as the measure of all things, and expect other people to “simply” deal with the status quo. Clearly, the things that worked for us don’t work for everyone, or we wouldn’t be having this problem.
I’m sure everyone benefits from inviting and enabling everyone to join our community (well, at least everyone who in turn welcomes everyone else into the community). For selfish reasons, it should be clear that this is important for the health and the productivity of the community. To get a stable “system”, it’s better to have a feedback loop that tends to remove inequality (divergence), rather than exaggerating it. For a creative community, the more different backgrounds, the better.
Concretely, this means becoming more aware of our biases, acknowledging the head start we received due to some lucky coincidence, and see how we can help level the playing field.
I’m also baffled that it’s apparently controversial to suggest that we should just be nice to each other. Until we all agree on some basic rules on civility, I do think we will keep excluding people that (understandably) just don’t want to deal with this nonsense, the drama and the outrage. I know I’d rather not.
(In our shared reality, we can of course disagree on how to solve a certain problem, or even what the problem is, but it’s also simply more efficient to do this collaboratively, focusing on the challenge at hand. It’s worth taking the time to understand where someone is coming from, and to express yourself in a way that’s more likely to be heard and understood. This will result in a friendlier as well as a more productive debate.)
- Do you attend many community events and conferences? If yes, what would be your favourite one and why?
You can’t make me choose!
- Do you have a favourite speaker - who would it be and why?
Conor McBride. Because I only understand about half of what he says, while enjoying all of it.
- What advice would you give someone who wants to learn Scala?
As with any new topic, go easy on yourself. In total, there’s a lot to learn, but you can be very productive with a small set of features. Focus on learning the simple (core!) parts first. They go a long way! As soon as you’re comfortable, find something that interests you and start coding, do exercises, and keep an eye out for patterns of how to express the intent of your code more clearly. Be curious. Ask questions. Have fun!
- What’s the toughest interview process you have been part of?
This one :-)