Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
From Java to Scala in Less Than Three Months
Alexander Kops
Started at Zalando in 2010
Delivery Lead, Brand Solutions
15 countries
3 fulfillment centers
16+ million active customers
2.2+ billion € revenue 2014
130+ million visits per month
...
Legacy Tech Stack
2008 - 2010
Legacy Tech Stack
Complete rebuild in 2010
Zalando Tech Employees
Radical Agility
Purpose
Autonomy
Mastery
Rules of P lay
Microservices
REST APIs
API First
SaaS principle
Cloud: Build on top of AWS
Brand Solutions
Formed in 2014
Creating a CMS for our fashion brands
Uploading their own content to the Zalando shop
Five ...
My Team’s Challenge
Build new analytics product
Gather + compute data from different sources
Potential future growth
Work ...
Why we chose Scala
Experience with the JVM
Works well with Java libraries
Mature ecosystem
Backed by Typesafe
Functional p...
Why we chose Play
Intuitive to use
Excellent performance
Extensibility
Backed by Typesafe
Scala: the Good Parts
Concise
Combines FP and OOP
Library design choices
Easy parallelization
Great DSLs for testing
Scala: the bad parts
Compilation times
Advanced language features add to compile time
scalac -Xshow-phases
But sbt’s incremental compilation he...
Language problems
The same thing can be written in many different ways
No canonical style guide
Allows “operator overloadi...
Introducing Scala
Steep learning curve
New language
Functional programming concepts
New frameworks
New build tool
Helping the transition
Assume 3-4 weeks overhead
Two weeks exclusively for learning
Encourage study groups
Bring in freela...
Provide material
Fitting projects
Prototypes
Greenfield projects
Modular projects: Layered approach
Two types of Scala converts
Using Scala as Java
Functional programming hipsters
About coding style
Develop own or embrace existing style guide
Pair programming and code reviews
Strict compiler settings
Tooling
IntelliJ > Eclipse IDE
sbt provides benefits over Maven and Gradle
Hiring Scala developers
Genuine Scala developers are rare
Senior Java developers eager to learn Scala
Provide internal tra...
Our application
Typesafe Stack in Zalando
40% of engineers want to learn Scala
>12 teams are developing in Play and Scala
>40 engineers
Fo...
Other applications
Merchant Center
Fraud analysis
Stylist website
A/B testing tool
Payment services
Play-Swagger
“API First” library for Play
Developed in-house by two engineers
Collaboration with Typesafe’s James Roper
ht...
Follow us
Tech Blog: tech.zalando.com
GitHub: github.com/zalando
Twitter: @ZalandoTech
Instagram: zalandotech
Upcoming SlideShare
Loading in …5
×

Zalando Tech: From Java to Scala in Less Than Three Months

4,431 views

Published on

Zalando's Alexander Kops (Delivery Lead, Brand Solutions) presented this talk for the Bern and Zurich Java Users Groups in November 2015.

Published in: Technology

Zalando Tech: From Java to Scala in Less Than Three Months

  1. 1. From Java to Scala in Less Than Three Months
  2. 2. Alexander Kops Started at Zalando in 2010 Delivery Lead, Brand Solutions
  3. 3. 15 countries 3 fulfillment centers 16+ million active customers 2.2+ billion € revenue 2014 130+ million visits per month 10.000+ employees, ~900 in tech Zalando at a Glance Visit us: tech.zalando.com
  4. 4. Legacy Tech Stack 2008 - 2010
  5. 5. Legacy Tech Stack Complete rebuild in 2010
  6. 6. Zalando Tech Employees
  7. 7. Radical Agility Purpose Autonomy Mastery
  8. 8. Rules of P lay Microservices REST APIs API First SaaS principle Cloud: Build on top of AWS
  9. 9. Brand Solutions Formed in 2014 Creating a CMS for our fashion brands Uploading their own content to the Zalando shop Five teams, 50+ people
  10. 10. My Team’s Challenge Build new analytics product Gather + compute data from different sources Potential future growth Work with legacy applications Be ready for cloud deployment
  11. 11. Why we chose Scala Experience with the JVM Works well with Java libraries Mature ecosystem Backed by Typesafe Functional programming good for parallelization
  12. 12. Why we chose Play Intuitive to use Excellent performance Extensibility Backed by Typesafe
  13. 13. Scala: the Good Parts
  14. 14. Concise
  15. 15. Combines FP and OOP
  16. 16. Library design choices
  17. 17. Easy parallelization
  18. 18. Great DSLs for testing
  19. 19. Scala: the bad parts
  20. 20. Compilation times Advanced language features add to compile time scalac -Xshow-phases But sbt’s incremental compilation helps!
  21. 21. Language problems The same thing can be written in many different ways No canonical style guide Allows “operator overloading” FP code can get unreadable
  22. 22. Introducing Scala
  23. 23. Steep learning curve New language Functional programming concepts New frameworks New build tool
  24. 24. Helping the transition Assume 3-4 weeks overhead Two weeks exclusively for learning Encourage study groups Bring in freelancers Incremental learning OO -> FP
  25. 25. Provide material
  26. 26. Fitting projects Prototypes Greenfield projects Modular projects: Layered approach
  27. 27. Two types of Scala converts Using Scala as Java Functional programming hipsters
  28. 28. About coding style Develop own or embrace existing style guide Pair programming and code reviews Strict compiler settings
  29. 29. Tooling IntelliJ > Eclipse IDE sbt provides benefits over Maven and Gradle
  30. 30. Hiring Scala developers Genuine Scala developers are rare Senior Java developers eager to learn Scala Provide internal trainings Spread the word that you are doing Scala
  31. 31. Our application
  32. 32. Typesafe Stack in Zalando 40% of engineers want to learn Scala >12 teams are developing in Play and Scala >40 engineers Four Typesafe-certified Scala and Play trainers in-house
  33. 33. Other applications Merchant Center Fraud analysis Stylist website A/B testing tool Payment services
  34. 34. Play-Swagger “API First” library for Play Developed in-house by two engineers Collaboration with Typesafe’s James Roper https://github.com/zalando/play-swagger
  35. 35. Follow us Tech Blog: tech.zalando.com GitHub: github.com/zalando Twitter: @ZalandoTech Instagram: zalandotech

×