The Zapier Engineering Blog

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

Qim: Select from Your Immutable JavaScript Cake and Update It Symmetrically Too

Justin Deal / Published June 29, 2017

If you're reading this article, you're probably wondering a few things:

  1. What the heck is Qim?
  2. What the heck do I mean by "symmetrically"?
  3. Is "JavaScript cake" a useful analogy or just an attempt to be clever?
  4. How do I pronounce Qim?

So, let me try to answer those right...


The CTO Journey at a Small Startup

Bryan Helmig / Published June 22, 2017

As startups grow, we need to make tweaks to the way we work. I’ve found this especially true in engineering. As a co-founder and CTO, my own role has changed a lot over the years. My everyday duties and challenges have shifted, and I’ve had to alter my approach multiple...


Authentication for Great Apps

Adam DuVander / Published June 15, 2017

Chances are, if you’re building an app you’d like it to be a great app. There are many things that go into making something great, from solving important problems to user experience and more. We believe extensibility is one of those aspects. Users want to their apps to integrate...


API Lifecycle, Versioning, and Deprecation

Ben Peter / Published June 8, 2017

Every API integration comes to life the same way. Someone reads the API docs for a service's endpoints, writes some code to get things connected, and boom, the integration is born!

There's only one problem. Every API integration ages slowly over time, and eventually has a "retirement date" lurking...


How to Move from a Non-technical Role into Engineering

Regan Starr / Published June 1, 2017

You don't have to start out as a developer—I didn't. You can start out in any career, and then work your way into an engineering position. Depending on your company structure, you might have your work cut out for you. I was fortunate that Zapier's management was deeply encouraging when...


Behind the Scenes: How We Built Our Developer CLI

Bryan Helmig / Published May 25, 2017

When we started building our first version of the Zapier developer platform in 2012, we were unsure if engineers would devote much time to building apps on Zapier. At that time we had only around 10,000 users—so we focused on a browser interface that lets anyone build Zapier apps, regardless...


Tools for Remote Software Development and Pair Programming

Brian Cooksey / Published May 18, 2017

For all the benefits that a remote office offers, there are times when I wish I could roll my chair over to a coworker's desk for a minute and chat through a complicated bug or tough technical decision. Asynchronous communication doesn’t always work for those tricker issues. Thankfully, the last...


How to Handle API Downtime at Scale

Adam DuVander / Published May 11, 2017

Downtime happens, even to the Internet’s largest players. While 100% uptime is the goal, no engineer actually expects it. That’s why we talk about uptime in terms of "the number of nines.” For example, five nines refers to 99.999% uptime, which means a system is inaccessible less than one second...


9 Lessons Learned Launching Integrations With 750+ Apps

Wade Foster / Published May 4, 2017

After working with hundreds of SaaS APIs, we’ve noticed plenty of best practices–and a handful of anti-patterns–of a technical nature. It’s rarely the status codes or authentication mechanisms that make the difference with these integrations. There’s a human element that is much more important, as we’ve noticed expanding Zapier from...


Build Yourself a Redux

Justin Deal / Published April 27, 2017

Redux is a simple library that helps you manage the state of your JavaScript app. Despite that simplicity, it's easy to fall down rabbit holes when learning it. I often find myself explaining Redux, and almost always start by showing how I'd implement it. So that's what we'll do here:...