SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
Experience Report: Scala
usage at Capital IQ ClariFI
        Paul Chiusano
About us

 We make software for quantitative investment management
 Sell to asset managers, hedge funds, etc
 Flagship product, ClariFI
    Portfolio optimization
    Model/factor building, backtesting
    Performance/risk attribution
    Building, simulating trading strategies
    Screening, event studies
    Overall data management
    Etc...
 Founded in 2000, acquired by Capital IQ (itself owned by
 S&P) in 2007
 Team size: 20 devs
Our first Scala project

  About 2 yrs ago, needed to rewrite/redesign PA backend
  FP a natural fit for the domain
  Scala the clear winner among JVM FP languages
Results highlights

  Scala implementation about 1/3 the LOC, comparable
  memory usage and speed
      More generic, modular
  New code had much better testing
      ScalaCheck a major win
      On a few occasions, discovered bugs in old
      implementation
  In production now for over a year
Since then

 Used Scala on another major project, more on the way
    Scala well-suited for backend / analytics layer
 Several other devs have now used Scala in some capacity
 Actively hiring people with Scala/FP experience
Scala: the good

  Scala/Java integration
  Basic functional idioms
  The type system
  Optional non-strict evaluation
Scala: the bad

  IDE support (as of 2008)
  Scala generics vs Java generics
  Limited, unpredictable type inference
  Function values are monomorphic
  Weak standard library
More on our environment

 Scala code in a separate project, exports a .jar
 Tools: Eclipse, NetBeans, Ant, ScalaCheck + JUnit, SBinary
 More recently: Vim, sbt, Scalaz
How hard is Scala to learn?

  Learning curve can be very gradual
     Type system probably biggest stumbling block
  Deep FP knowledge takes a long time to develop
     Requires shift in mindset
     Hard to find people with deep experience
Other takeaways

 Good design is hard
 Rewrites not always bad
Any questions?

 More info at my blog: pchiusano.blogspot.com
 Also on twitter: @pchiusano
 email: paul.chiusano@gmail.com
 Our website: clarifi.com

Weitere ähnliche Inhalte

Andere mochten auch

Man pro 06 pjm
Man pro 06 pjmMan pro 06 pjm
Man pro 06 pjmWisma 46
 
뮤지컬 장기려 그사람
뮤지컬 장기려 그사람뮤지컬 장기려 그사람
뮤지컬 장기려 그사람Ben Kim
 
기도함으로멈추다20110220
기도함으로멈추다20110220기도함으로멈추다20110220
기도함으로멈추다20110220Ben Kim
 
섬김이 교사들_나들목 중고등부 2011 여름 수련회
섬김이 교사들_나들목 중고등부 2011 여름 수련회섬김이 교사들_나들목 중고등부 2011 여름 수련회
섬김이 교사들_나들목 중고등부 2011 여름 수련회Ben Kim
 
뜻 있는 직업, 뜻 밖의 찾음
뜻 있는 직업, 뜻 밖의 찾음뜻 있는 직업, 뜻 밖의 찾음
뜻 있는 직업, 뜻 밖의 찾음Ben Kim
 
4개국어 쉽고 재밌게 배우기
4개국어 쉽고 재밌게 배우기4개국어 쉽고 재밌게 배우기
4개국어 쉽고 재밌게 배우기Ben Kim
 
평화와 한국전쟁
평화와 한국전쟁평화와 한국전쟁
평화와 한국전쟁Ben Kim
 

Andere mochten auch (10)

Adzzoo Flyer
Adzzoo FlyerAdzzoo Flyer
Adzzoo Flyer
 
Man pro 06 pjm
Man pro 06 pjmMan pro 06 pjm
Man pro 06 pjm
 
Semana Santa
Semana SantaSemana Santa
Semana Santa
 
뮤지컬 장기려 그사람
뮤지컬 장기려 그사람뮤지컬 장기려 그사람
뮤지컬 장기려 그사람
 
기도함으로멈추다20110220
기도함으로멈추다20110220기도함으로멈추다20110220
기도함으로멈추다20110220
 
섬김이 교사들_나들목 중고등부 2011 여름 수련회
섬김이 교사들_나들목 중고등부 2011 여름 수련회섬김이 교사들_나들목 중고등부 2011 여름 수련회
섬김이 교사들_나들목 중고등부 2011 여름 수련회
 
뜻 있는 직업, 뜻 밖의 찾음
뜻 있는 직업, 뜻 밖의 찾음뜻 있는 직업, 뜻 밖의 찾음
뜻 있는 직업, 뜻 밖의 찾음
 
4개국어 쉽고 재밌게 배우기
4개국어 쉽고 재밌게 배우기4개국어 쉽고 재밌게 배우기
4개국어 쉽고 재밌게 배우기
 
평화와 한국전쟁
평화와 한국전쟁평화와 한국전쟁
평화와 한국전쟁
 
Beyond Mere Actors
Beyond Mere ActorsBeyond Mere Actors
Beyond Mere Actors
 

Ähnlich wie Experience Report: Scala usage at Capital IQ ClariFI

Zalando Tech: From Java to Scala in Less Than Three Months
Zalando Tech: From Java to Scala in Less Than Three MonthsZalando Tech: From Java to Scala in Less Than Three Months
Zalando Tech: From Java to Scala in Less Than Three MonthsZalando Technology
 
Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprisesMike Slinn
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overviewRazvan Cojocaru
 
From java to scala at crowd mix
From java to scala at crowd mixFrom java to scala at crowd mix
From java to scala at crowd mixStefano Galarraga
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJRodrigo Lima
 
Ahmed Kamal - Software Development Expert
Ahmed Kamal - Software Development ExpertAhmed Kamal - Software Development Expert
Ahmed Kamal - Software Development ExpertAhmed Kamal
 
Refactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 RecapRefactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 RecapDave Orme
 
Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfssusercd195b
 
Experience Converting from Ruby to Scala
Experience Converting from Ruby to ScalaExperience Converting from Ruby to Scala
Experience Converting from Ruby to ScalaJohn Nestor
 
Scala in practice
Scala in practiceScala in practice
Scala in practiceTomer Gabel
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?Kasra Khosravi
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming LanguageHaim Michael
 
An Introduction to Scala
An Introduction to ScalaAn Introduction to Scala
An Introduction to ScalaBrent Lemons
 
Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageDerek Collison
 
Whitepages Practical Experience Converting from Ruby to Reactive
Whitepages Practical Experience Converting from Ruby to ReactiveWhitepages Practical Experience Converting from Ruby to Reactive
Whitepages Practical Experience Converting from Ruby to ReactiveDragos Manolescu
 

Ähnlich wie Experience Report: Scala usage at Capital IQ ClariFI (20)

Zalando Tech: From Java to Scala in Less Than Three Months
Zalando Tech: From Java to Scala in Less Than Three MonthsZalando Tech: From Java to Scala in Less Than Three Months
Zalando Tech: From Java to Scala in Less Than Three Months
 
Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprises
 
What is scala
What is scalaWhat is scala
What is scala
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overview
 
From java to scala at crowd mix
From java to scala at crowd mixFrom java to scala at crowd mix
From java to scala at crowd mix
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJ
 
Ahmed Kamal - Software Development Expert
Ahmed Kamal - Software Development ExpertAhmed Kamal - Software Development Expert
Ahmed Kamal - Software Development Expert
 
Refactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 RecapRefactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 Recap
 
Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdf
 
Experience Converting from Ruby to Scala
Experience Converting from Ruby to ScalaExperience Converting from Ruby to Scala
Experience Converting from Ruby to Scala
 
Scala in practice
Scala in practiceScala in practice
Scala in practice
 
Pranab Saha
Pranab SahaPranab Saha
Pranab Saha
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming Language
 
Scala and spark
Scala and sparkScala and spark
Scala and spark
 
Computer software specialists wikki verma
Computer software specialists   wikki vermaComputer software specialists   wikki verma
Computer software specialists wikki verma
 
An Introduction to Scala
An Introduction to ScalaAn Introduction to Scala
An Introduction to Scala
 
Ahmed Kamal CV
Ahmed Kamal CVAhmed Kamal CV
Ahmed Kamal CV
 
Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go language
 
Whitepages Practical Experience Converting from Ruby to Reactive
Whitepages Practical Experience Converting from Ruby to ReactiveWhitepages Practical Experience Converting from Ruby to Reactive
Whitepages Practical Experience Converting from Ruby to Reactive
 

Kürzlich hochgeladen

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Kürzlich hochgeladen (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Experience Report: Scala usage at Capital IQ ClariFI

  • 1. Experience Report: Scala usage at Capital IQ ClariFI Paul Chiusano
  • 2. About us We make software for quantitative investment management Sell to asset managers, hedge funds, etc Flagship product, ClariFI Portfolio optimization Model/factor building, backtesting Performance/risk attribution Building, simulating trading strategies Screening, event studies Overall data management Etc... Founded in 2000, acquired by Capital IQ (itself owned by S&P) in 2007 Team size: 20 devs
  • 3. Our first Scala project About 2 yrs ago, needed to rewrite/redesign PA backend FP a natural fit for the domain Scala the clear winner among JVM FP languages
  • 4. Results highlights Scala implementation about 1/3 the LOC, comparable memory usage and speed More generic, modular New code had much better testing ScalaCheck a major win On a few occasions, discovered bugs in old implementation In production now for over a year
  • 5. Since then Used Scala on another major project, more on the way Scala well-suited for backend / analytics layer Several other devs have now used Scala in some capacity Actively hiring people with Scala/FP experience
  • 6. Scala: the good Scala/Java integration Basic functional idioms The type system Optional non-strict evaluation
  • 7. Scala: the bad IDE support (as of 2008) Scala generics vs Java generics Limited, unpredictable type inference Function values are monomorphic Weak standard library
  • 8. More on our environment Scala code in a separate project, exports a .jar Tools: Eclipse, NetBeans, Ant, ScalaCheck + JUnit, SBinary More recently: Vim, sbt, Scalaz
  • 9. How hard is Scala to learn? Learning curve can be very gradual Type system probably biggest stumbling block Deep FP knowledge takes a long time to develop Requires shift in mindset Hard to find people with deep experience
  • 10. Other takeaways Good design is hard Rewrites not always bad
  • 11. Any questions? More info at my blog: pchiusano.blogspot.com Also on twitter: @pchiusano email: paul.chiusano@gmail.com Our website: clarifi.com