What project or projects do you maintain and what was your motivation for creating those projects and releasing them as open source software?

All of my personal work is open source, but the main one that I actively (try to) keep up and is used by some people are Git-it and its related repos. I have an older project, Sheetsee.js, that I’m planning on diving back into and revamping after a long hiatus.

If you created any of those projects, were they meant to solve a specific problem you faced, or were they born out of a larger opportunity you saw?

Some of my smaller tools, like for turning a spreadsheet into a markdown table or viewing GitHub issues offline, came to be because I faced that problem. But the bigger ones, I’ve created because I saw a need.

Sheetsee.js started because I believed we could make better use of free resources in order to make having a website with data more accessible. I think an underlying goal of mine is to demystify and bring barriers down to using or understanding technology. I think great and interesting things (or movements!) could come about if more people could collect and present data. There is a huge middle-ground of projects that don’t need traditional databases but there’s still a huge hurdle for new or non-developers to get started.

I started Git-it because I felt like there weren’t a lot of great tools for leaning Git and GitHub. Especially ones that included the greatest part of GitHub—collaborating. Git-it is a desktop app that walks you through using Git locally, then remotely with GitHub and with a collaborator—a robot, @reporobot, that writes to your project and reviews (and comments on) your pull request. It also teaches you terminal and doesn’t use an emulator, it’s real Git and GitHub.

How has the project evolved since you first got involved or first released it?

Sheetsee.js started out as a bit of JavaScript inside of Wordpress templates. This was a part of my Code for America fellowship project for visualizing city budgets. After that I received a Code Sprint grant from Knight-Mozilla OpenNews to build it out into its own library. I basically learned JavaScript by writing a library, which is a little bananas, and why I want to go back and re-do it all in the next month :)

Git-it used to be an application that ran in terminal, like the rest of the NodeSchool lessons. But a challenge that kept coming up is, unlike those doing the other NodeSchool lessons, those doing Git-it didn’t have the primary objective of learning Node. So it was a hurdle to have to explain and have folks install Node in order to use Git-it (and to debug installations across different machines). I eventually switched Git-it over to be an Electron.js app, which is fantastic. Now it can be more visual and users don’t have to install Node, they just download an application, a process they’re likely to be more familiar with.

How do you spend your time on those projects? (i.e. Developing, managing the community, triaging issues, etc.)

Because these projects are mostly maintained by me alone my work on them can be sporadic. There was a long period where I tried to work on something everyday but along with also working and having other life goals I got really worn out, so I took a break. I also switched teams at work and was able to work on open source there, which was fantastic. I started the Electron.js team while I was at GitHub and that project involved much more issue triaging and community work on top of developing. It’s got a great and active community.

How would you describe the community around projects you participate in? What are your favorite and least favorite aspects?

I’ve had great experiences with the Node and JS communities. Though, my least favorite parts are the bickering and tear-downs and other negative things people tend to quarrel over. Early on, I definitely was very defensive of my chosen language but have since had a coming-of-age and realize how ridiculous this kind of tribalism is.

What keeps you involved in those projects? Do you have long term plans for maintaining your involvement?

I stay involved because I still believe they are helping at least a few people. I also get massive amounts of self-inflicted guilt about working on them. I don’t really have long term plans, it would be great if they were a part of my job somehow, but that seems like a pipe dream!

What is the most important thing someone submitting an issue or patch should know?

Please fill out a description! No matter how trivial! Please! It saves time for the person reviewing; they don’t have to read your code to read your mind and it’s helpful for those learning and reading old issues/pull requests. Please write a description! And if you’re feeling extra generous some before and after screenshots are wonderful! Gifs are great!

What’s your development environment right now?

I have a 12” MacBook for general internet things and writing code that I can travel with and take to coffee shops. I have a iMac desktop at home, however, so I can do things in Illustrator, look at pictures really large and crisply and have a screen full of code. Sometimes having two machines is cumbersome, but I’ve mostly got it down now.

What was your first development environment? Do you miss anything from it?

My first setup was similar except that I just did it all on one 13” Macbook Air. I don’t miss it, it was before retina :)

Where do you see the open source software community headed?

I have no clue — anything can happen. I’d love to see open source get more financial support. A lot of people put a lot of free time into work used by so many. Also, the lack of financial security in open source makes it an impossible choice for many marginalized groups. The larger and more mixed the group of people sharing knowledge in the open, the better.