Open Source & Engineering Culture
The open source community is a magical thing. Need an A/B testing platform? How about an entire admin interface? How about built-in Facebook authentication? There are projects for all of these things, in most of the languages you can think of. But what happens when your tech team is tasked with building a feature for which there is no open source project? This is exactly the problem we faced when tasked with building the #DadIsRad microsite, which made heavy use of the Pixlee API. Pixlee is a fantastic service that let our head of social personally approve photos from Instagram to bring into our #DadIsRad microsite. Pixlee had an awesome hosted admin interface, but there was no ruby gem allowing us to call their API programmatically to pull down the approved photos we wanted to use. We could have taken the easy way out and simply done some Net::HTTP requests, but we thought it would be more fun to build a gem for everyone to use in their own projects. So we did.
But this blog post isn’t as much about the Pixlee gem as it is about building up an engineering culture that values and promotes taking time to build things in a way that is open source-able. Just like most companies these days, Harry’s makes use of the unbelievable amount of open source software available to help build what runs our site and infrastructure. I think as developers we tend to take this for granted without realizing not only how much time this saves us, but how good the projects out there really are. The idea that you should build in time to open source doesn’t usually gel well with the notion that you should be moving as fast as possible to get Feature A out the door. It takes an understanding from every functional team in the organization and takes special consideration on the engineering side when planning out and building features. Our Pixlee gem is a very small step in the right direction (and please tear it apart, find bugs, and open a pull request!). We hope to open source more and more interesting parts of our infrastructure in the future, and hope that others find awesome uses for them. One of our team’s core values is that we should step up and take ownership of tasks when appropriate. This Pixlee gem is the first public expression of that value by our engineering team.
You can check out the Pixlee gem at GitHub or add it by adding the line
gem “pixlee” to your Gemfile.