I am happy to announce that we are looking for a 6-month internship/temp position in our team at Axpo Solutions AG.
We are a small team specializing in algorithmic trading in the European energy market. Our office is located in Baden, Switzerland. We design and develop automated trading strategies in Julia and Python, utilizing market and fundamental data to create models based on technical analysis and time series forecasting.
In the last year, we have spent a lot of time bringing the Python code base to the same level as the Julia one. Unfortunately, now the tide has turned and the Julia code-base is lacking some of the new features.
As you can see, we have a different kind of the two-language problem
Therefore, we are looking for a Julia programmer who will support us in improving our existing Julia libraries for strategy development and data analysis. Tasks can include enhancing the existing code base, implementing CI/CD pipelines in Azure DevOps, porting Python code to Julia, or adding new features.
That’s really cool to see that a big and old place like Axpo seems to do a fair bit in Julia! Would be really interesting to hear your experiences with Julia in production, what kind of use cases favour Julia vs Python and vice versa etc etc. (to the extent that you can share!)
Hi @nilshg
To my knowledge, between 5-10 people are using Julia for production purposes, out of >5k employees and some hundred programmers. So it is not as established as you might think. The decision to use Julia is mostly considered controversial for non-users. Even though since 2020, maybe even as far back as fall 2019, I consider it a legitimate option to consider for professional use and the go-to language in my academic field (optimization, MPC, …).
The main reason why it is not used more widely is that there are already established (as in used for years, by a lot of programmers and most importantly, used in many projects within the company) programming languages that can do the job. For most applications within our company, where Julia could be used (data science, optimization, financial modeling), you don’t need to use Julia, as you can make it work with Python as well, or even R .
However, there were some applications where Julia gave us a competitive edge and where the use of Julia was fundamental to our success. We have created a tool using nonlinear optimization, automatic differentiation, spline interpolation, and Montecarlo simulations, where the use of Julia was fundamental to making it performant, comprehensible, and keeping the code base small (~10x fewer code lines than the C# version).
Concerning the use cases. It always depends on the situation, but I can give you a non-exhaustive list of my personal preferences.
I prefer Julia over Python for:
The “feeling” (consistency of language, more enjoyable to code, the community)
Everything related to Optimization or set computation. The support in this field with (JuMP.jl, Ipopt.jl, LazySets.jl to name only a few) is amazing)
Data Analysis and plotting. DataFrames.jl is so much more convenient, easier and faster to use and learn than Pandas. Also, the plotting tools in Julia are amazing. Sometimes some specific features are missing, but all in all, it just feels “better” to use (my favorites are Plots.jl, PlotlyJS.jl and Makie.jl)
multiple dispatch and its type hierarchy
Academic work that does not involve hardware interaction
Non-standard Machine learning projects
Properly learn how to code
I prefer Python over Julia for:
VS Code support (go to definition, context searches, …)
Pre-commit hooks
Unit-tests infrastructure
3rd party libraries, there is a proper package for everything
Basic Machine learning projects
Quickly learn how to code
I hope I could answer your question to some extend, happy to elaborate if not.