For Julia programmers who work in industry. What do you work on?

I work in a medical equipment company, with surgical systems using computer vision. I, and to a smaller extent some of my teammates, use Julia for R&D tasks: data processing, data analysis, testing, image/video processing, image simulation, algorithm development/prototyping, and deep learning. Some projects involve cool stuff like CUDA, OpenGL, C++ libs wrapping, Python calling, Pluto notebooks, and integration with Blender. All of this is research code, not production code.

12 Likes

I think heā€™s focused on average user experience, rather than requirement of absolute real-time response. If long tails are rare, then it doesnā€™t impact the experience much.

Iā€™m retired now but I developed a complete suite of software in Julia that allowed a RigidBodyDynamics.jl model of a super-large, very complicated robot arm to be built directly from a postgres database schema, and a measurement system that received data from telemetry of said robot so its state variables could be estimated. I had the real-time data streamed into a QuestDB timeseries database. There was an Unscented Kalman Filter, various message filters, and lots more. It was structured into 12 packages, each containing many modules. It was all tested on a deterministic real-time computer made by Concurrent. My pride and joy. When I left the company it was scrapped.

25 Likes

Cool! Do you have anything published on this work, Iā€™d be keen on reading if you do!

At the end of this page are a few links to a paper, talks and presentations: GitHub - JuliaRobotics/RigidBodyDynamics.jl: Julia implementation of various rigid body dynamics and kinematics algorithms

1 Like

During my last two years I was so busy writing internal reports and reports for the project backers that I didnā€™t manage to get a journal paper written. Besides, all I did was use the fantastic libraries and packages produced by the Julia community. I did really struggle with multi-threading at a time Julia was relative less mature during the phase just after 1.0 was released. I tried several multi-tasking, multi-threading and parallel processing techniques. No comparisons with other ways of solving the problem could be done in the time I had. Happy to discuss more if you like via a pm. I should add that I had a brilliant student from Bath University UK working on a placement for one year, who deserves much credit.

5 Likes

Blender integration sounds cool, could you elaborate on that?

Iā€™m an advanced process control (APC) engineer who became an industrial data science consultant (itā€™s not much of a stretch because APC is essentially proto-AI/ML). For process engineering problems, the data often isnā€™t very informative, and coupling that with constant equipment degradation and repair makes it difficult to build black box models with any real predictive power. Being able to build models by starting with first principles and then using ML to fit the unknown bits has been the secret to my success in many projects where other teams of data scientists (focusing only on black box models) failed. Such models offer much more detailed insight into how the equipment is performing (so thereā€™s often spin-off benefits where a model gives you more information than what it was built for) and are more robust, having better for prediction outside of the training data.

I adopted Julia for my work in 2017 and never looked back, itā€™s almost as if the language was designed around me as the main user persona. Building first-principles models requires custom code which is very slow in Python/MATLAB. Julia however, has amazing performant simulation tools that integrate seamlessly with ODE solvers and optimizers which reduce the additional cost of using custom models to essentially zero.

37 Likes

Iā€™m a retired antenna engineer previously employed by a commercial satellite manufacturer. I started using Julia circa 2013 or so (version 0.3) and became an instant enthusiast. I used it for processing antenna pattern data, smoothing shaped reflector surfaces, post-processing data from commercial electromagnetic simulators, and similar tasks.

I retired in 2019, and in 2020 and 2021 I consulted for my old employer, working on algorithms for dynamic beam forming for multi-beam, digital beam forming satellites. I did all the work in Julia, with much of the optimization performed using JuMP.

Iā€™m now developing open-source antenna engineering software in Julia and having lots of fun doing it!

42 Likes

@PeterSimon Can you say something about how you navigate around IP from your old employer now that you are developing open source software?

1 Like

This: Running Julia inside Blender through VSCode (using PythonCall/JuliaCall) - #6 by cdsousa

However more recently Iā€™ve been using another experimental workflow: Iā€™ve modified Blender to allow launching the GUI from the ā€œBlender as a Python Moduleā€ bpy module. Hence I import it with PythonCall.jl from any Julia session and get a full Blender GUI running inside Julia which I can interact with.

5 Likes

I stay away from topics that are proprietary to my previous employers. Anything I develop now is either focused on a new topic, or is a completely new implementation in Julia that is based strictly on material that has been published in the open literature.

15 Likes

We mainly use Julia for drug discovery applications. Also the odd time series task here and there. Weā€™re entirely focused on ML so itā€™s not always a great fit but with some love it usually turns out well. :blush:

13 Likes

I work at Terra AI (https://terraai.com/) as a computational scientist, and we use use Julia a lot for simulation and (Bayesian) inference. I spent a lot of my PhD programming with Julia, so itā€™s great to keep using it!

9 Likes

@soel Good point! I believe it would be very useful to have a native Julia interface, especially for lower-timeframe applications, without relying on Python. There seems to be an actively supported package, Jib.jl. Interestingly, some time ago, I was developing MarketDataFeeds.jl to interface with IBKR and Polygon (I had some internal code for order placement, too). However, it is currently unmaintained. Anyway, it was quite tedious to try to get the IBKR API connections right!

3 Likes

I am also a trader. I try to sneak in Julia to side / non-critical tasks where I can. and for a while I was using MLJLinearModels.jl as the core linear fitter. although most components are still in Python | C++

8 Likes

Indeed, Itā€™d be useful to have a robust API 100% in Julia, as well as a facility to perform quant analysis!
Btw, thank you for pointing out Jib.jl.

I am a scientist at a contract research institute in Norway. I stumbled upon Julia 0.4 way back then.

I use Julia mainly to write code to combine measurement data (from field or lab) with a finite element model.

The mathematical and numerical techniques involved imply that

  1. Many partial derivatives must be computed
  2. For some other reasons too, existing finite element codes can not easily be adapted.

Our code is largely a reimplementation of an earlier code written in Matlab. Performance was OK, but the project ultimately failed because of the amount of work involved in implementing any new element.

Julia has incredible capabilities for automatic differentiation (natural looking source code, fast machine code, flexibility in choice of automatic differentiation techniques and combination thereof). This is a perfect match for the large numbers of derivatives that various solvers may require, and this means that reimplementing each finite element is not as costly as would have been in e.g. Fortran.

Likewise, metaprogramming allows to spare finite element developers from considerable boilerplate.

So now, 20 years later, and thanks to Julia, we are back in business!

With my employerā€™s blessing, the code is under MIT license: this makes it easier to seek grants from Europe Horizon research funding system, or from Norwayā€™s Research council: open research is increasingly a criteria for their selection of projects to fund. Itā€™s also way easier to let a student do a project on the subject.

23 Likes