00:00:11.759
My name is Courteney Ervin. I am a platform engineer with Code Montage, which is an open source project. I'm also an open source maintainer. Two years ago, however, I was not a platform engineer; I was an administrator at a non-profit. When I say administrator, I don’t mean systems administration or IT stuff; I mean I managed volunteers, planned events, and occasionally used Excel spreadsheets. It was a challenging time. Since then, I’ve moved on, and now I write code. I can honestly say that there's no way I would have my current position, knowledge, and skills without having written open source code and contributions.
00:00:41.920
I am a self-taught developer, meaning that I didn’t pay anyone to teach me. People taught me; I just wasn’t compensated. Some of that free learning came from writing open source code. I think it’s incredibly beneficial for your career, learning, and growth. That’s why I'm really invested in encouraging people to write more open source code. Additionally, there are many maintainers out there who simply don’t have the manpower to maintain projects at the level they would like, and you can be the change they deserve.
00:01:13.200
So the first thing to consider when you are getting ready to make open source contributions is to pick a project or define your goals. There are various reasons to get into open source, and I recommend having two different types of goals: a personal goal, something for yourself that is not directly related to your career, and a professional goal that could be related to your current job or a future job. These goals will guide some of the decisions you make regarding which projects to choose and what challenges you are willing to take on.
00:02:16.800
Some potential goals include learning new technologies, such as understanding how to integrate Rails with an Angular frontend. You may want to improve your version control skills by getting better at Git and GitHub or mastering different processes. Working with a distributed team is also a valuable skill; being able to communicate effectively from a distance and get your point across is essential. Code reviews can be another goal; you might want someone experienced to look at your code. Providing them your code can be a beneficial way to get feedback and improve your skills. You can also seek visibility by ensuring others know that you write code, engaging with the community, and giving back to projects that you rely upon.
00:03:02.800
Your goals should ultimately be about you and your needs, so remember that your goals aren’t mine. One of my personal goals was to get to know Rails because I wasn’t familiar with it when I started contributing to Rails projects. I learned a tremendous amount. Now, I want you to tell yourself that you can definitely contribute to open source code. If you’ve been hesitant due to fear or feeling like you don’t know enough, let me assure you, you do.
00:03:41.600
Take a moment to look around at someone else in the crowd. Make some awkward eye contact and give that person a thumbs-up. In that silent moment, let them know they ‘got this.’ You now have the permission to write open source code, and if you haven’t done it before, take that encouragement and run with it.
00:04:01.280
Now, I'm going to share some thoughts on ways you can contribute to open source. A lot of contributions don’t actually require coding. One way to contribute is through bug reports. Often, people will announce an issue without providing helpful details, which isn’t useful for maintainers. If you come across a bug, do a little research and share links or create a video showing the bug in action; that can be incredibly helpful. Documentation is another area where many contributors can add value. Sometimes people assume that everyone has the same setup they do, which isn’t the case. If you find issues in the documentation, make sure to address those.
00:04:36.800
If you know multiple languages, consider helping to translate content for projects so they can reach a broader audience. Creating seed data can also be a great contribution, allowing new developers to explore the codebase with meaningful content. This helps everyone understand the project better.
00:05:00.000
Adding tests is another critical contribution—far too few people write tests. If you have any design ideas or can perform design reviews, share your insights. Lastly, contribute to code reviews by commenting on existing pull requests. If you know the code and are familiar with it, your feedback can significantly benefit the original submitter.
00:05:50.240
You can promote projects you like, even if you can’t work on them directly. Tweet about them, write blog posts, or star them on GitHub. Keeping track of a project by watching it and looking for notifications can also lead to meaningful contributions. Updating libraries and helping with transitions to newer versions can be a big help, but make sure to communicate with the main developer before jumping in.
00:06:39.000
If you see any syntax errors or typos, those are easy fixes that require minimal coding knowledge. In this talk, we will focus primarily on writing code, which is an essential aspect of contributing.
00:07:04.800
First, find a project that speaks to you and decide which one you want to work on. You can search GitHub directly, but there are also many tools available, such as open-source projects with a social good focus like those offered by Code Montage. You can search for projects by cause—whether education, open data, or other social causes.
00:07:49.280
Open Hatch has smaller, bite-sized projects, which can be perfect if you want to contribute quickly. Git Rec generates suggestions based on your GitHub profile, helping you find appropriate repositories. There’s also a challenge called 24 Pull Requests, where you submit a pull request each day for 24 days leading up to Christmas—think of it as a way to give back to open source maintainers.
00:08:25.600
Contribulator is loosely connected to 24 Pull Requests and is a way to get involved in various projects. If you’re interested in more challenging tasks, Code Triage identifies neglected repositories on GitHub and suggests them for potential contribution. If you hope to work for a specific company, check to see if they have open-source projects you can contribute to.
00:09:00.000
Engaging with a company’s open-source code gives you insight into their workflow, team dynamics, and culture, making it easier to get a position with them later on.
00:09:56.640
When you decide on an issue or task within a project, ensure the issue hasn’t been resolved. Check the pull requests as well to see if it has already been addressed. If the issue isn’t solved, claim it by commenting that you’re working on it. If it’s important for you to have your code merged, make sure that your claim resonates with your commitment to complete the task.
00:10:43.840
Once you take on an issue, it’s essential to follow through. If you don’t have time to finish it, provide insight into what you’ve learned so far and pass it on to someone else. Remember, it's not about fixing the entire feature instantly; every small contribution matters.
00:11:32.320
It’s also vital to know the community you are working with. Familiarize yourself with the people on the team; they may know more about the codebase than you do if you’re just starting. Know where to find help—be it a Slack channel, forum, or email—and gauge the community’s responsiveness. This knowledge will be beneficial for you as you begin contributing.
00:12:10.560
Additionally, look at how long it generally takes for pull requests to be reviewed. Understanding this can help you set expectations. If you’re planning any significant changes to a library or project, don’t hesitate to reach out to the community to discuss them beforehand.
00:12:49.600
Now we’ll delve into the technical aspects of contributing. Since many people here are already familiar with Git and GitHub, note that the first step is to fork the project. This will allow you to create your own version of the project on GitHub, and from there, you can clone it to your local machine. Nonetheless, installing the project from its documentation can be one of the more difficult parts of the contributing process.
00:13:37.760
If you encounter errors during installation, rest assured that it’s a common experience. Logging any errors you encounter can be incredibly helpful for the project maintainers. Make sure to document any solutions you find to issues you face while setting up the project, and feel free to submit pull requests for improvements in the documentation.
00:14:18.080
The contributions you make—even if not directly related to code—can impact the project positively. Once you properly install the code and start contributing, don’t forget to celebrate your achievements! Whether it’s a successful installation or fixing a bug, acknowledgment of progress is key.
00:15:03.040
Next, familiarize yourself with the Git workflow: First, set a remote to the main repository. Ensure that your master branch is up to date with the upstream repository. Create a new branch for the code changes you want to make—avoid working directly on master.
00:16:06.080
Then, write your code, make the necessary commits, and push your changes back to your fork on GitHub. Finally, make a pull request, and do remember to keep your pull request focused on a specific change.
00:16:54.080
Communicate clearly within your pull request; outline the changes you made in detail and include screenshots if necessary, especially for any front-end modifications. Always be open to feedback, and don’t shy away from making adjustments based on suggestions from reviewers. This collaborative process ultimately enhances your code and builds positive relationships with project maintainers.
00:17:47.040
It’s also important to recognize that contributing to open source is a great opportunity for growth. Each pull request represents a problem you solved, and you can carry those experiences into interviews or discussions with potential employers. They demonstrate your capabilities and thought processes.
00:18:43.680
As you engage with the community, maintain positivity and respect. The relationships you forge through your open-source contributions could lead to recommendations or connections in the future. Each interaction with contributors and maintainers can lead to long-term professional opportunities.
00:19:38.640
To summarize, engage with the community, collaborate, and build relationships over time. Your contributions matter, and if you track your progress, you’ll find that your achievements—be it code submitted or bug fixes—are all significant markers in your development journey.
00:20:38.960
Always make an effort to be helpful, and be kind to yourself as you navigate this open-source journey. Remember that your work is valuable, whether or not it gets merged into the main codebase. You may even find that contributing becomes a fulfilling part of your professional journey, so embrace the challenges and support each other in this space.
00:21:12.640
Thank you for participating, and I encourage everyone to write open source code. It's a rewarding experience!