Scaling Zapier to Automate Billions of Tasks

21,355
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
General Interest Form- Future Enginee...
Flexible
<p><em><span style="font-weight: 400;">This post is not linked to a specific job. If you do not see any posting applicable to your skillset, please apply here to be notified about new roles that may be a good fit for you.</span></em></p> <p><span style="font-weight: 400;">Want to be part of the team behind the product that is Making Automation Work for Everyone—all while advancing your career at a fast-growing, profitable, impact-driven company? Then read on…</span></p> <p><a href="https://zapier.com/jobs/our-commitment-to-applicants/"><span style="font-weight: 400;">Our Commitment to Applicants</span></a></p> <p><a href="https://zapier.com/jobs/culture-and-values-at-zapier/"><span style="font-weight: 400;">Culture and Values at Zapier</span></a></p> <p><a href="https://zapier.com/learn/remote-work/"><span style="font-weight: 400;">Zapier Guide to Remote Work</span></a></p> <p><a href="https://zapier.com/jobs/zapier-code-of-conduct/"><span style="font-weight: 400;">Zapier Code of Conduct</span></a></p> <p><a href="https://zapier.com/jobs/working-on-diversity-and-inclusivity/"><span style="font-weight: 400;">Diversity and Inclusivity at Zapier</span></a></p> <p>By filling out a general interest form, you become a member of our talent community here, which means you’ll be among the first candidates we review for each opening. You’ll also be invited to talent community workshops and receive quarterly newsletters to hear what’s new at Zapier.</p> <h2><strong>Zapier Compensation Guiding Principles</strong></h2> <p><span style="font-weight: 400;">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:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Competitive: Zapier pays well among the technology sector.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Equitable: Consistent pay practices; competency-based pay.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Simple: Pay is well understood, and pay practices are built for scale.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Transparent: Zapiens know how pay works, including how their pay is determined.</span></li> </ul> <p><span style="font-weight: 400;">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.</span></p> <p><span style="font-weight: 400;">For more information on Zapier’s Total Rewards please click</span><a href="https://zapier.com/l/jobs/total-rewards"><span style="font-weight: 400;"> </span><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;">.</span></p> <p>&nbsp;</p> <h2><strong>This department includes teams such as:&nbsp;</strong></h2> <ul> <li>SRE</li> <li>Engineering</li> <li>Agile Practitioners</li> <li>Engineering Operations</li> <li>Support Engineering</li> <li>Security</li> <li>Team App Experiences</li> </ul>
Engineer, Cloud Security
NAMER
<p>Hi there!</p> <p><span style="font-weight: 400;">We're looking for an experienced, hands-on Cloud Security Engineer to join our Security Zone at Zapier and help us to build a comfy stronghold. Zapier is on a mission to democratize automation. Over 5 million professionals already use Zapier to save more time, but there are millions more to reach. We owe it to our customers to be a responsible steward of their data and keep it safe and private.</span></p> <p><span style="font-weight: 400;">Are you interested in working with a team that thrives on ownership where you go default to action on your ideas and own them from start to finish? And you are happy to grab the keyboard and implement your ideas? Do you want to be part of a growing cloud security program for a fast-growing and powerful automation tool, called Zapier? Then read on…</span></p> <p><span style="font-weight: 400;">To help share a bit more about life at Zapier, here are a few resources:</span></p> <ul> <li style="font-weight: 400;"><a href="https://zapier.com/jobs/our-commitment-to-applicants/"><span style="font-weight: 400;">Our Commitment to Applicants</span></a></li> <li style="font-weight: 400;"><a href="https://zapier.com/jobs/culture-and-values-at-zapier/"><span style="font-weight: 400;">Culture and Values at Zapier</span></a></li> <li style="font-weight: 400;"><a href="https://zapier.com/learn/remote-work/"><span style="font-weight: 400;">Zapier Guide to Remote Work</span></a></li> <li style="font-weight: 400;"><a href="https://zapier.com/jobs/zapier-code-of-conduct/"><span style="font-weight: 400;">Zapier Code of Conduct</span></a></li> <li style="font-weight: 400;"><a href="https://zapier.com/jobs/working-on-diversity-and-inclusivity/"><span style="font-weight: 400;">Diversity and Inclusivity at Zapier</span></a></li> </ul> <h3>&nbsp;</h3> <h2><strong>About You</strong></h2> <p><strong>You have deep cloud infrastructure security experience.</strong><span style="font-weight: 400;"> Keeping the cloud resources that support our core Zapier application secure is at the heart of this role. Zapier is a SaaS product, so experience building software and administering cloud infrastructure under a similar model is a must. Working in a SOC2 and/or ISO27001 or HIPAA/HITRUST compliant environment is a plus.</span></p> <p><strong>You have worked with teams before on large Python, AWS, &amp; Kubernetes projects.</strong><span style="font-weight: 400;"> You’re also familiar with some common frameworks such as Django, Flask, or Rails. You've also worked extensively in AWS. Deep knowledge in working with Kubernetes or other containerization technologies are a big plus.</span></p> <p><strong>Maybe you’re not a security engineer, but an experienced cloud infrastructure engineer or devops engineer with security in your heart.</strong><span style="font-weight: 400;"> You have deep cloud infrastructure experience, have hands-on knowledge about the tech mentioned above and would like to move to the security field.</span></p> <p><strong>You're a doer.</strong><span style="font-weight: 400;"> You have managed complex cloud security infrastructures with minimal guidance. Familiarity with the AWS (or other cloud infrastructure) security best practices frameworks and how to utilize it for enhancing the security of a cloud environment.</span></p> <p><strong>You love to collaborate, give a hand when needed.</strong><span style="font-weight: 400;"> In this role you're not going to be just an advisor, you can and will get your hands dirty. You love to work with others, to give and take feedback and work together on a vision to raise the security maturity.</span></p> <p><strong>You are friendly and patient, welcoming, considerate, and respectful.</strong><span style="font-weight: 400;"> Learn more about these attributes in</span><a href="https://zapier.com/jobs/zapier-code-of-conduct/"><span style="font-weight: 400;"> our code of conduct</span></a><span style="font-weight: 400;">.</span></p> <h3>&nbsp;</h3> <h2><strong>Things You Might Do</strong></h2> <p><span style="font-weight: 400;">Zapier is a 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:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">You will take ownership of parts of the CloudSec Program, focused around an ever evolving security maturity model that help us to prioritize our work and improve our cloud security. If you like</span><a href="https://summitroute.com/blog/2021/01/12/2021_aws_security_maturity_roadmap_2021/"><span style="font-weight: 400;"> </span><span style="font-weight: 400;">this</span></a><span style="font-weight: 400;"> or</span><a href="https://aws.amazon.com/architecture/security-identity-compliance/?cards-all.sort-by=item.additionalFields.sortDate&amp;cards-all.sort-order=desc&amp;awsf.content-type=*all&amp;awsf.methodology=*all"><span style="font-weight: 400;"> </span><span style="font-weight: 400;">this</span></a><span style="font-weight: 400;">, you will find this role very interesting.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">lYou will take ownership of the AWS organizations setup, the SSO permissions model and connected areas (eg. terraform), but not exclusively work in this area</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">For cross-team projects you might work shoulder to shoulder embedded into our SRE team.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">This is a hands-on role, so you'll write some python and work within terraform, AWS and more. If you love automation, you will love this role.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Identify where we can add more layers of defense in depth and implement them.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Build internal tooling to ensure safe data access patterns for Zapier employees.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Locating weak points across Zapier and strengthening them.</span></li> </ul> <p>&nbsp;</p> <p><span style="font-weight: 400;">You’ll also have the opportunity to specialize in a variety of areas of the Zapier IaC codebase, including core platform development. Focusing on a specialization will not limit your area for growth at Zapier as each engineer brings a unique perspective and can contribute differently in all areas. We encourage participation and will frequently have engineers contribute across teams to assist in projects.</span></p> <p><strong>Things We've Done Recently:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Implemented a comprehensive Cloud Security Posture Management system</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Rolled out a training platform for our Security Champions</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Deleted all our IAM users to rely on SSO instead</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Implemented a successful bug bounty program</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Conducted dozens of threat modeling sessions</span></li> </ul> <h3>&nbsp;</h3> <h2><strong>Zapier Compensation Guiding Principles</strong></h2> <p><span style="font-weight: 400;">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:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Competitive: Zapier pays well among the technology sector.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Equitable: Consistent pay practices; competency-based pay.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Simple: Pay is well understood, and pay practices are built for scale.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Transparent: Zapiens know how pay works, including how their pay is determined.</span></li> </ul> <p>&nbsp;</p> <p><strong>The pay ranges for this role are:</strong></p> <p><span style="font-weight: 400;">United States: 138,300-207,500 USD</span></p> <p><span style="font-weight: 400;">Canada: 138,300-207,500 CAD</span></p> <p><span style="font-weight: 400;">United Kingdom: 86,900-130,300 GBP</span></p> <p>&nbsp;</p> <p><span style="font-weight: 400;">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.</span></p> <p><span style="font-weight: 400;">For more information on Zapier’s Total Rewards please click</span><a href="https://zapier.com/l/jobs/total-rewards"><span style="font-weight: 400;"> </span><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;">.</span></p> <p>&nbsp;</p> <h2><strong>How to Apply</strong></h2> <p><span style="font-weight: 400;">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.</span></p> <p><span style="font-weight: 400;">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!</span></p> <p><span style="font-weight: 400;">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</span><a href="https://zapier.com/jobs/zapier-code-of-conduct/"><span style="font-weight: 400;"> code of conduct</span></a><span style="font-weight: 400;"> 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.</span></p> <p><span style="font-weight: 400;">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 jobs@zapier.com.</span></p> <p>&nbsp;</p> <p><span style="font-weight: 400;">#LI-Remote</span></p>
Site Reliability Engineer
APAC
<div> <p><em><span style="font-weight: 400;">At this time, we are seeking candidates based in Hawaii, New Zealand, and Australia (UTC+10 and UTC+11).</span></em></p> <p>&nbsp;</p> <p><span style="font-weight: 400;">Hi there!</span></p> <p><span style="font-weight: 400;">We're seeking a talented Site Reliability Engineer to join our Compute team. As we continue to scale our product and grow our team, we’re looking for an experienced Site Reliability Engineer to help drive automation, performance, and reliability in our cloud-based infrastructure.</span></p> <p>&nbsp;</p> <h2><strong>About You</strong></h2> <p><strong>You’re an experienced technologist.</strong><span style="font-weight: 400;"> You spent 4 years working on multiple projects in SaaS companies in the world of systems administration, systems engineering or software development with at least 2 years of experience in Site Reliability Engineering or DevOps.</span></p> <p><strong>You know the cloud.</strong><span style="font-weight: 400;"> You’ve participated in the design or maintenance of highly available, cloud-based infrastructure in AWS or another cloud offering. You understand how to leverage infrastructure as code tools and have learned best practices for reliability and observability.&nbsp; We use tools like Terraform, Kubernetes, Redis, GitLab, and Datadog, among others.</span></p> <p><strong>You can code. </strong><span style="font-weight: 400;">You have experience with languages 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.</span></p> <p><strong>You can solve complex systems challenges.</strong><span style="font-weight: 400;"> You enjoy complex challenges, understand how to improve performance, and help uncover opportunities for improvement. You’ve worked on problems where “just throw more hardware at it” isn’t enough for the system to scale.</span></p> <p><strong>You’re a great communicator.</strong><span style="font-weight: 400;"> 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.</span></p> <p><strong>You value our values.</strong><span style="font-weight: 400;"> At Zapier, our values are at the heart of how we collaborate and how we think about our customers. In our remote setting, they help develop trust and ensure we work and collaborate together to democratize automation. You see how these values can empower meaningful work, you thrive in a collaborative setting, you are eager to continue growing and excited to be part of the team.</span></p> <p>&nbsp;</p> <p>&nbsp;</p> <h2><strong>Things You’ll Do</strong></h2> <p><span style="font-weight: 400;">As part of this team, you’ll work on</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Designing and deploying our AWS infrastructure using infrastructure as code (Terraform, Helm, etc) across multiple accounts.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Contributing to our kubernetes clusters (EKS) and serverless functions (Lambda). Production Engineering provides compute resources as a service, and you’ll help shape what features we offer.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Evaluating new tools and recommending technologies to the entire organization. If there’s a tool that will help us serve our customers, we’ll go get it.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Partnering with teams to solve novel infrastructure and design problems. Service teams are responsible for keeping services running. It’s your job to help them make decisions that scale.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Building services to integrate systems, process high-traffic workloads, and perform critical migrations. We don’t believe in drawing a hard line between developers and SREs–if you see a part of the code you can improve, default to action and make the change.</span></li> </ul> <p><span style="font-weight: 400;">Using site reliability principles, you’ll help fix problems at their root cause rather than just the symptoms. You'll improve application reliability using a software engineering approach to operations. You'll develop internal tools and systems to help engineering teams ship better software, faster. You'll get to impact every engineering team in the organization and use a broad set of technologies. Maintaining excellent relationships and communicating effectively with teams will be crucial to your success.</span></p> <p><span style="font-weight: 400;">Building new features and services is a big part of this role. We continually develop and implement new ways to support our teams, understand our customers’ needs, and become experts in site reliability.</span></p> <p><span style="font-weight: 400;">When bad things happen, you'll have the support of your team to solve contributing causes, learn from failures, and build robust and resilient systems for our customers. We look for the solution that automates the problem away, not one that requires manual effort.</span></p> <p><span style="font-weight: 400;">If you’re interested in making a big impact and taking our infrastructure to the next level at a fast-growing and profitable startup, then read on.</span></p> <br> <p><strong>Things We've Done Recently</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Built dozens of new microservices in Kubernetes across multiple AWS accounts</span></li> <li style="font-weight: 400;"><a href="https://www.cncf.io/blog/2022/01/21/keda-at-zapier/"><span style="font-weight: 400;">Contributed to open-source Kubernetes projects to support autoscaling our stack</span></a></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Continually grown to handle millions of daily requests</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Handled major migrations between hosting providers, database systems, and stateful technologies</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Created rapid deployment pipelines in GitLab and ArgoCD to support continuous delivery</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Built tools to bootstrap new Kubernetes services at the click of a button</span></li> </ul> <h3>&nbsp;</h3> <h2><strong>Zapier Compensation Guiding Principles</strong></h2> <p><span style="font-weight: 400;">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:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Competitive: Zapier pays well among the technology sector.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Equitable: Consistent pay practices; competency-based pay.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Simple: Pay is well understood, and pay practices are built for scale.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Transparent: Zapiens know how pay works, including how their pay is determined.</span></li> </ul> <br> <p><strong>The pay ranges for this role are:</strong></p> <p><span style="font-weight: 400;">United States: 138,300-207,500 USD</span></p> <p><span style="font-weight: 400;">New Zealand: 125,800-188,600 NZD</span></p> <p><span style="font-weight: 400;">Australia: 125,800-188,600 AUD</span></p> <p><span style="font-weight: 400;">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.</span></p> <p><span style="font-weight: 400;">For more information on Zapier’s Total Rewards please click</span><a href="https://zapier.com/l/jobs/total-rewards"><span style="font-weight: 400;"> </span><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;">.</span></p> <br> <h2><strong>How to Apply</strong></h2> <p><span style="font-weight: 400;">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.</span></p> <p><span style="font-weight: 400;">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!</span></p> <p><span style="font-weight: 400;">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</span><a href="https://zapier.com/jobs/zapier-code-of-conduct/"><span style="font-weight: 400;"> code of conduct</span></a><span style="font-weight: 400;"> 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.</span></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 <a href="https://docs.google.com/document/d/1VzesvLsgVG2RDRPtGvBF8CbcB9ZA-Hsddg0P2ildBb8/edit?usp=sharing" target="_blank">this resource</a> for a list of countries where we currently cannot have Zapiens permanently working.</em></p> <p><span style="font-weight: 400;">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 jobs@zapier.com.</span></p> <br> <p><span style="font-weight: 400;">#LI-Remote</span></p> </div> <div>&nbsp;</div>
Developer Experience Engineer (AMERS)
NAMER
<p><span style="font-weight: 400;">Hi there!</span></p> <p><span style="font-weight: 400;">We're looking for a </span><strong>Developer Experience Engineer (DXE) </strong><span style="font-weight: 400;">to join the team at Zapier. We’re on a mission to make everyone more productive at work. Zapier has helped millions of people build businesses through the power of automation.</span></p> <p><span style="font-weight: 400;">As a Developer Experience Engineer, you will work to make it fast and easy for Zapier teams to deliver customer value, improve the lives of our engineers, and have more joy in their day-to-day work.&nbsp;</span></p> <p><span style="font-weight: 400;">The Developer Experience (DX) team is new to Zapier - you have the opportunity to join on the ground floor, shape the team charter and have direct input into the roadmap.&nbsp;</span></p> <p><span style="font-weight: 400;">If you’re interested in advancing your career at a fast-growing, profitable, impact-driven company, then read on…</span></p> <p><a href="https://zapier.com/jobs/our-commitment-to-applicants/"><span style="font-weight: 400;">Our Commitment to Applicants</span></a></p> <p><a href="https://zapier.com/jobs/culture-and-values-at-zapier/"><span style="font-weight: 400;">Culture and Values at Zapier</span></a></p> <p><a href="https://zapier.com/learn/remote-work/"><span style="font-weight: 400;">Zapier Guide to Remote Work</span></a></p> <p><a href="https://zapier.com/jobs/zapier-code-of-conduct/"><span style="font-weight: 400;">Zapier Code of Conduct</span></a></p> <p><a href="https://zapier.com/jobs/working-on-diversity-and-inclusivity/"><span style="font-weight: 400;">Diversity and Inclusivity at Zapier</span></a></p> <p><em><span style="font-weight: 400;">Zapier is proud to be an equal opportunity workplace dedicated to pursuing and hiring a diverse workforce.</span></em></p> <p><span style="font-weight: 400;">Even though our job description may seem like we're looking for a specific candidate, the role inevitably ends up tailored to the person who applies and joins. Regardless of how well you feel you fit our description, we encourage you to apply if you meet the criteria below.</span></p> <p>&nbsp;</p> <h2><strong>About You</strong></h2> <p><strong>You can build scalable web software. </strong><span style="font-weight: 400;">You’ve worked across the stack, and although you may know more about front-end development, backend web services, or cloud infrastructure, you can dive into any part of the stack and make an impact. Zapier is built on Python, Django, NextJS, Node.js, and AWS.</span></p> <p><strong>You are an optimizer, always seeking ways to eliminate waste and toil. </strong><span style="font-weight: 400;">You use metrics to understand where there are inefficiencies and take action to improve them. You seek out manual and repetitive processes and automate them.&nbsp;</span></p> <p><strong>You care about the developer experience. </strong><span style="font-weight: 400;">You care just as much about </span><em><span style="font-weight: 400;">how</span></em><span style="font-weight: 400;"> we design, build and release software as you do about </span><em><span style="font-weight: 400;">what</span></em><span style="font-weight: 400;"> customer experiences we deliver. You have previously set up and managed your team's local development environment and CI/CD pipeline.&nbsp;</span></p> <p><strong>You are an expert at knowledge sharing. </strong><span style="font-weight: 400;">You quickly share knowledge with your team when you learn something new. You write accessible technical documentation and create video content to help level up your peers. You have a track record of teaching and mentoring others.&nbsp;</span></p> <p><strong>You prefer to find (open source) or buy solutions vs. building. </strong><span style="font-weight: 400;">You know that many problems have been tackled before and seek to learn, leverage and licence from others.&nbsp;</span></p> <p><strong>You value software quality. </strong><span style="font-weight: 400;">You understand that being functionally complete is just part of delivering high-quality software — addressing maintainability, security, reliability, efficiency, and scalability are at the forefront of how you build software. You lean on automation whenever possible.&nbsp;</span></p> <p><strong>You have a systems-oriented mindset. </strong><span style="font-weight: 400;">You're inquisitive. You build a deep understanding of problems and are good at spotting patterns. You understand how to design and implement end-to-end systems.</span></p> <p><strong>You value our values.</strong><span style="font-weight: 400;"> At Zapier, our values are at the heart of how we work together and how we think about our customers. As a remote-first company, our values help develop trust and ensure we collaborate effectively to democratize automation. You recognize how our values can empower meaningful work, you thrive in a collaborative setting, you are eager to continue growing, and you’re excited to be part of the team.</span></p> <p>&nbsp;</p> <h2><strong>T</strong><strong>hings You Might Do</strong></h2> <p><span style="font-weight: 400;">Zapier is a fast-growing,&nbsp; remote-first company. You'll likely get experience on many different projects across the organization. That said, here are some things you'll probably do:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Engage with engineers directly and use metrics to understand pain points in the developer journey and implement various solutions including patterns, tooling and guidance to help address these.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Teach and share knowledge by creating how-to guides, articles, videos and technical documentation.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Improve GitLab CI/CD pipelines to reduce lead time for changes and increase reliability.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Evolve our internal developer platform (IDP) capabilities, such as how we use feature toggles for experimentation and feature rollout</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Drive improvements to engineering onboarding, helping new folks get up and running faster and easier.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">You actively contribute to the team roadmap — you help write, refine and prioritize a backlog of actionable deliverables.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">As a part of Zapier's</span><a href="https://workable.com/nr?l=https%3A%2F%2Fzapier.com%2Flearn%2Fcustomer-support%2Feveryone-on-support%2F"><span style="font-weight: 400;"> all-hands philosophy</span></a><span style="font-weight: 400;">, help customers via support to ensure they have the best experience possible.</span></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; 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>&nbsp;</p> <p><strong>The pay ranges for this role are:</strong></p> <p>United States: 114,400-150,100 USD</p> <p>Canada: 114,400-150,100 &nbsp;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">&nbsp;here</a>.</p> <p>&nbsp;</p> <h2><strong>How to Apply</strong></h2> <p>&nbsp;</p> <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 are 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>&nbsp;</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>&nbsp;</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. protected by local law. 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>&nbsp;</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 jobs@zapier.com.</p> <p>&nbsp;</p> <p>#LI-Remote</p>
Verified by
Co-founder
You may also like