The Zapier Engineering Blog

A blog about hacking, development workflow automation, and how to get things done with less work.

The Technical Debt Behind Your Integrations Strategy

Adam DuVander / Published February 22, 2018

An integrations strategy promises to connect your software to all the other tools your customers use. Approached correctly, you can connect All The Things. But it’s not easy. With one or two integrations, maybe you can stay on top of the changes in just a handful of APIs. More...


Security Exploit Bounty Program

Mike Knoop / Published January 1, 2018

Responsible Disclosure

Security of user data and communication is of utmost importance to Zapier. In pursuit of the best possible security for our service, we welcome responsible disclosure of any vulnerability you find in Zapier. Principles of responsible disclosure include, but are not limited to:

  • Access or expose only customer...

Decreasing RAM Usage by 40% Using jemalloc with Python & Celery

Bryan Helmig / Published December 14, 2017

At Zapier, we're running hundreds of instances of Python and Celery, a distributed queue that helps us perform thousands of tasks per second. With that kind of load, the RAM usage has become a point of contention for us.

To process all the activity within our service, we run...


Minimize Downtime for MySQL Upgrades: How to Work Around RDS Limitations

Kishore Nallan / Published November 30, 2017

If you've worked on a web application backed by a relational database, you will understand how frequently the underlying schema changes. You might add or remove columns, change the type of existing columns, or add new indices as your business evolves.

While modern ORMs make such schema changes fairly simple,...


Thinking Fast and Estimating Wrong

Justin Deal / Published November 16, 2017

Software estimates are fundamentally flawed. I've always intuitively known this, but a year ago, I did a little experiment inside Zapier to prove it. Now when I say "prove," I don't mean full-on lab coats, large population, double-blind, scientific study. So please don't beat me up too much about my...


The Developer-Friendly Way to Change Your API Auth

Ben Peter / Published November 2, 2017

During the lengthy history of public-facing APIs on the Internet, the process of requiring a user's authorization has progressed through a variety of methods. It's great when an API provider supports a newer (and hopefully better) authorization method, but deprecating the older method sometimes leaves the existing users and integrations...


How Zapier Drives Upgrades for Autopilot

Ellie Wilkinson / Published October 27, 2017

Welcome to our series of case studies about our partners. This month, we sat down with the team behind marketing automation software Autopilot to learn about how Zapier has impacted their business.

Read on to learn more or jump ahead to learn how the Autopilot team increased upgrades by:


How We Onboard New Engineers at Zapier

Brian Cooksey / Published October 19, 2017

It's your first day at a new company. You walk up to the doors of the office building, anxious about what today is going to be like. You’ve only been here once before, when you interviewed, and you’d rather forget the sweaty nervous mess of a person you were that...


Open Source at Zapier

Matthew Guay / Published October 5, 2017

Software—like so many other things—is built on those that come before. Instead of reinventing the wheel every time you build something, software developers at Zapier and thousands of other companies start with open source software. You can quickly spin up a new server running Linux and other open source software,...


The 3 Best Cloud IDEs for Backend Developers

Adam DuVander / Published September 21, 2017

Developer environments are personal things, and often include various settings files, specific language and framework versions, and other individual accoutrements. When you start a new project or test something out, you may feel compelled to make some changes to your delicate personal settings. Alternatively, you could take those preferences to...