Skip to content

Artificial Intelligence and Machine Learning

LakeTide uses Julia for data science and product development

LakeTide is a Swedish data science consultancy and product development company. They specialize in helping large industry players quickly move data-driven ideas into production.

LakeTide Chief Technology Officer Robert Luciani explains:

“We use Julia in nearly every customer engagement and in all of our product development. One of our most exciting projects right now centers on adding AI capabilities to low-power devices. The more intelligence we can fit onto those devices, the better!

We’ve been using Julia since 0.4.5, but many of us come from a systems programming background, so if we didn’t use Julia today, we would probably still be using C and (with much trepidation) something like Scala, F#, or probably Python.

Julia was compelling from the day we discovered it. The fact that it was so syntactically expressive while at the same time being computationally intelligible felt completely unique. You can grab mathematical pseudocode from a science book and basically copy it verbatim in Julia, and on the first run it would run both as intended and blazing fast. Ultimately, it let our programmers move seamlessly between being mathematicians and computer engineers.

We build on a lot of powerful community packages such as DataFrames.jl, Flux.jl, and Images.jl, but also smaller ones like UnicodePlots.jl. And yet, Julia lends itself so well to writing original algorithms that we’ve ended up bundling many nice private-packages for doing things like analyzing binary telecom trace-files, generating street-map images, and tracking objects in video feeds.

As an example, we had one project for which we had to develop a custom ASN1 parser for telecom data. The manufacturer’s reference Perl script was so intimidatingly complicated that we decided to just replicate functionality and get things working without caring about the efficiency of data types and structures. After a few days when the prototype Julia parser was finished, it ended up being 20x faster than the reference parser and much simpler, so we left the Julia program that way and moved on to more important things!

Another benefit of Julia is the community. Julia community members across Discourse, GitHub, and Slack are extremely welcoming and helpful. It’s very easy to feel the “pulse” of various initiatives and quickly get involved in the development of Julia and its packages.

Julia has helped us increase our effectiveness as programmers and allows us to become productive quickly in a number of domains that normally require a large up-front investment in study time. A good example is GPU programming where we can begin loading data into CuArrays.jl for performance improvements before learning how to write custom kernels using CUDAdrv.jl.

Now we are putting a lot of focus on implementing state-of-the-art deep learning architectures using Flux.jl for deployment on a wide variety of computers and devices. So far the experience has been phenomenal.

We bring in a number of master’s students every year to write their theses here at LakeTide and the first two things they are tasked with is switching to Dvorak and learning how to program in Julia. So far, everyone has loved it!”