How to Get a Job Programming in Julia (the fastest growing language)

Logan Kilpatrick
Towards Data Science
8 min readJan 19, 2022

--

Image by Author

One of the most common questions I get via email and direct message is: “Hey, I really like programming in Julia, how can I get a job doing this full time?”

In this post, we will go over some of the things you should do if you are part of the Julia community (even if you just started using the language yesterday) and you want to get a job using Julia full time. We will go over three main points:

  • Building your Julia network 🕸
  • Create content 🎥 📝
  • Make Technical Contributions 📦

If you are interested in hearing from companies who are hiring Julia developers, tune into this Twitter Spaces recording and check the end of this article where I will list a bunch of companies hiring in the Julia ecosystem:

I want to also add a quick disclaimer that the ideas presented here are just a small subset of possible approaches. There really are a lot of different ways to get a job using Julia so I hope this article might give a unique perspective on one possible approach. If you have a different approach, please share it! Let’s help people get hired.

Why Julia ⁉️

Before we dive into the mechanics of getting a job using Julia, it is worth taking a high-level look at why Julia is well-positioned as a technical topic to help you get a job. First, companies are often interested in hiring folks who can bring a fresh perspective. Julia can be that fresh perspective! Additionally, there are so many opportunities in the Julia Ecosystem to make significant contributions that you might not find elsewhere, this can lead to lots of opportunities you might not have otherwise had. Last, the problems Julia is best suited to solve are areas where there will be a tremendous amount of job potential growth in the years to come. All of this is to say that Julia, in my opinion, is the best language to learn and contribute to if you want to differentiate yourself (even if you don’t get hired at an all Julia company or use Julia exclusively).

Building your Julia network 🕸

Much like getting a job in any domain, the more people you know, the better your chances of stumbling upon an amazing opportunity. This is the same in the Julia Community. But how can you start to build your network? The easiest way in my experience is to make high-quality contributions to the language and community. People respect those who come in and provide value (and this doesn’t just go for the Julia community).

In the latter parts of this article, we will talk more about specific ways to contribute to the community, but let’s stay focused on the networking part here. The single best networking opportunity every year is JuliaCon. Due to the ongoing pandemic, JuliaCon is online which means you get the opportunity to network with thousands of users and developers for free! JuliaCon features social events and as well as a wide array of technical talks. The important thing to remember is to attend technical talks and try to understand what people are using Julia for. Nothing tells someone you care about the work they do more than asking them interesting and well-thought-out questions. If you are shy, no need to do it live, you can always send someone a message or post on Discourse.

Check out the video above to get a sense of what JuliaCon is like and why you might want to attend.

In addition to connecting with the Julia community at JuliaCon, there are also a ton of other places you can hang out like Slack, Zulip, Discord, Twitter, Discourse, etc. You can find all of the community forums on the JuliaLang website: https://julialang.org/community/. Again, the important thing to keep in mind is to provide value in conversations on these platforms. Once you have done this, taking a minute and reaching out to someone to say hi and introduce yourself becomes much easier since you have that relationship established.

Create content 🎥 📝

In today’s landscape, you can create some really interesting technical solution to a problem, but if no one ever finds it, it won’t end up providing any value. This speaks to the need for developers more and more to create technical content and share the cool things they build or learn about. I will note that you don’t need to have built something from scratch to share it. I started “creating content” on Stack Overflow of all places. I would go search for the most popular Python tagged questions and ask the same question in the context of Julia. If I could find the answer, I would post it, otherwise, I would post the link to the question and try to get help on it. This not only enabled me to learn a ton, but also built my credibility in the community.

People love a good blog post and the Julia community is no exception to this. Again, you need not create some new technical solution to write a post. I recently wrote an article on 5 Julia projects for beginners:

The article again did not introduce anything groundbreaking but still hopefully provides value to someone just joining the community. The best place to share these articles is on Twitter with the JuliaLang hashtag and a tagging of the official @JuliaLanguage account.

More broadly, why does creating content like this help you get a job? One of the biggest reasons is that it increases your visibility as a contributor. This makes it so that other folks in the community are more aware of the work you do and can potentially advocate on your behalf when an opportunity comes around. On top of that, just like with open source, this type of content gives you a public track record. When you go into an interview with company xyz hiring Julia developers, you can point to your open source work as well as technical content which does a good job showing your thought process more than coding does in many cases.

Another place to create technical content is on YouTube. The Julia Language runs a community channel with hundreds of videos. If you give a workshop on Julia or want to record a video tutorial on using some package, the channel is a great place to post the content. If you are interested in this, please reach out to me. A great example of someone doing this on their own channel is:

One of the other impactful types of content you can create is a Julia book. There are not nearly enough well-written books out there but being the person who writes one can pay dividends over many years. And you don’t need to have been using Julia for 5 years or even have a Ph.D. to do it. A great success story of this is Ahan Sengupta’s book “The Little Book of Julia Algorithms: A workbook to develop fluency in Julia programming” which was released while Ahan was in high school:

When I read this book, I was blown away by the quality and impressed by the work Ahan had done. There are so many opportunities to write books in adjacent domains which provide real value in the Julia community and also open up lots of opportunities for you as the author.

The last thing I will note on this topic is that the writing and tutorial creation process also pays dividends in your technical work as documentation is critical in the open-source space, the better you are at writing, the better your docs will be and the more people will benefit from them.

Make Technical Contributions 📦

While this is perhaps the most straightforward and well-documented approach, I made it the last main idea to highlight the fact that you need not make deep technical contributions in the Julia community to get a job. I have personally had lots of cool opportunities come up in my own life and I am not a core contributor to the language nor have I written a foundational Julia package like DataFrames.jl.

With all of that said, the technical work you do should still provide value and build your track record. Creating Julia packages is one of the best ways to do this. There are still a relatively small (but growing) number of packages in the ecosystem so there are many gaps to fill. If you want to learn about creating a package, check out this tutorial:

While this video is a little out of date, it goes through all the mechanics of what you will need to create your first Julia package. But you need not create one from scratch, contributing to existing projects is highly valuable. The best way to start in that direction is to try and find packages in your domain of interest. For me, that tends to be machine learning so I am always looking for places to help out on Flux.jl.

If you know a package you want to help in but don’t know where to start, look for a contributing guide. If there isn’t one, this could be a great opportunity to help make one! You can also append “/contribute” to the URL of the repo on GitHub to see the issues which are well suited for new contributors: https://github.com/FluxML/Flux.jl/contribute note that this will likely be a small subset but hopefully it will still give you context for the type of places you might be able to help out.

If you already maintain a Julia package, one way to build your reputation and technical skills is to mentor a Google Summer of Code student. There are a whole host of benefits to doing this and it really can highlight your technical understanding if you can successfully help a student. If you want to learn more about this and ways to be a great mentor, check out:

and this post on Discourse to get involved: https://discourse.julialang.org/t/seeking-julia-mentors-and-projects-for-gsoc-2022/74328

On the JuliaLang website, we just recently wrapped up the first version of our ecosystem contribution guide. This page goes over lots of technical and non-technical ways you can make an impact in the Julia community. Check out the page to learn more: https://julialang.org/contribute/

Where can I work? 🧐

Now that you know what you need to know to get the job, the next question is where to apply? Here is a non-exhaustive list of places hiring Julia developers:

If I am missing one, please comment a link to the company below!

--

--