Oria Weng is a third-year honors student studying computer science at Oregon State University, working at the Oregon State University Open Source Lab (OSUOSL).
What Open Infrastructure project are you working with, and what made you interested in that project, as opposed to some of the other options? What was the hardest part about getting started?
I believe it was Kendall Nelson who connected the OSUOSL with the internship program; I joined work on OpenStack Client (python-openstackclient), the command line client, after Antonia Gaete, another past intern, had started working on it. It made sense logistically for us to work under the same mentors (Stephen Finucane and Artem Goncharov) and on the same project, but I did like specifically working on identity because things like users, projects, etc. were things I had to use pretty often in my own usage of OpenStack. Plus, it was a good opportunity to learn more about security concepts like authorization and authentication. Later, Artem introduced us to his API schema work on Keystone, the identity service, and invited us to help with that. I’ve really enjoyed working with APIs in the past, so this sounded like a fun opportunity. I especially liked the idea that enforcing a strict API schema could (potentially) make it easier to find inconsistencies and bugs, as well as improve the understandability and documentation of Keystone.
What was the hardest part about getting started?
This was my first time working on a big open-source project at this scale, so the hardest part for me was understanding how the codebase fit together and figuring out which of the moving parts I should change to accomplish something. What helped me the most was to look at examples of other changes – for example, I studied Antonia’s changes as I was starting out, since she had started at OpenStack earlier than me and was doing similar work. It also helped a lot to have mentors who knew the codebase inside and out and were willing to answer any questions that came up.
What could have made the getting-started process easier?
I think the docs were pretty overwhelming for me as I was starting out – each project has different categories of references and guides as well as multiple project versions; there are also both contributor guides for individual projects and ones for OpenStack overall. Fortunately, I had help from mentors like Kendall, Stephen, and Artem to figure things out, but I think a short guide for total beginners on how to navigate the projects and their docs would be helpful. 🙂
How have you contributed to the community?
For OpenStack, I’ve primarily been helping to migrate OpenStack Client commands to use the OpenStack SDK (to move away from keystoneclient) as well as adding API schema validators to Keystone. In terms of the open source community in general, this is my third year working at the OSUOSL, where we provide hosting and other services to over 160 open source projects. I think that’s pretty cool!
What’s the biggest benefit from your involvement? (hard or soft skills, connections, etc)
One of the biggest benefits for me was just getting used to development on a big open source project. Before going in, I didn’t really have a good idea of how open source development really worked; I learned a lot about best practices and how to communicate.
What advice do you have for students who want to get started with open source?
Don’t be afraid to ask questions! As I was starting out, I probably looked even sillier pretending I knew what was going on when I didn’t, than I would have if I’d just asked an “obvious” question.