I first started poking around Kubernetes in August 2016. Writing backend Go was something I had done in the past few years, and I always love new technology and exciting communities. It was a natural fit, and as soon as I found something I could help out with, the commits just started flowing!
I started checking pull requests and issues regularly. My goal was to provide valuable input, real suggestions, and help out in any way I could. I first started looking at kops while on the Infrastructure team at my last job. They really helped me get my foot in the door in the Kubernetes community. I can’t thank those guys enough, I wouldn’t be here today if it wasn’t for them. I was able to gain maintainer status after a few months of working on kops.
My role as a maintainer has followed me to my new job at Deis, where I am lucky enough to get to work on open source full-time: something that is very important to me as an engineer. I am so lucky to get to work on a tool I love, and also get paid for it as well. I honestly think I have the best job in the world.
Being a maintainer is a lot of work and responsibility. It also has a lot more to do with maintaining the project for the community than it does with getting commits in the logs.
My tasks include:
- Sorting through a few hundred emails a day via about 25 color-coded Gmail filters
- Staying up to date with issues on the go
- Take video calls, sometimes with maintainers or contributors, and sometimes one-on-one coding sessions
- Make commits that are as meaningful as possible (there is nothing more annoying than spending days coding something, just to have your PR closed with little or no explanation as to why)
- Do my best to keep the project flowing
- Prioritize items with GitHub labels
- Sneak in a bug fix or two just to scratch the coding itch.
I get a few hundred emails a day, and rarely have a full inbox. I have an iPhone 7 Plus, and try to stay up to date with issues on the go. I don’t even want to tell people what I am usually doing when I respond to most issues.
Getting involved with open source has taught me a ton!
- Technical skills: I am learning so much about things I never thought I would be using. Every once in awhile someone will contribute a piece of code that makes me go “Huh... I never knew that you could do that” or, better yet, a piece of code that looks really weird or backwards and then after talking to them about it, I realize it’s actually quite brilliant.
- Leadership and compassion: I work with a ton of engineers who come and go at their leisure, some of whom are speaking English as a second language. Learning to be compassionate and having patience has really helped me grow towards success. I have found there is always a lot more to an issue if you just spend a few extra minutes to talk to someone and figure out what is going on.
"I have found there is always a lot more to an issue if you just spend a few extra minutes to talk to someone and figure out what is going on."
Code reviews. I spend SO much time looking at other people’s code. I try my best to be the best code reviewer I can be, but it gets very hard. Sometimes I will miss a few days of reviewing, and the pull requests can really back up. I’ve found it challenging always being in the mindset that I can review code at any time. It’s easy to just let them pile up, and then tell yourself not to start until you have more free time.
I just love the community too much, I can’t pick just one.
I genuinely enjoy hanging out on Slack at 3AM. I suffer from bad anxiety and usually can’t sleep for any longer than a few hours. When I can’t sleep there is always a very friendly group of users and contributors who are also awake. Most of them live in other countries, so I rarely get to chat with them during the day here in Denver.
Some of my favorite moments are when I am actually in fairly rough shape in the middle of the night, and I get to help people get pull requests merged and issues accepted. I don’t think they realize how much of a favor they are actually doing for me in those moments.
"Some of my favorite moments are when I am actually in fairly rough shape in the middle of the night, and I get to help people get pull requests merged and issues accepted. I don’t think they realize how much of a favor they are actually doing for me in those moments."
Regardless of whether you apply this personally, professionally, or in your Go code: Don’t panic!