Welcome back to another series of mentor spotlights! This series returns for the 2019-2020 school year, as we seek to highlight the open source mentors that have become the mainstay of our event.
In our first mentor spotlight this year, we speak with Katharine (Katie) Hyatt, who’s been an open source mentor at HackIllinois since 2018. Katie has been a contributor to the Julia Programming Language and is considered to be one of the top contributors to the project today. In this interview, Katie recounts some of her experiences with open source and gives valuable insight into the community and its growth.
Tell us about yourself. What is your background and what do you do now?
Hello! I’m currently a postdoctoral fellow at the Center for Computational Quantum Physics at the Flatiron Institute. My day-to-day job involves working with computational physics, which is what I have been pursuing since graduate school. I work with Julia for writing code for research purposes and have also been an open source contributor to Julia since 2015.
For Julia, I usually work on writing and maintaining libraries to add high-level features. Some things that I have worked in in the past are wrappers for video libraries, and libraries for linear algebra and random number generation, all of which interface with the main Julia API.
How did you get started in tech?
I had no programming experience before I started my undergraduate degree in Physics. In my first year, I took a required class called Introduction to Computational Physics, where I first learned C++. I was pretty good at it and went on to work with my professor from this class as an Undergraduate Research Intern later in my college career. You could say I went from a freshman with no idea about Computer Science to mentoring students at HackIllinois.
What are some of the projects you are working on currently?
I primarily work with the Julia ecosystem, with GPU packages more specifically. I think the Julia ecosystem is a viable choice for this as it offers native support for CUDA kernels. I’m currently working on a new sort of module that deals with High Dimensional Tensors. We conducted supporting research in the context of Multi-Dimensional Linear Algebra, and I’m happy to say that the project is almost completed and will be useful in fields such as Machine Learning.
What does open source mean to you?
Open source holds a lot of significance for me, both personally and professionally. In my industry, there has been a push for open source elements recently to minimize duplication of effort. There might be situations where different groups are solving the same problem but still not getting the same answer legibly. Utilizing open source resources in such situations avoids teams working to reinvent the wheel and also makes it easy to identify problems during code audits.
For me, open source is also a way to give back to the community. What is truly inspiring is that a small contribution by a single person has the potential to pay big dividends for the community at large.
Why do you contribute to open source?
When working on algorithm development, my team and I deal with a lot of moving parts and can go months without knowing whether the project is going to work or not. In such times, merging a pull request is something to fall back on as it is somewhat soothing for me to go back home and add two lines to GitHub and seeing everything work.
Working on open source projects has also been professionally beneficial for me. My peers and other industry professionals have come to recognize me as the “Julia person”. My work has also led me to receive invitations to speak at conferences that are not just focused on Physics and helped me explore fields broader than my immediate research interests. Having the experience of working on open source projects also makes it easier for me to find professional endeavors in the industry if I decide to explore areas outside of academia.
What about the open source community, and in particular, Julia, drew you to being an active part of it?
As I mentioned earlier, the first language I learned was C++, and I only started using Julia in Graduate School. The selling point of Julia is that it offers the ease of use of Python with the speed of C++. What attracted me was the very welcoming and helpful community. I remember that when I first started, I didn’t have a lot of git skills. One time I had to use rebase, but I had no experience in using it. That’s when members from the community came forward to help me with git and also with getting my code across that production line, which was very assuring. That experience is definitely something that has stuck with me and made me want to be part of this wonderful community.
What was your first interaction/impression of open source and how has your involvement in open source evolved over time?
I first started contributing by writing tests and fixing edge cases in my free time, usually when waiting for simulations to finish running. My first Julia PR was on January 2nd, 2015, where I added some tests to Reduce.jl. At the time, the language was not as mature as it is today, and I occasionally encountered little bugs and missing features.
There have been some pretty noticeable changes as the Julia community has grown in the past few years. Today I hear comments like, “This stuff is so reliable” or “This never breaks”, which was unheard of in the past.
I have also grown with the community, and have personally gained a lot of knowledge and experience. Today I have the 9th most commits to the language, and my experience has changed my role in the community in different ways. Now contributors sometimes ask me to review and merge PRs, which can be a little inconvenient when I have other stuff going. This is very different from my early days when I could do things at my own pace. I’m no longer also the only woman in the Julia community, and so I don’t have to play the role of community manager whenever people wanted the opinion of women in Julia.
What do you recommend to beginners interested in open source?
Contributors new to open source can sometimes find it difficult to find a project to work on. Some existing projects can be so large and complex that it might be hard for them to find a first issue to work on due to the many interlocking parts. I would say that new contributors should find packages that are not base projects or have only a few contributors. If there’s a project with an active group of people working on it, they’re bound to need help, and new contributors can start by helping with writing tests or adding documentation. I don’t mean to discourage newcomers from being ambitious, but starting at a place where more experienced contributors can guide them is a good path to choose.
What are you most excited about in technology and open source?
One positive trend that I’ve noticed in the community is that people are becoming more flexible with languages and are open to recognizing their individual advantages. These days nobody has to start a religious argument about which language/tools are better than others.
As I said earlier, the Julia community is growing steadily, and that’s something I’m really excited about! Even with all the positive trends and growth, we have to be prepared to deal with community management issues that are common to most growing communities like us. We need to prevent existing contributors from burning out as we continue to add new contributors, and we can take inspiration from other similar communities to achieve this.
What was your experience like, as a mentor at HackIllinois?
I enjoyed my time as a mentor at HackIllinois 2019. I really like the open source focus of the event that brings people to a stage where they can get a pull request open. During the event, I worked with a group of freshman and inexperienced programmers who had never met each other before. Even so, they managed the impressive feat of making a pull request which ended up getting merged! As the weekend progressed, they didn’t really need me there, and I was just cheering them on. What was really exciting is them proving that it’s empirically possible to team up with a group of unknown people and still be successful through a dedicated effort.
What are you looking forward to next year?
I was really happy with the 2019 event, and I’m looking forward to more of the same. The only things that I need are sleep, power outlets, and enthusiastic students - which are all readily available at HackIllinois!
Check out Katie’s profile on GitHub at github.com/kshyatt and open an issue/PR on one of her projects if you’re interested in getting involved. Stay tuned for more in our mentor spotlight series!