The Zapier Engineering Blog

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

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

Bryan Helmig / 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 / 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...

Thinking Fast and Estimating Wrong

Justin Deal / 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...

The Developer-Friendly Way to Change Your API Auth

Ben Peter / 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...

How Zapier Drives Upgrades for Autopilot

Ellie Wilkinson / 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 / 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...

Open Source at Zapier

Matthew Guay / 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...

The 3 Best Cloud IDEs for Backend Developers

Adam DuVander / 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...

Dogfooding Your API: How to Build New Features Faster 
by Consuming Your Code

Jared Cheney / September 7, 2017

Editor’s note: We publish occasional guest posts on the Zapier Engineering Blog, like this one from Jared Cheney, a senior software engineer at TSheets.

I believe that to build a great product, you’ve got to eat your own dog food—or, in other words, you have to use...

3 Reasons Why Your Integrations Might Be Worthless

Wade Foster / August 24, 2017

Every SaaS company I talk to wants to build integrations, and for good reason, too. When done right, integrations extend the possibilities of your app, keep customers happy, and offer great opportunities for partnerships with other SaaS companies. Yet, there’s more to successful integrations than slapping some APIs together...