One of the core principles of Shutterstock is to provide the digital building bocks for designers to produce creative content. Within the tech team, we think of ourselves as doing that at a lower level: we provide the digital building blocks to make the Shutterstock sites possible. We do this implicitly, by creating code that serves millions of pageviews a day, and explicitly, by creating building blocks that other developers can use to be more productive and gain more insight into their work. We hope to talk a lot about building blocks on this blog.
All of our sites are built on the LAMP stack, with the “P” being Perl. Perl isn’t the sexiest of languages these days, but there’s a ton of exciting things going on in the Perl world lately, from its post-modern object framework to the unmatched number of libraries freely available on CPAN. We’ll be talking more about Perl, and why we consider it to be the sexiest unsexy language around.
We’re also proud to use open source software in all parts of our site. In fact, until recently we could say that every packet entering and leaving our site traveled through commodity hardware running on an open source stack (we just moved to commercial firewalls and load balancers — but everything else remains open source). Our team contributes to a few open source projects, which we keep track of at code.shutterstock.com.
We’ve been inspired by recent trends to merge development and operations teams, and we try to actively promote that within our own group. We’re doing cool things to bring performance data into the hands of developers, and allow people to monitor how their changes affect key site metrics. We’ll be showing off some of what we’ve come up with soon.
Finally, we’re fervently agile. We release code to production as often as we can. Instead of treating frequent code pushes as a risk, we treat our rate of deployments as a matter of pride. We work in two-week iterations, crave user feedback, and pivot based on the metrics we collect.
We’ll be talking about all these topics and a lot more on this blog. We welcome your comments as we reveal some of our favorite projects and practices.