Scaling Zapier to Automate Billions of Tasks

22,178
Zapier
Zapier is for busy people who know their time is better spent selling, marketing, or coding. Instead of wasting valuable time coming up with complicated systems - you can use Zapier to automate the web services you and your team are already using on a daily basis.

Editor's note: By Bryan Helmig, ‎Co-founder & CTO at Zapier



Zapier is a web service that automates data flow between over 500 web apps, including MailChimp, Salesforce, GitHub, Trello and many more.

Imagine building a workflow (or a "Zap" as we call it) that triggers when a user fills out your Typeform form, then automatically creates an event on your Google Calendar, sends a Slack notification and finishes up by adding a row to a Google Sheets spreadsheet. That's Zapier. Building Zaps like this is very easy, even for non-technical users, and is infinitely customizable.

As CTO and co-founder, I built much of the original core system, and today lead the engineering team. I'd like to take you on a journey through our stack, how we built it and how we're still improving it today!

The Teams Behind the Curtains

It takes a lot to make Zapier tick, so we have four distinct teams in engineering:

  • The frontend team, which works on the very powerful workflow editor.
  • The full stack team, which is cross-functional but focuses on the workflow engine.
  • The devops team, which keeps the engine humming.
  • The platform team, which helps with QA, and onboards partners to our developer platform.

All told, this involves about 15 engineers (and is growing!).

The Architecture

Our stack isn't going to win any novelty awards — we're using some pretty standard (but awesome) tools to power Zapier. More interesting are the ways we're using them to solve our particular brand of problems, but let's get the basics out of the way:

The Frontend

We're smack in the middle of transitioning from Backbone to React. We use Babel for ES6 and Webpack + Gulp to compile the frontend. We rely heavily on CodeMirror to do some of the more complex input widgets we need, and use React + Redux to do much of the heavy lifting for the uber-powerful Zap editor.

The Backend

Python powers a large majority of our backend. Django is the framework of choice for the HTTP side of things. Celery is a massive part of our distributed workflow engine. Most of the routine API work is done with the epic requests library (with a bunch of custom adapters and abstractions).

The Data

MySQL is our primary relational data store — you'll find our users, Zaps and more inside MySQL. Memcached and McRouter make an appearance as the ubiquitous caching layer. Other types of data go in other data stores that make more sense. For example, in-flight task counts for billing and throttling find themselves in Redis, and Elasticsearch stores historical activity feeds for Zaps. For data analysis we love us some AWS Redshift.

The Platform

Most of our platform is nestled inside our fairly monolithic core Python codebase, but there are lots of interesting offshoots that offer specialized functionality. The best example might be how we utilize AWS Lambda to run partner/user provided code to customize app behavior and API communication.

The Infrastructure

Since Zapier runs on AWS, we have quite a bit of power at our fingertips. EC2 and VPC are the centerpiece there, though we do use RDS where possible along with copious numbers of autoscaling groups to ensure the pool of servers are in tip-top shape. Jenkins, Terraform, Puppet and Ansible are all daily tools for the devops team. For monitoring, we can't rave enough about Statsd, Graylog, and Sentry (they're so good).

Some Rough Numbers

These numbers represent a rough minimum to help the reader guage the general size and dimensions of Zapier's architecture:

  • over ~8m tasks automated daily
  • over ~60m API calls daily
  • over ~10m inbound webhooks daily
  • ~12 c3.2xlarge boxes running HTTP behind ELB
  • ~100 m3.2xlarge background workers running Celery (split amongst polling, hooks, email, misc)
  • ~3 m3.medium RabbitMQ nodes in a cluster
  • ~4 r3.2xlarge Redis instances - one hot, two failover, one backup/imaging
  • ~12 m2.xlarge Memcached instances behind ~6 c3.xlarge McRouter instances
  • ~10 m3.xlarge ElasticSearch instances behind ~3 m3.xlarge no-data ElasticSearch instances
  • ~6 m3.xlarge ElasticSearch instances behind ~1 c3.2xlarge Graylog server
  • ~10 dc1.large Redshift nodes in a cluster
  • 1 master db.m2.2xlarge RDS MySQL instance w/ ~2 more replicas for both production reads and analysis
  • a handful of supporting RDS MySQL instance (more details below)
  • ...and tons of microservices and miscellaneous specialty services

Improving the Architecture

While the broad strokes of the architecture remain the same - we've only performed a few massive migrations - a lot of work has been done to grow the product in two categories:

  1. Supporting big new product features
  2. Scaling the application for more users

Let's dive into some examples of each, with as many nitty-gritty details as possible without getting bogged down!

Big Features like Multi-Step Zaps

When we started Zapier (fun fact: it was first called Snapier!) at a Startup weekend, we laid out the basic architecture in less than 54 hours (fueled by lots of coffee and more than a few beers). Overall, it was decent. We kept the design really, really simple, which was the right call at the time.

Except where it was too simple. Specifically, we made Zaps two-stepped: a trigger paired with an action, full stop.

It didn't take long for us to realize the missed opportunity, but the transition was going to be pretty complex. We had to implement a directed rooted tree with support for an arbitrary numbers of steps (nodes), but maintain 1-to-1 support for existing Zaps (of which there were already hundreds of thousands). And we had to do that while preserving support for hundreds of independent partner APIs.

Starting at the data model, we built a very simple directed rooted tree implementation in MySQL. Just imagine a table where every row has a self-referencing parent_id foreign key, plus an extra root_id foreign key to simplify queries, and you pretty much got it. We discussed switching to a proper graph database (like neo4j) but decided against it because the sorts of queries we make are simple and over isolated graphs of smaller sizes (roughly ~2-50 nodes).

A key aspect to make this work is inter-step independence. Every step has to consume some data (which folder to read from or which list ID to add to, for example), do some API magic, and return some data (say, the new file created or the new card added to a list), but otherwise be ignorant of its placement in the workflow. Each independent step is as dumb as a rock.

In the middle exists the omniscient workflow engine which coordinates independent Celery tasks by stringing together steps as tasks — one step feeding into the next as defined by the Zap's directed rooted tree. This omniscient engine also houses all the other goodies like error & retry handling, reporting, logging, throttling and more.

Even after we nailed the backend support, we had another huge problem: how do you build a UI for this thing?

First, you make sure you have some amazing designers and Javascript engineers on the team. Then you wrestle with nested Backbone views for a while before moving onto React. :-) In all seriousness: React is a godsend for the sorts of complex interfaces we are building.

One of the unique things about React is the performance characteristics are developer friendly, but only as long as you have your data figured out. If you aren't using immutable data structures, you should use some structural sharing library to do all mutations, along with deep Object.freeze() in development to catch spots where you attempt mutation directly.

There are tons of challenges in building such a complex UI, much of it around testing and feedback, but a huge amount of time was spent just getting the long-tailed data from different APIs to fit elegantly into the same places. Just about every weird shape of data has to be accounted for.

Finally, we were tasked with getting the new editor in front of users for alpha and beta testing. To do this we shipped both versions of the editor simultaneously and used feature switches to opt users in. We did months and months of testing and tweaking before we were happy with the result - you can check out the Multi-Step Zap launch page to get an idea of where it ended up.



Scaling the Application

It would all be for nought if the service isn't up and running reliably. As such, much of our attention is focused jointly on application design to support horizontal scalability and redundant infrastructure to ensure availability.

Some of the wiser decisions we've made so far is to double down on tech we're comfortable with and spin out isolated functionality when we hit a bottleneck. The key is to reuse the exact same solution and move it to another box where it is free to roam fresh pastures of CPU and RAM.

For example, over the last year or so we noticed session data had eaten up a ton of our primary database's IO and storage. Since session data is effectively a key/value arrangement with softer consistency requirements, we heavily debated options like Cassandra or Riak (or even Redis!), but ultimately decided to stand up a dedicated MySQL instance with a single sessions table.

Our instinct as engineers was to find the tool best suited to the job, but as a practical matter, the job didn't warrant additional operational complexity. We know MySQL, it can do simple key/value storage and our application already supports it. Talk about a no-brainer.

Further, careful design of the application can make horizontal scaling equally simple. Long running background tasks (like our Multi-Step Zaps) aren't bound by strict consistency requirements due to their light write pattern, so it is trivial (and safe!) to use MySQL read-only replicas as the primary touch point. Even if we occasionally get horrible replica lag measured in the minutes, 99.9% of Zaps aren't changing — and certainly aren't changing soon — so they continue to hum along.

Another good practice is to assume the worst. Design for failure from the beginning. While usually this is easier said than done, nowadays it is actually surprisingly easy to do. For starters: use auto scaling groups with auto-replacement. A common misconception is that ASGs are only for scaling to accommodate fluctuating load. Wrong! The ASG + ELB combo can be your backbone of reliability, one that enables you to randomly kill instances without worry since they get replaced in quick order.

Somehow we keep re-learning that the simpler the system is, the better you'll sleep.

The Day-To-Day

Locally, our engineers enjoy a fully functioning environment courtesy of Docker. docker-machine and docker-compose together stand up proper versions of MySQL, Memcached, Redis, Elasticsearch as well as all the web and background workers. We generally recommend running npm and even runserver locally, as file watching is kind of broken with VirtualBox.

The canonical GitHub "pull request model" drives most of our projects that are engineering focused, where day-to-day work is logged and final code review happens before merging. Hackpad houses the majority of our documentation, including copious onboarding documentation.

A big thing at Zapier is all hands support. Every four or five weeks, every engineer spends a full week in support helping debug and fix difficult customer issues. This is hugely important to us as it provides a baseline for understanding customers' pain (plus, you might have to deal with the bug you shipped!).

For CI and deployment, we use Jenkins to run tests on every commit in every PR as well as to provide a "one-click deploy" that anyone at the company can press. It's not uncommon for a new engineer to click the deploy button the first week on the job!

We have a full staging environment in a standalone VPC, as well as a handful of standalone web boxes perfect for testing long lived pull requests. Canary deploys to production are common — complete with full logs of any errors courtesy of Graylog.

You Can Zapier, Too!

Developers can use Zapier to do some pretty awesome stuff.

In addition to Multi-Step Zaps, we've also launched the ability to write Python and Javascript as Code steps in your workflow. No need to host and run scripts yourself — we take care of all of that. We also provide bindings to call out to the web (requests and fetch) and even store a bit of state between runs!

Our users are employing Code steps to build Slack bots (and games!), to replace one-off scripts and lots more. I personally use Code steps to write bots and tools to track code & bug metrics to a spreadsheet, transform oddly formatted data and replace a ton of crontabs.

Or, if you have an API that you want non-developers to be able to consume, we have a pretty epic Developer Platform, too. Simply define your triggers, searches and actions, and any user can mix your API into their workflows and integrate your app with over 500 apps like GitHub, Salesforce, Google Docs, and more.

And, we are often hiring, so keep an eye on our jobs page if you'd like to help us help people work faster and automate their most tedious tasks!


Zapier
Zapier is for busy people who know their time is better spent selling, marketing, or coding. Instead of wasting valuable time coming up with complicated systems - you can use Zapier to automate the web services you and your team are already using on a daily basis.
Tools mentioned in article
Open jobs at Zapier
Engineer, Backend (Developer Experien...
NAMER
<p><strong>Job Posted:</strong></p> <p><strong>Location: This role is hiring for folks in the Americas time zones (UTC-5 to UTC-8)&nbsp;</strong></p> <p>Hi there!</p> <p>We're looking for a Backend Engineer to join the Developer Experience team at Zapier. Zapier’s on a mission to make everyone more productive at work. And on the DX team this is especially true for our internal developers! Zapier has helped millions of people build businesses through the power of automation. The Developer Experience team identifies and addresses engineering challenges by providing tools, patterns, support, and fostering a collaborative ecosystem that establishes best practices, bringing joy and speed to daily engineering workflows.</p> <p>If you’re interested in advancing your career at a fast-growing, profitable, impact-driven company, then read on…</p> <ul> <li><a href="https://zapier.com/jobs/our-commitment-to-applicants/">Our Commitment to Applicants</a></li> <li><a href="https://zapier.com/jobs/culture-and-values-at-zapier/">Culture and Values at Zapier</a></li> <li><a href="https://zapier.com/learn/remote-work/">Zapier Guide to Remote Work</a></li> <li><a href="https://zapier.com/jobs/zapier-code-of-conduct/">Zapier Code of Conduct</a></li> <li><a href="https://zapier.com/jobs/working-on-diversity-and-inclusivity/">Diversity and Inclusivity at Zapier</a></li> </ul> <p>&nbsp;</p> <h2><strong>About You&nbsp;</strong></h2> <p><strong>You love building. </strong>You have 2 - 4 years of experience as a Software Engineer building and shipping distributed, scalable web-applications. You're familiar with Python, CI/CD, service bootstrapping, and you enjoy driving improvements across the DX journey: Design, Develop, Test, Release, Run, Observe, Evolve, and Scale. Zapier is built on Python, Django, React, Node.js, and AWS with Terraform, Gitlab CI, and Docker and previous experience with some of these technologies will help you hit the ground running.</p> <p><strong>You are an advocate for the developer experience. </strong>You identify internal developer platform capabilities that are missing or need improvement. You are proactive and empathetic in working with developers to understand their challenges and needs. You drive sustainable solutions and patterns that can be applied across engineering teams.</p> <p><strong>You value collaboration.</strong> You understand that building modern software is a team sport, and you enjoy working as part of a tight-knit team. You’re happy to pitch in and help the team, whether by reviewing code, pairing on a tricky problem, or brainstorming with the team about how to solve the challenges we’re facing.</p> <p><strong>You value exploration and versatility.</strong> You are comfortable learning about other teams’ codebases and implementation. This will involve working with other teams, becoming familiar with their developer workflow, and collaborating with stakeholders on the other teams to solve engineering wide challenges.</p> <p><strong>You are vocal and discerning about development best practices.</strong> Your opinions on development best practices and software design are informed and assertive. You understand the delicate balance between meticulous planning and pragmatic decision-making. This insight enables you to identify which decisions require careful deliberation and where agility and shortcuts are appropriate, ensuring that development is both strategic and adaptable to the dynamic needs of the project.</p> <p><strong>You advocate for the user.</strong> You have a keen eye for developers' needs, and you’re empathetic to the needs of the end-user. When you see users struggling to succeed you take it as a personal challenge to understand why and help the team build a better product.</p> <p><strong>You care about the 'why' more than the 'what'.</strong> Your approach to engineering isn't just about ticking boxes or following directives. You deeply value clarity and purpose in your work. If priorities seem nebulous or not optimized, you're confident and proactive in seeking clarity, ensuring that the team's efforts align with the broader vision. Misalignments don't escape your keen eye, and you're quick to flag them, ensuring that the team remains on a coherent and impactful trajectory.</p> <p>​​<strong>You embody the "let's make it work" ethos.</strong> Challenges, whether monumental or minuscule, don't deter you. You dive in with a can-do attitude, unfazed by the magnitude or nature of the task. You understand that in the broader scheme of things, not every task will be about building the next flashy feature. Sometimes, it's about fortifying the foundations, ensuring that the system is robust and resilient. You're discerning enough to know when to invest time in hardening the system versus when to prioritize speed. In essence, you're a true team player, understanding that every task, no matter how glamorous or mundane, plays a pivotal role in the team's collective success.</p> <p>&nbsp;</p> <h2><strong>Things You Might Do&nbsp;</strong></h2> <p>Zapier is a small, fast-growing, and remote-first company, so you'll likely get experience on many different projects across the organization. That said, here are some things you'll probably do:</p> <ul> <li>Directly impact how our customers can be more productive by building and supporting the foundational building blocks for shipping code at Zapier.</li> <li>Set standards for how applications at Zapier are built with our internal application bootstrapping tools and templates.</li> <li>Refactor or improve existing code as languages, frameworks, or techniques evolve. Help the team pick appropriate tools to solve new problems as they arise.</li> <li>Work closely with our product engineering teams to make it easy for them to ship code fast.</li> <li>Help put tools, processes, and documentation in place to help us become a better, more effective organization.</li> <li>Help teach your colleagues new skills, through code review, discussions and mentoring. Help us all become better engineers and humans.</li> <li>Help Zapier ship to hundreds of thousands of users every day while having lots of autonomy in terms of code and feature ownership.</li> </ul> <p>You’ll also have the opportunity to specialize in a variety of areas of the Zapier codebase. Focusing on a specialization will not limit your growth at Zapier as we believe that each engineer brings a unique perspective and can contribute in all areas. We encourage collaboration and will frequently have engineers contribute across teams to assist with projects.</p> <p>&nbsp;</p> <h2><strong>Zapier Compensation Guiding Principles</strong></h2> <p>We believe all Zapiens should be rewarded competitively and equitably, using practices that are simple and transparent. This philosophy ensures we’re able to find, grow, and retain exceptional people from a broad range of backgrounds. Here’s how we define our compensation principles:</p> <ul> <li>Competitive: Zapier pays well among the technology sector.</li> <li>Equitable: Consistent pay practices; competency-based pay.</li> <li>Simple: Pay is well understood, and pay practices are built for scale.</li> <li>Transparent: Zapiens know how pay works, including how their pay is determined.</li> </ul> <p><strong>The pay ranges for this role are:</strong></p> <p>United States: 138,400-181,600 USD</p> <p>Canada: 138,400-181,600 CAD</p> <p>A Candidate's compensation package is finalized once the interview process is concluded and accounts for experience, competencies (job knowledge, skills and abilities) and internal equity.</p> <p>For more information on Zapier’s Total Rewards please click<a href="https://zapier.com/l/jobs/total-rewards"> here</a>.</p> <p>&nbsp;</p> <h2><strong>How to Apply</strong></h2> <p>At Zapier, we believe that diverse perspectives and experiences make us better, which is why we have a non-standard application process designed to promote inclusion and equity. We're looking for the best fit for each of our roles, regardless of the type of education or companies in your background, so we encourage you to apply even if your skills and experiences don’t exactly match the job description. All we ask is that you answer a few in-depth questions in our application that would typically be asked at the start of an interview process. This helps speed things up by letting us get to know you and your skillset a bit better right out of the gate. Please be sure to answer each question; the resume and CV fields are optional.</p> <p>After you apply, you are going to hear back from us—even if we don’t see an immediate fit with our team. In fact, throughout the process, we strive to never go more than seven days without letting you know the status of your application. We know we’ll make mistakes from time to time, so if you ever have questions about where you stand or about the process, just ask your recruiter!</p> <p>Zapier is an equal-opportunity employer and we're excited to work with talented and empathetic people of all identities. Zapier does not discriminate based on someone's identity in any aspect of hiring or employment as required by law and in line with our commitment to Diversity, Inclusion, Belonging and Equity. Our<a href="https://zapier.com/jobs/zapier-code-of-conduct/"> code of conduct</a> provides a beacon for the kind of company we strive to be, and we celebrate our differences because those differences are what allow us to make a product that serves a global user base.</p> <p>Zapier is committed to inclusion. As part of this commitment, Zapier welcomes applications from individuals with disabilities and will work to provide reasonable accommodations. If reasonable accommodations are needed to participate in the job application or interview process, please contact <a href="mailto:jobs@zapier.com">jobs@zapier.com</a>.</p> <div><strong>Application Deadline: </strong>The anticipated application window is 30 days from the date job is posted, unless the number of applicants requires it to close sooner or later, or if the position is filled.</div> <p><em>Even though we’re an all-remote company, we still need to be thoughtful about where we have Zapiens working. Check out<a href="https://docs.google.com/document/d/1VzesvLsgVG2RDRPtGvBF8CbcB9ZA-Hsddg0P2ildBb8/edit"> this resource</a> for a list of countries where we currently cannot have Zapiens permanently working.</em></p> <p>#LI-Remote</p>
Engineering Manager, Developer Enable...
NAMER
<p><strong>Job Posted: 1/4/24</strong></p> <p><strong>Location: Americas (Pacific Time)</strong></p> <p>Hi there!</p> <p>Zapier’s on a mission to make everyone more productive at work.&nbsp; With millions of people benefiting from automation, we're excited to keep expanding our product and team. As we continue to scale our product and grow our team, we’re looking for an experienced <strong>Engineering Manager</strong> to manage <strong>a remotely distributed team of Site Reliability Engineers</strong>.</p> <p>Our Site Reliability Engineers collaborate closely with developers, aiding in the design, automation, and maintenance of services. While developers manage the services themselves, our SREs ensure they have the necessary tools and knowledge for success.</p> <p>In this role, you'll work across various teams, ensuring your group offers the right support to developers. You'll coordinate multiple projects and collaborate directly with senior leaders to set project priorities. By nurturing your team's talents, you'll enhance application reliability through a software engineering approach to operations. This position allows you to impact every engineering team within the organization, utilizing a wide range of technologies. Maintaining strong relationships and effective communication with teams is key to your success.</p> <p>When issues arise, your team will be there to address root causes, learn from failures, and establish a robust and resilient system for our customers. We prioritize solutions that automate problems rather than relying on manual efforts.</p> <p>Join us in our mission to revolutionize productivity through automation!</p> <p>&nbsp;</p> <h2><strong>Things We've Done Recently:</strong></h2> <ul> <li>Developed numerous microservices within Kubernetes, spanning across multiple AWS accounts.</li> <li><a href="https://www.cncf.io/blog/2022/01/21/keda-at-zapier/">Actively participated in open-source Kubernetes initiatives to bolster our stack's autoscaling capabilities.</a></li> <li>Scaled our infrastructure to effortlessly manage millions of daily requests.</li> <li>Successfully executed substantial migrations involving hosting providers, database platforms, and stateful technologies.</li> <li>Established efficient deployment pipelines utilizing GitLab and ArgoCD to facilitate continuous delivery.</li> <li>Crafted user-friendly tools for instantaneously launching new Kubernetes services with a simple click.</li> <li>Our journey has been filled with growth and innovation, and we're excited to continue pushing boundaries!</li> </ul> <p><em>We know applying for and taking on a new job at any company requires a leap of faith. We want you to feel comfortable and excited to apply at Zapier. To help share a bit more about life at Zapier, here are a few resources in addition to the job description that can give you an inside look at what life is like at Zapier. Hopefully, you'll take the leap of faith and apply.</em></p> <p><a href="https://zapier.com/jobs/our-commitment-to-applicants/">Our Commitment to Applicants</a></p> <p><a href="https://zapier.com/jobs/culture-and-values-at-zapier/">Culture and Values at Zapier</a></p> <p><a href="https://zapier.com/learn/remote-work/">Zapier Guide to Remote Work</a></p> <p><a href="https://zapier.com/jobs/zapier-code-of-conduct/">Zapier Code of Conduct</a></p> <p><a href="https://zapier.com/jobs/working-on-diversity-and-inclusivity/">Diversity and Inclusivity at Zapier</a></p> <p>&nbsp;</p> <h2><strong>About You</strong></h2> <ul> <li> <p><strong>You're an effective team builder</strong>. This isn't your first leadership role and you've been in a direct leadership role for at least two years. You know how to hire, train, and develop Site Reliability Engineers from all backgrounds. You understand the benefits of building a diverse and inclusive SRE team. You value teamwork and believe in helping others feel safe to grow and develop. You help engineers get better at what they do, and you don’t need to be in the same room to help them succeed.</p> </li> <li> <p><strong>You have a background in site reliability engineering.</strong> You’re comfortable talking about SLOs, incident management, and building a culture of reliability. You have empathy for our customers and our engineers who use our systems and are eager to make improvements for them. You seek to reduce toil and understand what it means to take a software engineering approach to operations.</p> </li> <li> <p><strong>You're customer-focused</strong>. You seek to delight your customers. You have experience working directly with both internal and external customers to understand their needs. You know how to take a customer problem and help guide your team towards finding and implementing the best solution.</p> </li> <li> <p><strong>You have excellent communication skills</strong>. You regularly work with engineers and other stakeholders, balancing engineering concerns (such as technical debt) with product concerns. Not only do you know how to share your knowledge with the team and document things well so they can be consumed asynchronously (we do this a lot as a remote company), but you know how to communicate effectively with software and support teams.</p> </li> <li> <p><strong>You’re a strong leader.</strong> You lead by example and empathy, understand the business and how to prioritize project work, emphasize mentorship, and create an environment of learning. You understand that experimentation is essential and know how to support your team through that process. You encourage diversity of thought and know that the team is collectively stronger than any individual.</p> </li> <li> <p><strong>You know the cloud</strong>. You’ve designed and maintained highly available, cloud-based infrastructures in AWS or another cloud offering. You understand how to leverage infrastructure as code tools and have experience implementing best practices for reliability and observability.&nbsp; We use Terraform, Kubernetes, Redis, GitLab, and Datadog.</p> </li> <li> <p><strong>You can code.</strong> You have experience with a language like Python or Go to create automated tools. You believe in hands-off deployments and infrastructure as code. Well-honed expertise with the fundamentals of software development goes a long way here.</p> </li> <li> <p><strong>You value our values</strong>. At Zapier, our values are at the heart of how we work together and think about our customers. In our remote setting, they help develop trust and ensure we work and collaborate to democratize automation. You see how these values can empower meaningful work, thrive in a collaborative setting, and are eager to continue growing excited to be part of the team.</p> </li> </ul> <p>&nbsp;</p> <h2><strong>Things You’ll Do</strong></h2> <p>Zapier is a fast-growing company, so you'll likely get experience on many different projects across the organization. Here are some things you'll probably do:</p> <ul> <li> <p>Collaborate closely with engineering peers to deliver high-quality, reliable, and efficient production software.</p> </li> <li> <p>&nbsp;Champion the advancement of Site Reliability Engineering practices within the Engineering department.</p> </li> <li> <p>Lead the development of incident management processes and on-call response procedures.</p> </li> <li> <p>Operate within an agile framework to provide essential infrastructure for Zapier's engineering team.</p> </li> <li> <p>Execute the strategic vision of Production Engineering by identifying and delivering relevant backlog items.</p> </li> <li> <p>Foster effective communication, monitoring, and leadership through weekly one-on-ones and team meetings.</p> </li> <li> <p>Keep the leadership team informed of your team's progress through approaches like one-on-one discussions, updates, and regular team gatherings.</p> </li> <li> <p>Build rapport with each member of your Engineering Team (and beyond!) Support them through coaching and mentorship to help level up their skills.</p> </li> <li> <p>Actively participate in recruiting, onboarding, and training new engineers at Zapier, which may involve refining interview assessments and documentation.</p> </li> </ul> <h2>&nbsp;</h2> <h2><strong>Zapier Compensation Guiding Principles</strong></h2> <p>We believe all Zapiens should be rewarded competitively and equitably, using practices that are simple and transparent. This philosophy ensures we’re able to find, grow, and retain exceptional people from a broad range of backgrounds. Here’s how we define our compensation principles:</p> <ul> <li>Competitive: Zapier pays well among the technology sector.</li> <li>Equitable: Consistent pay practices; Pay for impact.</li> <li>Simple: Pay is well understood, and pay practices are built for scale.</li> <li>Transparent: Zapiens know how pay works, including how their pay is determined.</li> </ul> <p>The pay ranges for this role are:</p> <p>United States $184,000- $230,000- $276,000 USD</p> <p>Canada&nbsp; $184,000- $230,000- $276,000 CAD</p> <p>A Candidate's compensation package is finalized once the interview process is concluded and accounts for demonstrated experience, job knowledge, skills,&nbsp; abilities, and internal equity. We use a business impact approach to base pay, which means we set pay for all Zapier employees based on their demonstrated impact to Zapier’s success. In alignment with that philosophy, the upper half of a pay range is typically reserved for individuals who have consistently demonstrated a high impact in their current role and level while at Zapier.</p> <p>For more information on Zapier’s Total Rewards please click<a href="https://zapier.com/l/jobs/total-rewards">&nbsp;here</a>.</p> <h2>&nbsp;</h2> <h2><strong>How to Apply</strong></h2> <div> <p>At Zapier, we believe that diverse perspectives and experiences make us better, which is why we have a non-standard application process designed to promote inclusion and equity. We're looking for the best fit for each of our roles, regardless of the type of education or companies in your background, so we encourage you to apply even if your skills and experiences don’t exactly match the job description. All we ask is that you answer a few in-depth questions in our application that would typically be asked at the start of an interview process. This helps speed things up by letting us get to know you and your skillset a bit better right out of the gate. Please be sure to answer each question; the resume and CV fields are optional.</p> <p>After you apply, you are going to hear back from us—even if we don’t see an immediate fit with our team. In fact, throughout the process, we strive to never go more than seven days without letting you know the status of your application. We know we’ll make mistakes from time to time, so if you ever have questions about where you stand or about the process, just ask your recruiter!</p> <p>Zapier is an equal-opportunity employer and we're excited to work with talented and empathetic people of all identities. Zapier does not discriminate based on someone's identity in any aspect of hiring or employment as required by law and in line with our commitment to Diversity, Inclusion, Belonging and Equity. Our<a href="https://zapier.com/jobs/zapier-code-of-conduct/">&nbsp;code of conduct</a>&nbsp;provides a beacon for the kind of company we strive to be, and we celebrate our differences because those differences are what allow us to make a product that serves a global user base. Zapier will consider all qualified applicants, including those with criminal histories, consistent with applicable laws.</p> <p>Zapier is committed to inclusion. As part of this commitment, Zapier welcomes applications from individuals with disabilities and will work to provide reasonable accommodations. If reasonable accommodations are needed to participate in the job application or interview process, please contact <a href="mailto:jobs@zapier.com">jobs@zapier.com</a>.</p> <p><strong>Application Deadline: </strong>The anticipated application window is 30 days from the date job is posted, unless the number of applicants requires it to close sooner or later, or if the position is filled.</p> <p><em>Even though we’re an all-remote company, we still need to be thoughtful about where we have Zapiens working. Check out</em><a href="https://docs.google.com/document/d/1VzesvLsgVG2RDRPtGvBF8CbcB9ZA-Hsddg0P2ildBb8/edit"><em>&nbsp;</em>this resource</a><em>&nbsp;for a list of countries where we currently cannot have Zapiens permanently working.</em></p> <p>#LI-Remote</p> </div>
Verified by
Co-founder
You may also like