Good news, everyone! Google Summer of Code 2021 is coming up. This gives you the chance to throw yourself at some horrifying tech problems, learn some new skills, and maybe get to know a few more memes. We are participating, how about you?
Google Summer of Code (GSoC) in general
If you are a student wishing to participate and want to learn about GSoC in general, I recommend reading through the getting started section. This should give you an overview of the program, and a few pointers to find more information.
Writing a project proposal
Drogue IoT plans to participate as part of the JBoss Community organization. In GSoC students need to submit a project proposal, and need to find at least one person supporting the proposal, by agreeing to mentor.
How to write a good proposal is already covered by the GSoC homepage, so I don't want to into too much detail here. You will also find some guides on the internet.
In any case, it is up to you to write a motivating project proposal, and convince someone to accept to mentor. Sounds a bit harsh? Maybe. However, space and time is limited in GSoC and not all proposals can be accepted. Some students bring really great project proposals to the table, making possible mentors super excited to get started. So the more convincing your proposal is, the better your chances are to get your own proposal accepted.
Getting ideas for a proposal
Mentors are here to help, even before GSoC officially starts. It is in our own best interest to help you write a great proposal, to convince others that this is a great idea to invest time in.
To get you started, the JBoss Community, like all other organizations, compiles a list of possible project ideas. You may check this list right now, but the sure to check back later, as new ideas might get added over time. Each proposal should also give you an idea how to get in contact with the community, whom to ask for help and what is expected from you.
You might notice, not all ideas are for the Drogue IoT project. Be sure to check out the other proposal as well. They may offer other problems to solve, work in other areas, and work with different programming languages. Pick what you prefer.
What Drogue IoT is looking for
For Drogue IoT, we have some proposals around the creation of a protocol implementation (MQTT, CoAP, …). Both on the embedded side or the backend (cloud) side. Those assignments will give you the opportunity to work with the awesome Rust language.
Don't be scared, we are not looking for Rust experts! Getting to start with Rust can be part of the assignment.
We also have one project which is more related to machine learning, creating a custom wake-word detection model for a smart assistant: "Hey Rodney, ..."
Of course, you can also bring your own ideas. These are only ideas to get you started.
Can you re-use existing solutions?
Open Source is all about sharing and re-using code. You are encouraged to re-use existing open source implementations. There is no need to re-write everything from scratch. Maybe your project is more about integrating an existing implementation, rather than creating something completely new.
If you do re-use code, we need to discuss this upfront. Make this part of the proposal and ensure that things like "license compatibility" are not a blocker.
What to do next?
In general, my recommendation is to reach out early. Before you do, do your homework! Understand what the project proposal is about, and what the open source project does in general. Maybe check out the source code repositories or take a look at the application/the project itself. Double-check with your skill set, which mentioned skills and technologies do you already master? And, maybe already get an idea on how to solve the issue at hand.
Discuss ideas, propose new ones. Draft a proposal, share it with possible mentors, ask for feedback. Make mentors interested in your proposal, and work with us towards a finished proposal. The earlier you start, the better for you. When the deadline for submitting your project approaches, and you are all set already, that is quite relaxing. Submitting a new proposal a few hours before the deadline, how awesome it might be, has fewer chances of getting accepted.
Show your skills. I know this can be hard, especially if this is your first time participating in GSoC, and you might not have contributed to an open source project so far. That is ok, don't worry. Some mentors may give you a small assignment upfront, just to check your Git skills 😉. Of course, you can try to find something on your own to fix, and start working on a small pull-request with the help of the community. Fixing a small issue in one project, might already be a good reference in another project.
Got questions? Need help?
Please reach out to us, if you need any help. You can comment on the blog right here, or reach out to us on the chat. If you prefer to directly contact us, e-mail works fine as well.
Let us know how we can help. Hope to see you around!