In 2019 I was living in Detroit and experiencing the coldest winter of my life - we're talking subzero for two weeks straight, cold. During the day I was programming software to run Computational Fluid Dynamics simulations on a High Performance Compute environment. At night I was continuing my education in Applied Mathematics by taking a course in Matrix Theory. Mostly, I was just trying to stay warm. Overall, things were going well. I was leveling up my software development game and even got to use my math degree from time to time on some projects. Little did I know things were only going to get better.
My Matrix Theory professor, let's call him Professor, was the best. He allowed students to use their preferred programming language for computation, but he recommended we consider using a new language called Julia. According to Professor, Julia was really an up and coming language, and for the first few assignments Professor challenged the MATLAB, Python, and R users to match the speed and expressiveness achieved by Julia. The results were impressive, and I was sold. Before long, I was hooked.
After my coursework I fought to get Julia a foothold my industry. My team at work was a shining example of a group suffering from the two language problem. We had brilliant engineers and talented software developers. Sure, we were productive, but I wanted to help us work smarter, develop faster, and build more impactful tools. With Julia, I felt I had just the thing.
My best bet was to become the Julia champion. So for the next 1½ years, my free time was spent researching the language, the ecosystem, the tooling, everything. I had a new hobby, and soon I became "the Julia guy" in the office.
The deeper I looked the more rewarding the experience. I joined the community Discourse, Discord, Slack, Zulip, etc. You name it, I was there. I loved finding out what folks were able to build with Julia. Even cooler, I found out that this community of Julians was made up of kind, smart, and diverse people living all over the world.
While I was hoping to champion Julia from within my company, I didn't wait to begin making small contributions. I started building fun web dashboards with
Dash.jl, helpful study materials with
Symbolics.jl, this website with
Franklin.jl, and even helped (a tiny bit) support
LanguageServer.jl in LunarVim. After gaining some confidence I was able to help other newcomers by pointing out useful Packages and improving documentation.
All the time invested in Julia paid off in the unexpected form of a job offer. I can happily say that my favorite hobby is now also my day job! So if you are at all curious about this ambitious, greedy, new language called Julia, then I would encourage you to join the community. I found my dream job. Who knows what you'll discover.
Thank you to all Julians who helped me get started and encouraged me to keep exploring 🙏
In case you are interested in learning more about the Julia Programming Language or Applied Linear Algebra, here are some resources that helped me on my journey.
Wondering if Julia is a good choice for you and your projects? Start by reading What Julia Aims to Accomplish.
My Matrix Theory course was taught with two complementary books:
Applied Linear Algebra primarily focuses on theory
Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares (VMLS for short) focus more on application of the subject matter