Introduction - my open source path

Today I want to write about my open source contributions and why I think it was the turning point in my software career.

It was December 2017, I was in my second year of my undergraduate degree in Applied mathematics taking a C++ course. The final evaluation consisted in a huge team project related to 3D geometry and intersecating objects.

While working on it, I started to realize how much I liked writing software, as opposed to studying theoretical math. At that time, I was day dreaming about doing Applied math research. Then, I told myself I could combing my math skills with my newly found coding hobby.

Still, I was painfully aware that the academia career is a really hard one that does not pay off most of the times, so I started working towards an alternative plan: why not use math and software in industry? I realized that I neede to showcase my coding abilities if I wanted to do that, and a silly undocumented 3D geometry project might not be enough.

I was too scared (read: underprepared) to apply to big tech internships, so I had to find something else that could still be combined with my studies. On reddit, I read about the “Google summer of code” (GSOC) program. It seemed the perfect fit!

I also found a really interesting project related to speeding up matrix computations using C++. Withouth knowing any better, I started writing my proposal and I submitted it. Unfortunately, I was rejected 💔! In hindsight, this is really not surprising:

Who in their right mind would have taken me on?

I started investigating the hidden tips and tricks needed to increase my chances next year.

December 2018 comes around, this time I knew how to play the game a little better. I chose “Julia programming language” as a project (v0.7, how time flies). It seemed a really promising language, suited for a wannabe Applied mathemtician. I knew this was it!

I was interested in a project concerned surrogate models to approximate expensive solutions of differential equations. They required math, optimization techniques and numerical computing knowledge. It was the perfect fit for me!

I applied again. This time, I felt more confident about my chances! Again, I was rejected! 💔💔

This time, I was really down.

I was on the phone with my girlfriend venting about this, when I got an email from the Julia organization:

I will always remember that evening! Julia was willing to sponsor me with their own funds because they did not get the number of slots they hoped for in the GSOC. I still feel grateful to this day.

I have worked on Surrogates.jl that summer and in the next summer under the “Google summer of code” and in my own free time as well. Thanks to this experiences, I got my internship at the Alan turing institute, still using Julia.

Why is open source experience so valuable for students?

The common advice for students that want to bulk up their CV for applications is to do projects. This is fine advice, but most of the time the project is not that impressive or, worse, a slight variation of some tutorial. In such cases, It becomes hard to differentiate yourself from other applicants. Moreover, these projects do not usually have any users, It’s just a github repository with some README.md description.

Having an open source project is a totally different story.

You have users: documenting software is as important as writing it. ✅

You must write tests to avoid nasty bugs. ✅

You are collaborating with other developers working alongside you on the library. ✅

This is as close as it gest to a real SWE job! If you like working on open source projects with other people, there is a good chance you are going to like your career as a SWE. This was especially important to me coming from an Applied Mathematics background: I needed to make sure this is something I enjoy doing!

Final thoughts

It is my hope that this post convinced eager students craving real work experience to start working on open source software. There are many opportunities in the space, namely:

The key is to pick an organization within this frameworks that aligns closely with your interests, so you can produce your best work!

Feel free to message me if you need some sort of guidance to make the process less intimidating!

Ludo