Very new to the community, my accepted GSoC project was adding some features to an XMPP library. I discovered recently that this library is in use by the Zoom desktop client.
Now, 15 years later, I'm the Executive Director of the XMPP Standards Foundation and our organization is still participating in Google Summer of Code. It's great to have new people in the community, especially the ones for who GSoC is that same spark it was for me and many others, and the ones who stick around long after GSoC ends.
GSoC 2007 was also the year they gave us Karl Fogel's Producing Open-source Software book (he managed to sign every copy!). This amazing instruction manual, combined with the GSoC experience, gave me the confidence to launch my own open-source projects (such as the XMPP server software that powers things such as Jitsi Meet).
I'm really glad that the GSoC programme continues, and hope it will deliver the same kind of impact for new generations of developers and open-source projects.
Worked on building an R plugin for OpenOffice, so you can use the spreadsheet as an interface to R.
Also my first time working with professional software engineers and codebase. So much fun.
Amazing what a great program this continues to be!
Not directly, but being a GSoC student led to some interesting international travel and freelancing opportunities. I met many senior engineers who'd spent decades more than me (at that point) and was able to sit in on their discussions and meetings. I wasn't even directly involved or responsible for anything, I was still a student... but just by osmosis, it shaped so many of my thoughts and opinions.
GSoC basically allowed me to jump into an open-source project (no credentials needed), prove that I'm skilled enough to contribute and gain meaningful experience solving real world problems. This then snowballed into larger career opportunities later down the line.
Plus GSoC is for the youngbloods, the noobs, and getting their feet wet with real code and big orgs. It's a career starter, not a career bastion.
The experience I got as a student in 2012 was invaluable for my career in tech ~ more so since I did not formally study CS. It introduced me to so much: a lot of the programming itself, collaborating with fellow developers.
I spent one year preparing for it, and man seeing my proposal accepted was one of the best feelings I have ever experienced (much better than when I graduated, even). A close second is knowing that I actually was helping people with my code (I still keep the emails where people sent me questions about the library API I was developing).
I hope this year's (and future) batches of students get to experience the same (if not more) highs :).
I don't use it myself. But it's good to see an open source solution in the DJ ecosystem. More and more DJ software go the monthly subscription route.
Oh BTW, if someone is bored: I think this library needs some RUST dev help: https://github.com/Holzhaus/rekordcrate/pull/71 In theory, this library would allow open source project to write "Pioneer rekordbox usb keys" Pioneer hardware are used in a lot of clubs around the world and effectively need music files exported by Rekordbox. Would be cool to have 3rd party apps do this.
Out of curiosity, is that because you don't DJ, so have no use for the software; or, because you do DJ but use something else? :)
Either way, I concur with your Mixxx assessment!
While I haven't mixed or mixxxed for a while (too long?), I have used Mixxx for all my DJing (with a Vestax controller) over the years in a variety of environments from house parties to the playa to camp outs to a community hall to a local bar (perhaps the pinnacle of my DJing "career" as the dance floor included an A-List actor who I didn't even notice because I was just happy that I'd managed to get dance floor so crowded :D ).
It was a reliable & useful tool and even at that time offered features that other "free" versions of closed/proprietary DJ software specifically excluded such as set recording.
At one point I was exploring running Mixxx on a Raspberry Pi 3 with a dedicated small screen in an attempt to move past the "DJ Staring at Laptop" look but while I did get it (barely) running on that platform it really required more RAM & processor power. (My understanding is that people have by now successfully gotten it running on RPi 4 in that sort of configuration.)
Mixxx has the potential to be an interesting FLOSS project case study, I think, because they have unusually thorough & well-presented documentation (https://manual.mixxx.org/2.3/en/); they compete with multiple extremely popular "free" versions of commercial/proprietary software in the non-trivial audio software niche; they have what I consider one of the best (if not the best) custom UI styles in FLOSS which is functional, visually distinct & stylish (e.g. <https://manual.mixxx.org/2.3/en/_images/mixer-section.png>); and, have enough community participation to manage at least yearly releases of various sizes.
So, yes, Mixxx is a great project & surely one that is more exciting to work on for GSoC than... I dunno, some database system that isn't used by super-cool DJs to entertain hundreds of people around the world. :D
Used Rekordbox and now I use traktor. I only quickly tried it 2 years ago with a DDJ-400 and somehow the mapping was not working correctly. I did not want to fiddle with it at that time. Buy maybe I will give it a go again at some point.
https://projects.freifunk.net/#/projects?project=openwrt_ppa...
It seems like a fun thing to do in retirement :)
and yes, it does sound like a great way to start a new hobby for your retirement days.
When is somebody an "experienced" professional? 1 yoe? 2 yoe?
Can I still participate?
My GSoC year was 2010 and it was definitely an amazing experience -- not just getting to meet and work alongside amazing community, but also to sharpen my software engineering skills, improve communication and have fun along the way.
If you're a student, please find something interesting you'd like to work on and apply! Find where the folks hang out and reach out to them! They'll be happy to help you get started! Back in the day we used irc.freenode.net as our communication hub for pretty much all OSS talk, but I am sure there are Slack or Discord servers now available for most projects.
Have fun!
the primary condition is that you are new to FOSS and are not an active contributor already
Why? People who are interested and caring enough to start without getting paid, and who have shown they are more likely to succeed, are the ones who are excluded? That's toxic to FOSS culture.
Thus: does anyone know if there are similar initiatives to connect students with mentors, but with more flexible timing?
(Or, y’know, I guess I could just contact the people listed on the GSoC page informally… but it would be nice if there were something more organised!)
edit: Having the SoC experience on my CV certainly helped land my first job.
If you’re anything like me, you’ll have this feeling on every new project and new job you start for a while. I’m in my late thirties and am finally starting to realize that “hey, I have this feeling a lot and it’s always wrong.”
Push through it. Write the proposal. I think the proposal-writing process is the very best aspect of GSoC since it forces you into something that you really don’t tend to do in traditional learning like universities. It forces you to think a bit like a product person even and explain benefits and tradeoffs, backing up your beliefs.
Sure[0]:
* Send a proposal to strace. :)
Additionally:
(a) As others have mentioned, it's entirely normal to initially feel like one doesn't understand a new code-base of non-trivial size enough to modify it. One of the skills that participating in a programme like GSoC can provide is learning the tools & strategies that you can use to assist in growing your understanding of new code bases.[1]
(b) From an outside perspective, the fact you're aware of the existence of `strace`, have an interest in contributing to the project & have already poked around in the source code in an attempt to understand it are big positive indicators & differentiate you.
(c) That you're using a tool like `git blame` to assist in your exploration indicates that you've already learned some of the tools/strategies you can use which is also a positive. (As an aside, today I learned about the tool `git-dive` which is intended to be a more powerful form of `git blame`, you might be interested in checking it out: <https://github.com/gitext-rs/git-dive>)
(d) Also, with regard to `strace` specifically, you might gain some insight from this recent video: "strace feels like magic — let's fix that (with Rust)" <https://www.youtube.com/watch?v=engduNoI6DE>. While the video uses Rust for the implementation it also provides a general overview of how `strace` works. (This might be a useful intro to Rust syntax, if you're not currently familiar: <https://fasterthanli.me/articles/a-half-hour-to-learn-rust> (BTW, it is also extremely normal to not understand everything/anything about Rust code on first sight. :) ))
(e) Personally, in the past I've found it extremely easy to talk myself out of submitting proposals for opportunities such as this but my current perspective is: if I have doubts about whether or not I'm experienced/qualified enough to submit a proposal then I'm definitely not qualified to evaluate whether I should submit a proposal--so I definitely should submit a proposal to give those who are qualified the opportunity to evaluate it. (After all, if you don't currently maintain the `strace` project you have no idea what their experience has taught them is important in order for people to successfully contribute.)
Hope some of that is useful.
[0] re: "advices" -- in this context, "advice" is the preferred word[2]. I mention this as written communication is important & based on your previous HN comments this seems to be a pattern of incorrect pluralization rather than a typo. Note: I do not have perfect grammar. :)
[1] Also, I would encourage you to take notes of what you don't understand or issues you ran into when you start exploring a project. You can then document these hurdles/barriers to new contributors for the project so that maintainers are (at least) aware of them. This is one situation where your relative inexperience with a project is in itself valuable because your perspective is one maintainers no longer have. (And such hurdles are important to identify for projects that are actively looking to attract & nurture new contributors.)
I now have an internship lined up for the summer due to the connections that I made and am working in a pretty exciting area of research. GSoC might have completely changed what I'll be doing in the future and definitely was an amazing opportunity. I'm signed up as a mentor this year, so hopefully I can help provide some of that experience to someone else.
then (if accepted) you work on the code for GSOC and write your thesis for your school.
the org that I worked for last year
one of the goals of GSOC is to motivate you to continue to contribute after your GSOC project completes. so you should certainly be welcome to get involved. many GSOC participants also volunteer as mentors later.
> GSoC Contributors.
> Eligibility.
> Requirements. To participate in the Program, a GSoC Contributor must: be eighteen (18) years of age or older upon registration for the Program; for the duration of the Program, be eligible to work in the country in which they reside; not be an Organization Administrator or Mentor in the Program; and be a student or a beginner to open source software development.
I imagine Google, like many tech companies, still depends on many Open Source projects and appreciates cheap labor, so it may be worth it to keep GSoC running for a while.
Like everything else by Google they had become boring. The best part of summer of code was always the interesting solutions in all kinds of languages.
I usually used Common Lisp for these problems, and even though I believe it's supported, it's just not fun anymore.