SlideShare a Scribd company logo
|> inside the 
corporation 
Andre Pemmelaar @QuantixResearch
About Me 
Andre Pemmelaar 
• 5-yrs Matsushita Financial System Solutions (Panasonic) 
• 12 Buy-Side Finance 
• 7-yrs Japanese Gov’t Bond Options Market Maker (HNL) 
• 5-yrs Statistical Arbitrage (Global Equities) 
• Low latency & Quantitative Algorithm 
• Primarily use mixture of basic statistics and machine 
learning 
• R,Python,Java, F# …. and of course JULIA! 
• Prefer function programming approach (F#, Scala, Haskell) 
@QuantixResearch
My road to
My road to using 
• Started reading about it in late 2012 ~ early 2013 
• Wrote to John Myles White in Spring 2013 
John Myles White 3.20.2013 at 9:38 am | Permalink 
Hi Andre, 
! 
In the abstract, I think Julia is the ideal language for doing both prototype modeling and transition to 
production. 
! 
But Julia is still very immature as a language, so I would not recommend it being used in production 
for another year or so. In addition, if you’re looking for an existing toolbox of models, R is the way to 
go. Even Python has still not caught up with R in this regard. 
@QuantixResearch 
• Decided it was too early -> kept following, but didn’t use
My road to using 
• Revisited ~ early 2014 
• Began trying some simple projects 
• Reinforcement Learning using tictactoe.jl 
• Found the code very easy to follow 
• Started using the DataFrame.jl 
• Found it to be very stable and close enough to Panda (python) 
• Started writing first serious attempt at something important in May 2014 
• Orderbook simulation frame work 
• Joined new company 3 months ago - using Julia almost exclusively for 3 
month on real world problems in Finance 
@QuantixResearch
My Moment 
Realized I could… 
• Remain mostly functional in my approach to programming (but not 100%) 
• Use fast for loops wherever appropriate (used in a lot of time series simulations) 
• Easily code linear algebra, matrix calculations for machine learning, etc.(native in 
Julia) 
• Do it all it parallel (note: Julia’s parallel not yet 100% there yet) 
• All of the above can be done in Python (Sci-kit, Numpy, etc) but often faster and 
with slightly less code in Julia 
@QuantixResearch
carefully 
insert here
Some background 
on my company 
• One of Japan’s largest financial front-office system solution providers 
• Started off in derivative valuation and derivative OMS systems 
• Now offers an entire suite of products aimed at Japanese mega banks, and 
2nd-tier financial organization 
• About 600 employees (about 60%~70 are technical) 
• Primarily production language is company isJava, with some done in C++, 
or C 
• Quantitative analysis is done in Java (heavy duty large data set analysis) or 
R for smaller datasets) with a few using Python users 
• Most quants are focused on Risk or Valuation, but a smaller team (mine) 
makes use of predictive analytics, statistics, and ML to enhance various 
algorithms 
@QuantixResearch
Nothing sells like success 
• It helps to have a successful example to sell it internally 
• In my case, during my first week I found some R code that was 
used every night (had lots of loops = ripe for porting to Julia) 
• Re-wrote in Julia -> 
• R took about 15:46m 
• Java about +/- 20s 
• Julia about 4.3 secs 
• Note: Better Java programmer recently bested Julia version (3.9 
secs)
On boarding new users
Making the first 
experience easier 
• Set the expectation correctly 
• Documentation is sparse. 
• The stuff that is out there may not be current 
• Julia is fast, but can lose a lot of speed if coded improperly 
@QuantixResearch 
Poor Performance 
Better Performance
Roadblocks 
I asked Julia colleagues, “What are/were the 3 
biggest hurdles” 
#1 Lack of documentation 
#2 Lack of current documentation 
#3 Package breaking/incompatibility on update 
No one said bugs in base code, or lack of 
some critical feature. Everyone wants correct, 
examples of “here’s how you do this” 
to initial adoption
Roadblocks 
Really just two problems 
1.Documentation 
2.Update Chaos 
to initial adoption
DIY Documentation 
• Julia base documentation is good 
• The package’s docs vary greatly 
• The one great example is Gadfly 
• Code, output, & explanation 
• Not so great doc ex: DataFrame 
• No longer current 
• Many common tasks missing 
• Create you own documentation 
• The single most difficult part of 
learning Julia is the lack of 
current correct examples 
• IJulia is fantastic for creating 
these! 
• My Advice 
• Initially target early users 
cases 
• DIY Document anything 
people are struggling with 
@QuantixResearch
Decide on the 
environment/tools 
IJulia 
LightTables + Jewel 
@QuantixResearch
Decide on the 
environment & tools 
• Julia is still new enough that small upgrades can 
break critical packages 
• As the initial “Julia person” in your organization 
you will often be called on to solve various 
problems 
• Solving new users problems is much easier if they 
are using the same tools and packages. Don’t 
underestimate this! 
• At the beginning sharing exactly the same 
environment will make things smoother 
• Recommend one person download the 
installers 
• Create an thorough install read me file 
Our stack: 
• Julia 3.1 
• IJulia 
• Light Tables 
@QuantixResearch
How did we do? 
• 6 people set out to learn Julia 
• 4 of them are now using it everyday 
• 1 is using it occasional along with Perl 
• 1 gave up 
• Why did that one give up? 
• He as serious Java skills and good R 
• Started with Julia Studio (bad 1 st 
experience) 
• Didn’t know about Light tables 
• Is physically separated from the rest 
of us and thus didn’t get initial support 
to get through the initial low 
productivity period 
@QuantixResearch
Julia: Real example 
Rejection Order Algorithm 
• The model: 
• Determine if a order to lift a quote (execute against someones else's quote) 
in an OTC markets will be rejected 
• Background: OTC market are “over the counter” and depending on the 
rules, the quoter can reject your order if it suits them 
• Julia tools used: 
• DataFrame.jl, StatsBase.jl, DecisionTrees.jl, SVM.jl 
• Classification problem: 0 not rejected, 1 rejected 
• Still on-going project: current best is about 0.54 Kappa
Julia: Real example 
Rejection order algorithm con’t 
Very unbalanced classes (0.1% are rejected) 
• Regime shift means it needs to be somewhat 
adaptive 
• Required us to change some of the libraries 
• One of Julia’s great strength’s is that you can easily 
changed the libraries to suit you needs
What makes Julia great? 
• Speed? Julia is quite good, but Java can be as fast or faster. C 
++ and C are faster 
• Time to get a model out? Largely dependent on your 
knowledge of the tools you are using 
• Parallelization? Not really. Still kinda raw. Memory usage can be 
a bit of an issue. 
• Safer code via Functional approach? No. One can code 
functionally but doesn’t enforce it 
• Easy to code and to access/read/understand others code? Yes
What makes Julia great? 
√ Java 
Δ Python (Cython,etc) 
Δ R (vectorized) 
When coded well, it 
Clear, concise 
code that can easily 
be changed 
is very fast 
Great ability to mix 
loop based & 
matrix/vector 
operations 
Δ Java (not really) 
√ Python 
Δ Java (not concise) Δ R (only vectorized) 
√ Python 
Δ R (only R code. 
not C or C++)
Thank You!

More Related Content

PPTX
Natural Language to Visualization by Neural Machine Translation
PDF
Learning to Translate with Joey NMT
PDF
Sequence Modelling with Deep Learning
PDF
Building a Neural Machine Translation System From Scratch
PPTX
Deep Learning for Machine Translation
PPTX
Thomas Wolf "Transfer learning in NLP"
PDF
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
PPTX
Building Continuous Learning Systems
Natural Language to Visualization by Neural Machine Translation
Learning to Translate with Joey NMT
Sequence Modelling with Deep Learning
Building a Neural Machine Translation System From Scratch
Deep Learning for Machine Translation
Thomas Wolf "Transfer learning in NLP"
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
Building Continuous Learning Systems

What's hot (20)

PPTX
NLP Transfer learning platform
PPTX
Swift: A parallel scripting for applications at the petascale and beyond.
PDF
Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016
PDF
Deep learning for NLP and Transformer
PPTX
Coding For Cores - C# Way
PDF
NLP using transformers
PPTX
Feature Engineering for NLP
PDF
A Folksonomy of styles, aka: other stylists also said and Subjective Influenc...
PDF
Rajat Monga, Engineering Director, TensorFlow, Google at MLconf 2016
PPTX
Deep learning on Hadoop/Spark -NextML
PPTX
Introduction to Transformer Model
PPTX
DAWN and Scientific Workflows
PDF
Deep Learning as a Cat/Dog Detector
PDF
[Impl] neural machine translation
PPTX
Tensorflow Ecosystem
PDF
Keras Tutorial For Beginners | Creating Deep Learning Models Using Keras In P...
PDF
Are High Level Programming Languages for Multicore and Safety Critical Conver...
PPTX
Introduction to Keras
PDF
Practical Deep Learning
PDF
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
NLP Transfer learning platform
Swift: A parallel scripting for applications at the petascale and beyond.
Ryan Curtin, Principal Research Scientist, Symantec at MLconf ATL 2016
Deep learning for NLP and Transformer
Coding For Cores - C# Way
NLP using transformers
Feature Engineering for NLP
A Folksonomy of styles, aka: other stylists also said and Subjective Influenc...
Rajat Monga, Engineering Director, TensorFlow, Google at MLconf 2016
Deep learning on Hadoop/Spark -NextML
Introduction to Transformer Model
DAWN and Scientific Workflows
Deep Learning as a Cat/Dog Detector
[Impl] neural machine translation
Tensorflow Ecosystem
Keras Tutorial For Beginners | Creating Deep Learning Models Using Keras In P...
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Introduction to Keras
Practical Deep Learning
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
Ad

Viewers also liked (19)

PDF
Data analysis with R and Julia
PPTX
High performance computing language,julia
PDF
XML Tools for Perl
PDF
GoOpen/Nordic Perl Workshop 2009
PDF
Everything wrong with statistics (and how to fix it)
PPT
julia-Latest Programming language
PPTX
Julia meetup bangalore
PDF
All About that Bayes: Probability, Statistics, and the Quest to Quantify Unce...
PPTX
Portunus webinar: Floating port technologies could revolutionize container co...
PPTX
XML's validation - XML Schema
PPTX
Introduction to Julia Language
PDF
Julia - Easier, Better, Faster, Stronger
PDF
Introduction to Julia for bioinformacis
PDF
Spark MLlibではじめるスケーラブルな機械学習
PDF
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
PDF
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
DOCX
Advanced Production Control Using Julia & IMPL
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
PDF
Julia Computing - an alternative to Hadoop
Data analysis with R and Julia
High performance computing language,julia
XML Tools for Perl
GoOpen/Nordic Perl Workshop 2009
Everything wrong with statistics (and how to fix it)
julia-Latest Programming language
Julia meetup bangalore
All About that Bayes: Probability, Statistics, and the Quest to Quantify Unce...
Portunus webinar: Floating port technologies could revolutionize container co...
XML's validation - XML Schema
Introduction to Julia Language
Julia - Easier, Better, Faster, Stronger
Introduction to Julia for bioinformacis
Spark MLlibではじめるスケーラブルな機械学習
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
Advanced Production Control Using Julia & IMPL
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Julia Computing - an alternative to Hadoop
Ad

Similar to Julia language: inside the corporation (20)

PDF
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
PDF
Lessons learned after 190M lessons served
PPTX
Specification by example
PPTX
2CPP01 - Intro to Module
PDF
Agile Software Development
PDF
Random thoughts and dev practices / advices to build a great product
PPTX
Shipping code is not the problem, deciding what to ship it is!
PPTX
Untangling - fall2017 - week 7
PPTX
Software development fundamentals
PDF
Maintaining Large Scale Julia Ecosystems
PPTX
Student Survey Nov 2022
PDF
Better User Onboarding (for web & mobile products)
PDF
Data science unit 1 By: Professor Lili Saghafi
PPT
Android Developer Skills, Techniques, and Patterns
PPTX
It's XP Stupid (2019)
PDF
Deep learning in production with the best
PPTX
JIRA 101 - Over(our)head No Longer!
PDF
It's XP, Stupid
PPTX
Afganistan Culture Shock
PDF
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Lessons learned after 190M lessons served
Specification by example
2CPP01 - Intro to Module
Agile Software Development
Random thoughts and dev practices / advices to build a great product
Shipping code is not the problem, deciding what to ship it is!
Untangling - fall2017 - week 7
Software development fundamentals
Maintaining Large Scale Julia Ecosystems
Student Survey Nov 2022
Better User Onboarding (for web & mobile products)
Data science unit 1 By: Professor Lili Saghafi
Android Developer Skills, Techniques, and Patterns
It's XP Stupid (2019)
Deep learning in production with the best
JIRA 101 - Over(our)head No Longer!
It's XP, Stupid
Afganistan Culture Shock
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau

Recently uploaded (20)

PDF
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
PPTX
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
PPTX
1_Introduction to advance data techniques.pptx
PPTX
STUDY DESIGN details- Lt Col Maksud (21).pptx
PPTX
MODULE 8 - DISASTER risk PREPAREDNESS.pptx
PPTX
iec ppt-1 pptx icmr ppt on rehabilitation.pptx
PPTX
IBA_Chapter_11_Slides_Final_Accessible.pptx
PPTX
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
PDF
Launch Your Data Science Career in Kochi – 2025
PPTX
ALIMENTARY AND BILIARY CONDITIONS 3-1.pptx
PDF
“Getting Started with Data Analytics Using R – Concepts, Tools & Case Studies”
PDF
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
PPT
Chapter 3 METAL JOINING.pptnnnnnnnnnnnnn
PPT
Chapter 2 METAL FORMINGhhhhhhhjjjjmmmmmmmmm
PPTX
Global journeys: estimating international migration
PPTX
oil_refinery_comprehensive_20250804084928 (1).pptx
PPTX
Major-Components-ofNKJNNKNKNKNKronment.pptx
PPTX
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
PPTX
IB Computer Science - Internal Assessment.pptx
PPTX
The THESIS FINAL-DEFENSE-PRESENTATION.pptx
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
1_Introduction to advance data techniques.pptx
STUDY DESIGN details- Lt Col Maksud (21).pptx
MODULE 8 - DISASTER risk PREPAREDNESS.pptx
iec ppt-1 pptx icmr ppt on rehabilitation.pptx
IBA_Chapter_11_Slides_Final_Accessible.pptx
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
Launch Your Data Science Career in Kochi – 2025
ALIMENTARY AND BILIARY CONDITIONS 3-1.pptx
“Getting Started with Data Analytics Using R – Concepts, Tools & Case Studies”
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
Chapter 3 METAL JOINING.pptnnnnnnnnnnnnn
Chapter 2 METAL FORMINGhhhhhhhjjjjmmmmmmmmm
Global journeys: estimating international migration
oil_refinery_comprehensive_20250804084928 (1).pptx
Major-Components-ofNKJNNKNKNKNKronment.pptx
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
IB Computer Science - Internal Assessment.pptx
The THESIS FINAL-DEFENSE-PRESENTATION.pptx

Julia language: inside the corporation

  • 1. |> inside the corporation Andre Pemmelaar @QuantixResearch
  • 2. About Me Andre Pemmelaar • 5-yrs Matsushita Financial System Solutions (Panasonic) • 12 Buy-Side Finance • 7-yrs Japanese Gov’t Bond Options Market Maker (HNL) • 5-yrs Statistical Arbitrage (Global Equities) • Low latency & Quantitative Algorithm • Primarily use mixture of basic statistics and machine learning • R,Python,Java, F# …. and of course JULIA! • Prefer function programming approach (F#, Scala, Haskell) @QuantixResearch
  • 4. My road to using • Started reading about it in late 2012 ~ early 2013 • Wrote to John Myles White in Spring 2013 John Myles White 3.20.2013 at 9:38 am | Permalink Hi Andre, ! In the abstract, I think Julia is the ideal language for doing both prototype modeling and transition to production. ! But Julia is still very immature as a language, so I would not recommend it being used in production for another year or so. In addition, if you’re looking for an existing toolbox of models, R is the way to go. Even Python has still not caught up with R in this regard. @QuantixResearch • Decided it was too early -> kept following, but didn’t use
  • 5. My road to using • Revisited ~ early 2014 • Began trying some simple projects • Reinforcement Learning using tictactoe.jl • Found the code very easy to follow • Started using the DataFrame.jl • Found it to be very stable and close enough to Panda (python) • Started writing first serious attempt at something important in May 2014 • Orderbook simulation frame work • Joined new company 3 months ago - using Julia almost exclusively for 3 month on real world problems in Finance @QuantixResearch
  • 6. My Moment Realized I could… • Remain mostly functional in my approach to programming (but not 100%) • Use fast for loops wherever appropriate (used in a lot of time series simulations) • Easily code linear algebra, matrix calculations for machine learning, etc.(native in Julia) • Do it all it parallel (note: Julia’s parallel not yet 100% there yet) • All of the above can be done in Python (Sci-kit, Numpy, etc) but often faster and with slightly less code in Julia @QuantixResearch
  • 8. Some background on my company • One of Japan’s largest financial front-office system solution providers • Started off in derivative valuation and derivative OMS systems • Now offers an entire suite of products aimed at Japanese mega banks, and 2nd-tier financial organization • About 600 employees (about 60%~70 are technical) • Primarily production language is company isJava, with some done in C++, or C • Quantitative analysis is done in Java (heavy duty large data set analysis) or R for smaller datasets) with a few using Python users • Most quants are focused on Risk or Valuation, but a smaller team (mine) makes use of predictive analytics, statistics, and ML to enhance various algorithms @QuantixResearch
  • 9. Nothing sells like success • It helps to have a successful example to sell it internally • In my case, during my first week I found some R code that was used every night (had lots of loops = ripe for porting to Julia) • Re-wrote in Julia -> • R took about 15:46m • Java about +/- 20s • Julia about 4.3 secs • Note: Better Java programmer recently bested Julia version (3.9 secs)
  • 11. Making the first experience easier • Set the expectation correctly • Documentation is sparse. • The stuff that is out there may not be current • Julia is fast, but can lose a lot of speed if coded improperly @QuantixResearch Poor Performance Better Performance
  • 12. Roadblocks I asked Julia colleagues, “What are/were the 3 biggest hurdles” #1 Lack of documentation #2 Lack of current documentation #3 Package breaking/incompatibility on update No one said bugs in base code, or lack of some critical feature. Everyone wants correct, examples of “here’s how you do this” to initial adoption
  • 13. Roadblocks Really just two problems 1.Documentation 2.Update Chaos to initial adoption
  • 14. DIY Documentation • Julia base documentation is good • The package’s docs vary greatly • The one great example is Gadfly • Code, output, & explanation • Not so great doc ex: DataFrame • No longer current • Many common tasks missing • Create you own documentation • The single most difficult part of learning Julia is the lack of current correct examples • IJulia is fantastic for creating these! • My Advice • Initially target early users cases • DIY Document anything people are struggling with @QuantixResearch
  • 15. Decide on the environment/tools IJulia LightTables + Jewel @QuantixResearch
  • 16. Decide on the environment & tools • Julia is still new enough that small upgrades can break critical packages • As the initial “Julia person” in your organization you will often be called on to solve various problems • Solving new users problems is much easier if they are using the same tools and packages. Don’t underestimate this! • At the beginning sharing exactly the same environment will make things smoother • Recommend one person download the installers • Create an thorough install read me file Our stack: • Julia 3.1 • IJulia • Light Tables @QuantixResearch
  • 17. How did we do? • 6 people set out to learn Julia • 4 of them are now using it everyday • 1 is using it occasional along with Perl • 1 gave up • Why did that one give up? • He as serious Java skills and good R • Started with Julia Studio (bad 1 st experience) • Didn’t know about Light tables • Is physically separated from the rest of us and thus didn’t get initial support to get through the initial low productivity period @QuantixResearch
  • 18. Julia: Real example Rejection Order Algorithm • The model: • Determine if a order to lift a quote (execute against someones else's quote) in an OTC markets will be rejected • Background: OTC market are “over the counter” and depending on the rules, the quoter can reject your order if it suits them • Julia tools used: • DataFrame.jl, StatsBase.jl, DecisionTrees.jl, SVM.jl • Classification problem: 0 not rejected, 1 rejected • Still on-going project: current best is about 0.54 Kappa
  • 19. Julia: Real example Rejection order algorithm con’t Very unbalanced classes (0.1% are rejected) • Regime shift means it needs to be somewhat adaptive • Required us to change some of the libraries • One of Julia’s great strength’s is that you can easily changed the libraries to suit you needs
  • 20. What makes Julia great? • Speed? Julia is quite good, but Java can be as fast or faster. C ++ and C are faster • Time to get a model out? Largely dependent on your knowledge of the tools you are using • Parallelization? Not really. Still kinda raw. Memory usage can be a bit of an issue. • Safer code via Functional approach? No. One can code functionally but doesn’t enforce it • Easy to code and to access/read/understand others code? Yes
  • 21. What makes Julia great? √ Java Δ Python (Cython,etc) Δ R (vectorized) When coded well, it Clear, concise code that can easily be changed is very fast Great ability to mix loop based & matrix/vector operations Δ Java (not really) √ Python Δ Java (not concise) Δ R (only vectorized) √ Python Δ R (only R code. not C or C++)