The Zapier Engineering Blog
A blog about hacking, development workflow automation, and how to get things done with less work.
Make Your API as Popular as Pie
Scaling Zapier to Automate Billions of Tasks
This post is about a year old now, and most of these numbers are about double/triple (either in number of instances or instance sizing). We're actively investigating and rolling out Kubernetes for container orchestration and working on some performance...
Why Zapier Doesn't Use Gevent (Yet)
At Zapier, we make a lot of outbound API requests. Almost 500 per second, to be exact. That means we spend a long time waiting for those APIs to get back to us—particularly if a popular service is experiencing issues. In fact, if you were to add up all the...
Do Apps That Integrate With Zapier Have Lower Churn?
At Zapier, we like to test claims against facts.
With that in mind, we recently partnered with our friends at Typeform to validate the proclamation of the Zapier Developer Platform: "Make your app stickier than honey." That is, when an app integrates with Zapier (in effect, integrating with over...
React JS Tutorial and Guide to the Gotchas
If you haven't used React at all, you're in the right place. If you have used React, but you've run into some confusing edges, you're still in the right place. This guide covers all the basics as well...
!-->Unlock Your Database and Create a Business Intelligence Radar in One Move
One of the best aspects of Zapier's company culture is that the whole team does customer support. On top of that, we eat our own dog food—the Zapier team relies on many Zaps. Together, these practices give each teammate a stake in our customers' concerns, and they often expose us...
When REST Gets Messy
Back in January, we launched a new version of the Developer Platform – the place where companies can add their APIs to Zapier. Part of that project involved converting the existing views – standard Django forms – into Backbone.js views powered by a yet-to-be-written API. It was a fun project...
How to Set Up TravisCI-like Continuous Integration with Docker and Jenkins
Lately, I've been working on a number of improvements to our continuous integration setup here at Zapier. It's a delicious combination of Jenkins, Docker and the Github Commit API that anyone can accomplish with a little work!
The Vision
Before delving into our continuous integration (CI) setup, it's important...
Profiling Python Like a Boss
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. ~Donald Knuth
It is unwise to embark on an optimization quest without first considering the famous quote by Knuth. However, sometimes that quick and hacky O(N^2) code you wrote (and...
Debugging Python Like a Boss
def make_pie(self, ingredients): print '******WHAT IS GOING ON HERE******' print ingredients self.oven.preheat() print self.oven.temperature
Is the above code snippet similar to your tried-and-true debugging techniques? Yea, that used to be me too. Honestly, it's not so bad....