Amazonians and Hacktoberfest
Hacktoberfest, “a month-long celebration of open source software,” took place last October, before this blog was launched. A number of Amazonians participated, using the opportunity to contribute to work-related projects, passion projects, or both. At the start, their open source experience ranged from neophyte to veteran. Thanks to Hacktoberfest, all have now contributed (and earned t-shirts!). Here are some of their stories.
I’m one of the Maintainers of Amazon’s s2n Project, an Open Source implementation of the Transport Layer Security (TLS) Protocol used for securely connecting to websites over the internet. I first heard about Hacktoberfest this past October, and thought it’d be a great idea to have s2n participate. Within the first few days of October, I submitted a change to clean up our “Getting Started” documentation to make sure it’d be easy for new developers to download, build, and test s2n locally.
Once our “Getting Started” Documentation was in better shape, I went through our open GitHub issues, and added the hacktoberfest, and good first issue labels to everything that looked like a good fit for a new developer to start on. After everything was labeled, I posted on Twitter that s2n was participating in Hacktoberfest, and to my surprise my tweet received over 4,000 views and a few retweets. In the next few weeks, s2n accepted two external non-Amazon contributions. These contributions updated s2n’s build to scan our bash scripts for code style violations, and added a new script to find files with missing Copyright Info. We rarely get external contributions, so it was great to get two new contributors to s2n that we probably wouldn’t have gotten otherwise.
Overall, I’d say that Hacktoberfest was a success, and I’m already thinking of ways to improve it next year and make it even easier for new developers to join in and contribute.
I first saw Hacktoberfest from Twitter posts, and I thought the idea is cool – apart from the nice T-shirt ☺. I have been a user of open source since 1999, when I switched from Windows to Linux while in high school. Back then, I actively participated in forums, helping people with questions about anything Linux. I always want to contribute back. While I am not a great coder or hacker, I do have a few small personal projects on GitHub. So, when I stumbled on a blog post about how easy it is to contribute the four PRs, I decided to get my hands dirty.
For Hacktoberfest, I contributed to freeCodeCamp, a community wiki-like guide for software development. I also worked on a personal fork of Prometheus Alertmanager that integrates with the messaging platform built by my previous company. There is also a chatbot demo built on the AWS platform, and some other small projects.
In my previous jobs, I was always a consumer of open source projects. As a Solutions Architect at AWS, I need to know some open source projects/technologies, because our customers use them. Since I started my journey with AWS, I have always been thinking about how can I make contributions back to the open source or developer community. It could be in the form of tools, documentation, bug fixes, etc. I am thrilled to see AWS getting more involved in open source!
Luis de Bethencourt
I’ve been involved in open source projects since before joining Amazon, for over a decade now. My longest stints have been with GStreamer and the Linux kernel. I started by building a live video mixing application for personal use, and naturally used GStreamer for it since it is a very powerful open source multimedia framework.
I wanted this application to be in distributions, so looked into that area, got some experience with debian packaging, and ended up leading a Canonical-sponsored Ubuntu derivative called Ubuntu Studio. Going down the stack, I started adding things I wanted in GStreamer, met the fun community there, and eventually became a core contributor and worked as an open source consultant.
I still continue to be involved in the Linux kernel, maintaining BeFS (the BeOS file system), and looking at other things that pique my interest. I also remain active in the GStreamer community. When time allows, I keep up with interesting Rust projects like Servo.
I heard about Hacktoberfest while attending the GStreamer Conference and Embedded Linux Conference Europe in October; a few of us decided to join in and get the t-shirts. I appreciate events that try to motivate people to join the open source community and realize that it is easy and fun, and all contributions are welcome. For old veterans, it is awesome seeing the energy and excitement from newcomers.
During Hacktoberfest, I worked on some external Rust projects, a PNG decoder developed by the Piston game engine people, and the GStreamer bindings Sebastian Droege is working on to be able to both write GStreamer applications and plugins in Rust.
I started contributing to open source projects in 2013. That same year, I became a member of the GNOME foundation, where I maintain/contribute to a few projects (gstreamermm, glibmm, sigc++, banshee). I’m also part of the Membership and Elections Committee, where my main responsibility is to process and approve or reject applications for membership in the GNOME Foundation.
I work on a few open source projects in my spare time, so participating in Hacktoberfest came naturally – and also helped me reach a personal goal to contribute to four different GitHub projects. I mostly contributed to my personal project – gst-debugger – which is a utility for inspecting GStreamer pipelines remotely. However, I did a few minor changes to other projects, e.g. rust-chip8. In my free time, I’ll continue to develop gst-debugger and contribute to few other GNOME projects.
I enjoy coding in my free time. I’ve had a GitHub account for just over five years, but I made my first PR on an open source project last year (before I joined Amazon). Hacktoberfest gave me a good reason to work on other open source projects besides my own. Making a modification to a codebase I’ve never seen before is always a challenge, but it’s always rewarding to see a new feature come to life or see a new bug eliminated.
For Hacktoberfest, I worked on several things around Visual Studio Code – I use VSCode every single day, so it’s nice to be able to improve it a little.
- golf1052/base16-generator is a Visual Studio Code extension that lets you automatically theme your Visual Studio Code environment using base16 themes. Base16 themes are very popular for syntax highlighting and I wanted to be able to use base16 themes for syntax highlighting as well as UI theming in Visual Studio Code.
- I fixed a small bug where base16 themes that didn’t have light or dark in the name could get the incorrect UI theme in Visual Studio Code. Before this change, a light base16 theme could accidentally get a dark UI theme in Visual Studio Code. The fix was to inspect the generated theme file and use an algorithm to determine if the theme was light or dark. Before I was simply checking the filename, but that did not work in all cases.
- My second PR was for the Visual Studio Code repository itself. The issue was that extensions for Visual Studio Code that are listed as Preview on the extensions website don’t get listed as preview in Visual Studio Code itself. My PR fixes this so that users can see if an extension is in Preview inside Visual Studio Code.
I also did some redesign work on Signal-Windows, an unofficial Signal client for Windows 10 devices, and am still doing some other work on the Signal for Windows project. I do expect to contribute to VSCode again in the future as well.
I am an avid believer in open source and started contributing back in 2010 (to ActiveMQ), and have open-sourced with my team a plugin to easily publish monitoring data to CloudWatch.
As a Software Development Manager at Amazon, coding is not part of my core day-to-day job, so I always try to find some personal time to tinker with code and new languages. I learned about Hacktoberfest this year and decided to sign up, in order to force myself to contribute back in a more committed way.
I looked for open issues in GitHub that had the Hacktoberfest tag, and contributed to several projects/areas:
- Implemented several data structures in different languages (http://github.com/iiitv/algos and http://github.com/OpenGenus/cosmos)
- Added documentation to some projects I was interested in (http://github.com/JamesNK/Newtonsoft.Json and http://github.com/Kinto/kinto).
- Helped with the localization of data for a repo that is used to generate data for testing (http://github.com/lk-geimfari/mimesis ).
Finding time to contribute back to the open source community is the hardest thing to do, but also what makes the community so inspiring: most of the contributors do that on their free time, juggling their other personal commitments to family, etc.
My team was experimenting with TypeScript in a new project, and we were facing issues with debugging while using ts-jest (a third-party tool). When the issue was raised on their Github repo, the owner and the collaborators were very helpful and I raised my first open source PR in late August, 2017. That encouraged me to contribute to open source more, and I started following other contributors on Twitter/Github. Hacktoberfest (and a free t-shirt) gave some additional inspiration, and I ended up contributing to:
- tslint-eslint-rules https://github.com/buzinas/tslint-eslint-rules
- tslint https://github.com/palantir/tslint
- node https://github.com/nodejs/node
In NodeJS, I helped increase http2 test coverage from 78% to over 95% and fixed some bugs along the way. Http2 will be out of experimental phase with Node v10 release in April 2018.
The hard part of getting into open source isn’t the code, but to figure out how to actually contribute. After the first contribution, it becomes clear and easy. While contributing, you get to learn various ways in which software is made around the world, and that helps you grow as a developer. It also gives a sense of satisfaction of giving back to the community. It’s like doing volunteer work, or working for an NGO – but in software terms. I’ll continue to contribute more when I find time, when learning new technologies or when something is blocking my team’s deliverables.
I wanted to participate because I am a fan of the open source community and the opportunities it lends to early-career people like me to interact and collaborate with experts in any field. I’ve been contributing for three years now, and have enjoyed the experience every time. Before I moved to AWS, I was the tech lead on an open source project trying to kick-start innovation at my old company.
I continue to maintain this project, along with Michael Stephens, another moderator from the same Slack community. We also started another project recently that provides a more fine-grained invite system for Slack communities. I have since become a moderator for the community as well, thanks to my contributions! 😉