Scaling Zapier to Automate Billions of Tasks

19,483
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
Data Engineering Manager - Open to al...
Hi there!
 
We're looking for 2 experienced Data Engineering Managers to join the Data Operations team at Zapier. Our Data Operations team is split into several functional teams, and two of them are looking for strong leaders.

One is our Core Data Engineering team which is responsible for data infrastructure (Data Engineers, Site Reliability), and the second is our Data Warehouse Engineers who work in a semi-embedded model with our Decision Sciences team. They are organized by stakeholder focus, so we’re supporting the major business units across Zapier. Please indicate on your application which position you have an interest in if you have a preference.

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. We hope you'll take the leap and apply.

Zapier is proud to be an equal opportunity workplace dedicated to pursuing and hiring a diverse workforce.

About you:

  • You are an effective team builder. This isn't your first management role or your second. You know how to hire, train, and develop engineers from all backgrounds. You understand the benefits of building a diverse and inclusive team and leading them in an equitable way. You may not have hired or managed hundreds of people before, but you have hired, trained, and managed at least a few employees before.
  • You are a skilled written communicator. Zapier is a 100% remote team and writing is our primary means of communication.
  • You have experience managing technical teams: You’ve helped a team optimize execution, deliver technical projects, refine Agile processes to support the team, establishing and communicating timelines.
  • You have experience managing stakeholders. You’ve collaborated with stakeholders to understand and prioritize their needs. You advocate for your team and their needs by building strong relationships with engineering architecture, security and infrastructure teams.
  • You can communicate about technical topics without unnecessary jargon. You translate unfamiliar data and engineering concepts into approachable ones for teammates with less experience working with those domains.
  • You understand that the perfect is the enemy of the good and default to action by shipping MVP and iterating as needed to get towards better solutions.
  • You are a coach at heart: You understand that leading a team is about coaching and mentoring people on stakeholder management, communication and other soft skills and you’re comfortable redirecting people gracefully when they could be on a better path.
  • You have helped people develop their career plans: You understand how to help people find their strengths and give them opportunities to grow and develop them.
  • You have helped teams resolve prioritization conflicts: You are able to deftly negotiate across multiple stakeholder teams to make sure the highest value work is identified.

Things You Might Do

Zapier is a growing company, so you'll likely get experience on many different projects across the organization. Here are some things you'll get a taste of:

  • Develop effective ways to communicate, monitor, and lead your team through weekly one-on-one’s and team meetings.
  • Work closely with other Data Operations, Decision Science and product teams to create teams that deliver technical solutions and tools to our internal customers.
  • Help set technical roadmaps that will help the team achieve their goals.
  • Keep Data Operations management informed on your team’s progress in one-on-ones, update posts, and regular team hangouts.
  • Participate in code reviews, learning and spreading technical knowledge throughout all of engineering, data and otherwise, moving knowledge to documentation where appropriate.
  • Actively recruit, onboard, and train new engineers at Zapier with a focus on building diverse teams. This might involve tweaking the skills portions of interviews or writing better documentation.
  • Ensure the members of Data Ops are pulling in the same direction while also making sure we’re leveraging their diverse skillsets.
  • As a part of Zapier's all-hands philosophy, help customers via support to ensure they have the best experience possible.

About Data at Zapier

Zapier relies on dozens of systems that emit data about Zapier and our potential and current users and partners. This data is useful for us to make a better product, better decisions, and understand our weaknesses and opportunities. The data team at Zapier pulls this data from DBs, APIs, and event streams, collocates it and then processes it through all the disparate systems to bring them together in a reliable, timely, performant, and easy to understand way to employees and systems that need it.

Within the data operations team, we're made up of several sub-teams: Data Engineering focusing on data infrastructure and storage, compute, ingest, and dimensional modeling; Data Products focusing on building statistical and ML tools and models; and Data Governance focusing on increasing the value of the data through stewardship. We work closely with our partner org, Decision Science who in turn focus on exposing the data in useful and self-service form and extract insights and recommend strategies based on their findings.

Our stack is best summed up by: AWS Redshift (and the related AWS products AWS Glue, Redshift Spectrum, AWS S3), Looker, Airflow, Matillion ETL, Kafka, Python, and NiFi. But we're pragmatic -- for example, we have some Java for ingesting data from Kafka, and we use Clojure for inferring schema and other information about data sets.

About Zapier

Zapier helps people across the world automate the boring and tedious parts of their job. We do that by helping everyone connect the web applications they already use and love.

We believe that there are jobs a computer is best at doing and that there are jobs a human is best at doing. We want to empower businesses to create processes and systems that let computers do what they are best at doing and let humans do what they are best at doing.

We believe that with the right tools, you can have big impact with less hassle.

We believe in small teams. Small teams are fast and nimble. Small teams mean less bureaucracy and less management and more getting things done.

We believe in a safe, welcoming, and inclusive environment. All teammates at Zapier agree to a code of conduct.

The Whole Package

Location: Earth

Our distributed environment lets us work with the best people. You don't have to be located in the USA either. Some team members live in the United Kingdom, Thailand, Nigeria, Taiwan, Guatemala, New Zealand, Australia, and more! You just need the skills and drive to succeed in this role and the ability to work from anywhere. We have business entities in the US, Canada and the UK. Folks in other parts of the world are hired as contractors. We’re happy to explain how this works in your interview with the recruiting ream.

Compensation:

  • Competitive salary (we pay based on the norms of your country)
  • Healthcare + dental + vision coverage*
  • Retirement plan with 4% company match*
  • Profit-sharing
  • 2 annual company retreats to awesome places (when it’s safe to travel again)
  • 14 weeks paid leave for new parents of biological or adopted children
  • Pick your own equipment. We'll set you up with whatever Apple laptop + monitor combo you want plus any software you need.
  • Unlimited vacation policy. Plus we require you to take at least 2 weeks off each year. We see most employees take 4-5 weeks off per year.
  • Travel of 5% - 10% for company retreats which rotate to various cities throughout North America
  • Work with awesome companies around the world. We partner with great software companies all over the world and you'll constantly get to interact with people from these great companies

*While we take care of our international folks as best we can, currently, healthcare and retirement plans are only available to UK, Canada, and US-based employees. For hires made outside of areas where Zapier has business entities (US, Canada, and the UK currently) we’ll enter into an open-ended contracting agreement. You are still eligible for paid time off, profit-sharing, our generous office set-up budget, $2,000 USD to put toward your professional development.

Zapier is an equal opportunity employer. We're excited to work with talented and empathetic people no matter their race, color, gender, sexual orientation, gender identity/expression, religion, national origin, disability, age, genetic information, veteran status, marital status, pregnancy or related condition (including breastfeeding), or any other basis protected by law. Our code of conduct 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.

 

Data Warehouse Engineer - Open to all...

Hi there!

Zapier is looking for an experienced Data Warehouse Engineer to join our Data Operations team. We are a diverse, globally-dispersed team of passionate folks who allow Zapier to make data-based decisions about our customers, our product, and our direction. If our Data team's mission of using data to enrich Zapier's understanding of the needs and behavior of users, customers and partners inspires you, then read on:

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. We hope you'll take the leap of faith and apply.

Our Commitment to Applicants

Culture and Values at Zapier

Zapier Guide to Remote Work

Zapier Code of Conduct

Diversity and Inclusivity at Zapier

Zapier is proud to be an equal opportunity workplace dedicated to pursuing, hiring, and maintaining a diverse workforce. Diversity, Inclusion, Belonging, and Equity. 

About You

  • You are a skilled written communicator. Zapier is a 100% remote team and writing is our primary means of communication. You can communicate about technical topics without unnecessary jargon. You translate unfamiliar data modeling concepts into approachable ones to teammates with less experience working with data.
  • You have experience in SQL. You’ve used written complex SQL queries that join across data from multiple systems, matching them up even when there was not a straightforward way to join the tables. You've designed tables with an eye towards ease of use and high performance. You've documented schemas and created data dictionaries.
  • You appreciate our team’s values and mission of eagerness to collaborate with diverse teammates from any function of the organization or with any level of data knowledge, iterating over your deliverables, and being curious. We look to uncover new strategic avenues, drive faster user-centric decisions and make Zapier's products smarter.
  • You enjoy learning about the business or product goals so you can design data models that will empower analysts to build their own reports and dashboards and spend more time exploring the data. You have put together tools for data analysts and data scientists to build their own transforms.
  • You have experience with star schema: You understand star schemas and have a reference copy of The Data Warehouse Toolkit on your desk. You have a nuanced appreciation for when and where the traditional approaches work and when they don’t. You have experience in ETL development. Bonus if you have modeled financial data. 
  • You understand that the perfect is the enemy of the good and default to action by shipping MVP code and iterating as needed to get towards better solutions.

Things You Might Do

  • Develop ETL to ingest and transform data from upstream databases and APIs into a data warehouse. The tools used include AWS Redshift, NiFi, Kafka, Matillion ETL, and custom Python.
  • Data modeling, including designing and expanding slowly changing dimension and fact tables.
  • As a part of Zapier's all-hands philosophy, help customers via support to ensure they have the best experience possible.

About Data at Zapier

Zapier relies on dozens of systems that emit data about Zapier and our potential and current users and partners. This data is useful for us to make a better product, better decisions, and understand our weaknesses and opportunities. The data team at Zapier pulls this data from DBs, APIs, and event streams, collocates it, and then processes it through all the disparate systems to bring them together in a reliable, timely, performant, and easy-to-understand way to employees and systems that need it.

Within the data team, we're made up of several subteams: Data Ops focusing on data infrastructure and storage, compute, ingest, and dimensional modeling; Data Products focusing on building statistical and ML tools and models; and Data Governance. 

Curious about our stack? We use AWS Redshift (and the related AWS products AWS Glue, Redshift Spectrum, AWS S3), Looker, Airflow, Matillion ETL, Kafka, Python, and NiFi. 

About Zapier

Since 2011, Zapier has been helping people across the world automate the boring and tedious parts of their job. We do that by helping everyone connect the web applications they already use and love.

We believe that there are jobs a computer is best at doing and that there are jobs a human is best at doing. We want to empower businesses to create processes and systems that let computers do what they are best at doing and let humans do what they are best at doing.

We believe that with the right tools, you can have big impact with less hassle.

We believe in small teams. Small teams are fast and nimble. Small teams mean less bureaucracy and less management and more getting things done.

We believe in a safe, welcoming, and inclusive environment. All teammates at Zapier agree to a code of conduct.

The Whole Package

Location: Earth 

Our team of 4000+ is distributed across the world because it lets us work with the best people. We have team members that live in the United Kingdom, Thailand, India, Nigeria, Taiwan, Guatemala, New Zealand, Australia, and more! You just need the skills and drive to succeed in this role and the ability to work from anywhere. You'll work in your timezone vs defaulting to the US, with occasional meetings that will rotate to encompass everyone. Can't make it? We'll record it for you!

  • Competitive salary (we pay based on the norms of your country)
  • Great healthcare + dental + vision coverage*
  • Retirement plan with 4% company match*
  • Profit-sharing
  • 2-3 annual company retreats to awesome places (we’ll resume these after travel is safe for all of us!)
  • 14 weeks paid leave for new parents of biological or adopted children
  • Pick your own equipment. We'll set you up with whatever Apple laptop + monitor combo you want plus any software you need.
  • Unlimited vacation policy. Plus we require you to take at least 2 weeks off each year. We see most employees take 4-5 weeks off per year. This isn't a vague policy where unlimited vacation means no vacation.
  • Work with awesome companies around the world. We partner with great software companies all over the world and you'll constantly get to interact with people from these great companies

*While we take care of our international folks as best we can, currently, healthcare and retirement plans are only available to Canada, UK, and US-based employees.

How to Apply

We have a non-standard application process. To jump-start the process we ask a few questions we normally would ask at the start of an interview. This helps speed up the process and lets us get to know you a bit better right out of the gate. Please make sure to answer each question fully with enough detail that we can picture the answer in our heads. Writing is critical to your success at Zapier.

After you apply, you are going to hear back from us, even if we don't seem like a good fit. In fact, throughout the process, we strive to make sure you never go more than seven days without hearing from us.

Zapier is an equal opportunity employer. We're excited to work with talented and empathetic people no matter their race, color, gender, sexual orientation, gender identity/expression, religion, national origin, disability, age, genetic information, veteran status, marital status, pregnancy or related condition (including breastfeeding), or any other basis protected by law. Our code of conduct 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.

Frontend Engineer
North or South America

Hi there!

We're looking for an experienced Frontend Engineer to join our Partner Sharing team at Zapier. Want to build the UI experiences empowering automation for the most influential internet APIs? Then keep reading!

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.

Zapier is proud to be an equal opportunity workplace dedicated to pursuing and hiring a diverse workforce. 

About You

You love code. You love to take raw ideas and build great products with JavaScript, HTML, and CSS. You know JavaScript is imperfect, but you embrace its functional side and genuinely enjoy coding with it. You have 5+ years of professional experience in a frontend engineering role. 

You value collaboration. 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 just thinking about how to solve the challenges we’re facing.

You advocate for the user. You have a keen eye for great design, 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.

You can balance lots of concerns. You’re used to having to balance multiple concerns, including customer demands, performance, A/B tests, UX research, accessibility, code quality, a rapidly changing ecosystem of languages and modules - the list goes on. You enjoy the challenge of balancing those demands while still completing tasks. 

Things You Might Do

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:

  • Research, guide, and execute frontend architecture changes, including but by no means limited to server-side React rendering and TypeScript typing.
  • Work with stakeholders (other Zapier teams, or external partners) to understand requirements, propose solutions, and build something to help those stakeholders succeed.
  • Build reusable React components with modular CSS, manage data on the client with Redux, and test everything with Jest.
  • Measure and resolve performance bottlenecks, using tools like Chrome DevTools, Lighthouse, WebPagetest, or custom tooling.
  • Refactor or improve existing code as languages, frameworks, or techniques evolve. Help the team pick appropriate tools to solve new problems as they arise.
  • Work closely with our product, design, and UX teams to create amazing and intuitive experiences that make it effortless to connect different apps together.
  • Help put tools, processes, and documentation in place to help us become a better, more effective organisation.
  • Help teach your colleagues new skills, through code review, discussions and mentoring. Help us all become better engineers and humans.
  • Ship to hundreds of thousands of users every day while having lots of autonomy in terms of code and feature ownership.
  • As a part of Zapier's all-hands philosophy, help customers via support to ensure they have the best experience possible.

About The Team

We make automation available in a seamless and contextual manner in our partner’s products, so that their users are successful using Zapier. Our concern is for the end users who want to integrate their favorite apps with each other using Zapier without having to leave the context of the app they’re using. This is a new and exciting frontier with an abundance of potential and opportunities for growth. On our team, you’ll be an equal member of a cross-functional, agile team envisioning new tech. You’ll architect and support an SDK of universally embeddable components that will be shared on some of the largest, most trafficked apps on the web, empowering users to manage automation using Zapier. You’ll be a co-owner of our team’s Partner API, an empathic advocate for our users, an explorer prototyping new experiments, a builder scaling successes to full product fidelity, and an advisor interfacing with partner developers. Our team is looking for engineers working in the North and South American time zones.

About Zapier

Since 2011, Zapier has been helping people across the world automate the boring and tedious parts of their job. We do that by helping everyone connect the web applications they already use and love.

We believe that there are jobs a computer is best at doing and that there are jobs a human is best at doing. We want to empower businesses to create processes and systems that let computers do what they are best at doing and let humans do what they are best at doing.

We believe that with the right tools, you can have big impact with less hassle.

We believe in small teams. Small teams are fast and nimble. Small teams mean less bureaucracy and less management and more getting things done.

We believe in a safe, welcoming, and inclusive environment. All teammates at Zapier agree to a code of conduct. 

The Whole Package

Location: 

  • North America
  • South America

Compensation:

  • Competitive salary 
  • Great healthcare + dental + vision coverage*
  • Retirement plan with 4% company match*
  • Profit-sharing
  • 2 annual company retreats to awesome places
  • 14 weeks paid leave for new parents of biological or adopted children
  • Pick your own equipment. We'll set you up with whatever Apple laptop + monitor combo you want plus any software you need.
  • Unlimited vacation policy. Plus we require you to take at least 2 weeks off each year. We see most employees take 4-5 weeks off per year. This isn't a vague policy where unlimited vacation means no vacation.
  • Work with awesome companies around the world. We partner with great software companies all over the world and you'll constantly get to interact with people from these great companies

How To Apply

We have a non-standard application process. To jump-start the process we ask a few questions we normally would ask at the start of an interview. This helps speed up the process and lets us get to know you a bit better right out of the gate.

After you apply, you are going to hear back from us, even if we don't seem like a good fit. In fact, throughout the process, we strive to make sure you never go more than seven days without hearing from us.

Optional: Share anonymously some demographic information about yourself to help us better track trends related to the backgrounds of candidates interested in working at Zapier in order for us to build a team that represents the users at Zapier and the broader world population.

Zapier is an equal opportunity employer. We're excited to work with talented and empathetic people no matter their race, color, gender, sexual orientation, gender identity/expression, religion, national origin, disability, age, genetic information, veteran status, marital status, pregnancy or related condition (including breastfeeding), or any other basis protected by law. Our code of conduct 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.

Full Stack Engineer - North American ...
in North American Time Zones

Location: North American Time Zones

Hi there!

Zapier has been growing rapidly over the course of the last couple of years and we are continuing to grow as we drive toward our mission to democratize automation! The current growth includes multiple openings across to several teams and we’re looking for Full Stack Software Engineers to join us! 

As we continue our journey toward modern microservices architecture and scale of our platform, you’ll be part of a team that enables the future growth of our products and services. As a full stack engineer you’ll leverage Python and Node.js to create, consume and expose APIs and web services, as well as building components in React. 

Are you interested in collaborating with incredibly smart people to build great software that connects thousands of different web applications? Then read on.

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.

Zapier is proud to be an equal opportunity workplace dedicated to pursuing and hiring a diverse workforce.

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 these criteria:

 

About You

You know how to build scalable web apps. You have at least 4+ years of software development building web based software products. You’ve worked across the stack, and though you may know more front end frameworks or building web services, you can dive into any aspect of an application. Zapier is built on Python, Django, React, Node.js, and AWS. It’s a big plus if you have experience with languages and frameworks. 

You know how to build frontend components. You’ve used a modern frontend framework to develop frontend components. You value user experience and think about reuse as well. 

You value code quality. You understand that testing your code and good code coverage is essential in delivering a solid product. You know how to document well and lean on automation whenever possible. You have an understanding of tech debt and can formulate a plan to address it, but know how to ship production ready code.

You have experience with Web APIs. In this role, you'll be working with many different APIs. You’ll need to be able to dig into their documentation, build proof-of-concepts, and then build complex  integrations with those  APIs. Basically, you'll need to know and love Web APIs.

You have a systems oriented mindset. You understand how to design systems in a distributed manner across hundreds (and even thousands) of servers, and understand how interdependencies can affect what you build.  Zapier handles 100s of millions of API calls every week and is growing fast.

You value our values. At Zapier, our values are at the heart of how we work together 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 you’re excited to be part of the team. 

Things You Might Do

Zapier is a fast-growing,  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:

  • Building and scaling web products that directly impact our customers or partners.
  • Developing frontend components and UIs that are reusable and highly performant. 
  • Create tooling that enables automation that leverage other microservices in our architecture. 
  • Translate several RESTful data sources to be used in a front-end application
  • Run experiments and tests to learn what techniques work best at keeping users engaged and informed
  • Monitor reliability and performance through dashboards and tools to ensure availability
  • Dig into bugs and feature requests 
  • Work with teams and stakeholders across Zapier - marketing, partnerships, companies - to help them deliver value to customers in new and exciting ways
  • Help other engineers on the team and across Zapier

As a part of Zapier's all-hands philosophy, help customers via support to ensure they have the best experience possible.

About Zapier

Zapier helps people across the world automate the boring and tedious parts of their job. We do that by helping everyone connect the web applications they already use and love.

We believe that there are jobs a computer is best at doing and that there are jobs a human is best at doing. We want to empower businesses to create processes and systems that let computers do what they are best at doing and let humans do what they are best at doing.

We believe that with the right tools, you can have big impact with less hassle.

We believe in small teams. Small teams are fast and nimble. Small teams mean less bureaucracy and less management and more getting things done.

We believe in a safe, welcoming, and inclusive environment. All teammates at Zapier agree to a code of conduct.

The Whole Package

Location: North American time zones

Our distributed environment lets us work with the best people. You don't have to be located in the USA either. Some team members live in the United Kingdom, Thailand, India, Nigeria, Taiwan, Guatemala, New Zealand, Australia, and more! You just need the skills and drive to succeed in this role and the ability to work from anywhere.

Compensation:

  • Competitive salary (we pay based on the norms of your country)
  • Healthcare + dental + vision coverage*
  • Retirement plan with 4% company match*
  • Profit-sharing
  • 2 annual company retreats to awesome places
  • 14 weeks paid leave for new parents of biological or adopted children
  • Pick your own equipment. We'll set you up with whatever Apple laptop + monitor combo you want plus any software you need.
  • Unlimited vacation policy. Plus we require you to take at least 2 weeks off each year. We see most employees take 4-5 weeks off per year.
  • Travel of 5% - 10% for company retreats which rotate to various cities throughout North America
  • Work with awesome companies around the world. We partner with great software companies all over the world and you'll constantly get to interact with people from these great companies

*While we take care of our international folks as best we can, currently, healthcare and retirement plans are only available to UK, Canada, and US-based employees.

How to Apply

We have a non-standard application process. To jump-start the process we ask a few questions we normally would ask at the start of an interview. This helps speed up the process and lets us get to know you a bit better right out of the gate. Please make sure to answer each question.

After you apply, you are going to hear back from us, even if we don't seem like a good fit. In fact, throughout the process, we strive to make sure you never go more than seven days without hearing from us.

Zapier is an equal opportunity employer. We're excited to work with talented and empathetic people no matter their race, color, gender, sexual orientation, religion, national origin, physical or mental disability, or age. Our code of conduct 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.

 

 

Verified by
Co-founder
You may also like