Last updated on October 26th, 2021 at 1:46am
At cloudtamer.io, we benefit greatly from open source. The database that the product runs on is MySQL, the language we use to build our microservices is Go, and our continuous compliance engine leverages Cloud Custodian. One of our core values is focused on not reinventing the wheel. When a high-quality, open source option is available, we tend to gravitate towards that as opposed to rolling our own solution where viable.
Taking this commitment to open source further, we strive to be productive members of whatever open source community we find ourselves in by contributing to the code base, documentation, and user experience.
To us, being part of the open source community doesn’t mean just anonymously taking other people’s work and trying to commercialize it. We look to join the communities and contribute back to the code base wherever we can.
I've contributed in various ways to open source projects. Whether it’s documentation updates to the open sourced AWS documents, updating an Ansible module to take advantage of new APIs or feature sets, or answering issues in a Gitter channel or on a repo, I really enjoy giving back to these communities.
We have a team of passionate professionals at cloudtamer.io. Here are a few ways we're contributing to open source communities. Read to the end if you're curious about how to give back to the open source community: I've included a few resources!
A Kotlin Contribution to Slack
Recently, full-stack engineer Evan Rittenhouse made a contribution to the SDK for Slack using his favorite language, Kotlin. Internally, we built a full-stack web application during one of our innovation days which would grant employees the ability to create and contribute to fund “campaigns” for cool stuff employees would like to add to the office or for fun company events. Because we were using Kotlin on the back end, we were using Slack’s Java SDK to post notifications about the campaigns’ funding progress to increase employee engagement with them. Evan saw room for improvement for the SDK by way of the Kotlin language’s domain-specific-language features which would make laying out richly formatted messages much easier. He got to work and the new Block Kit Kotlin DSL was released in the Slack Java SDK’s 1.1.0 version. This would be a significant ease-of-use improvement for all Kotlin users using the SDK in the future.
Contributing to Cloud Custodian
We recently integrated Cloud Custodian into cloudtamer.io as part of our continuous compliance engine. Through our delivery and support team, we received a request to be able to run compliance checks on AWS application, network, and classic load balancers that didn’t have settings, such as cross-zone load balancing, enabled. After analyzing Cloud Custodian’s capabilities, we realized that we’d have to make a pull request (PR) to the open source project in order to fulfill our customer’s needs. We ended up doing just that, adding two new features to Cloud Custodian to better support our customers, as well as to give back to the community. It never crossed our mind to maintain a fork and keep these changes to ourselves – we were excited for the opportunity to give back in whatever way we could. We really enjoyed the experience of interacting with the wonderful maintainers of the project.
"Go Get" File Property Details for Windows
Our CTO, Joseph Spurrier, created a package in Go that allows developers to embed the Windows file property details and icon when they build their applications. The library leverages another open source project for embedding the application icon. Prior to the library, developers had to use other tools to generate and then embed the file information themselves. Since the release, the package has had 7 other code contributors from the community and been used by companies such as Microsoft, Debian, Red Hat (OpenShift), GitHub, Keybase, New Relic, and Yubico (YubiKey).
Going forward, we are looking for opportunities to contribute our own libraries and utilities as open source projects for the betterment of the community. We also plan to continue to contribute to projects such as Cloud Custodian, particularly as our Google Cloud Platform (GCP) offering is released and gets more mature while Cloud Custodian’s support is still in beta.