What happens when a small team of very experienced developers with no real functional programming experience decides to use Clojure to run a core system architecture component?
This is the story of a 2 years journey of my team with Clojure, sharing learnings, epiphanies, success as well as some of the challenges we encountered.
2. Back in 2012 we had…
• A new product idea
• Lean team: 2 developers
• both with 10+ years of experience
• both polyglot
• no Functional Programming experience
3. Product Architecture
Website AggregatorJson
{
name: "Luca"
claims: []
address: "42 Magic Road"
abi: "123456"}
[{"premium": "150", "brand": “foo"}
{"premium":"180", "brand":"blah"}]
xml
xml
xml
xml
xml
insurer#1
insurer#4
insurer#2
insurer#3
insurer#5
4. Why Clojure?
• The problem we had to solve was data
transformation: FP was a pretty good match
• Mature stack(JVM, repos, Java libraries)
• Language with huge growth potentials
• Strong Clojure support within the organisation
13. tl;dr
• If you are doing some sort of data transformation you
should look at Clojure
• Clojure code is terse and expressive
• Mature ecosystem: JVM, repos, libraries
• Personal growth: people are challenged by the new
paradigm, solid CS concepts took back into the game
• Business impact: functional composition + parallelism
will give you a competitive advantage