How Gusto Processes Billions Of Dollars In Annual Payroll

2,809
Gusto
Gusto is delightful, modern payroll. Our comprehensive payroll service enables businesses to get set up and run payroll in minutes, from any web enabled device. All government payroll taxes and reporting are taken care of automatically and paperlessly. We've processed millions of dollars in payroll and our customers span a wide variety of businesses, from flower shops to technology start-ups. We would be delighted to provide you modern payroll.
Background

ZenPayroll is on a mission to help small business owners succeed by providing a simple and intuitive way to pay and appreciate their employees. We automate the complexities of tax payments and form filings and let small business owners focus on running their business. We currently service over 10,000 companies across the country and we are processing billions of dollars in annual payroll.

I joined ZenPayroll almost three years ago as the first engineering hire, and I currently lead the engineering team that keeps our clients compliant and builds tools to make sure our customer care team can do their job efficiently. Before joining ZenPayroll, I spent a year working with Pivotal labs doing Ruby on Rails consulting. Prior to that I was in a completely different industry and worked at a nuclear power plant after finishing my degree in electrical engineering.

Architecture

Our basic stack is Ruby on Rails and MySQL. We originally chose Rails because of the speed at which we could get our app up and running, and it is still working out great for us. We also use AWS services extensively in combination with Chef, having recently migrated to AWS from Rackspace. On the front end, most of our site is using Backbone, but we’ve been moving more and more to ReactJS.

Background processing is an integral piece to our system, and we have built a robust out-of-band infrastructure using Sidekiq Pro. A lot is happening behind the scenes and running payroll is just the beginning of the process. Throughout the day, payrolls are created, contractors are paid, bank accounts are verified via test transactions, and reversals are processed. It’s critical to our system to ensure all these actions are properly accounted for. Every time one of these actions is taken, we create bank transactions (via ACH) that tell our bank where money should be moved.

Timing is critical when paying employees, so we adhere to a strict schedule when communicating with our bank. At periodic intervals throughout the day, we batch these transactions by type, and consolidate them into files that the bank can process. Before our evening deadline, we upload all files created throughout the day to the bank so employees will be paid out the following day. The last part of the daily process requires us to confirm acknowledgement files provided from the bank and reconcile any discrepancies.

Most of the time, that is all we need to make sure our customers are properly taken care of, but occasionally bank transactions fail due to incorrect bank numbers or insufficient funds. If a transaction is unsuccessful, our bank sends us a response for the transaction and an associated error code, usually 2-3 days later. Every morning we download those files, stop any pending payments, and contact the administrator of the account to resolve the issue.

Sidekiq has been a great tool for us to robustly support our customers by allowing us to gracefully handle errors and highly parallelize our processing to scale with us as we grow.

Upcoming Architecture Changes

ZenPayroll is at a really exciting point right now, because the company and our customer base is growing so rapidly. In order to accommodate this growing user base as well as our expanding product vision, we’re currently in the process of architecting a system that can scale robustly. People depend on us for their livelihood, and we take that trust very seriously.

At a high level, we’re moving towards a service-oriented architecture (SOA). Currently our fraud and balance tracking systems are separated out into services, and we’ll be building out additional services in the coming months. More specifically, we’re in the middle of defining how these services will communicate with each other. We evaluated a handful of message-queuing systems and ultimately selected AWS’s SQS/SNS service. We’ve also been experimenting with Grape and have had a lot of success so far using it for our internal APIs. Grape makes it easy to implement our internal APIs, and we’re writing a gem, dubbed GrapeEater, that will make it easy to communicate with Grape APIs. GrapeEater consumes a Grape API and programmatically generates and maintains a client gem for that API. On startup, the client gem dynamically generates a request method for each endpoint from JSON swagger documentation generated for the Grape API. We hope to open source GrapeEater very soon!

So far, all of our services have also been in Rails, which allows developers to move around code bases easily. We haven’t yet found a good use case to use something else - but that could always change.

On the frontend, we’re transitioning to using ReactJS more heavily. Our original customer dashboard is a thick Backbone app that consumes our Rails API. Our Backbone paradigm has been effective over the past two years, but as we have added more and more features, we have found that our views have started to become a little unmanageable. While Backbone has provided us with great data management and API interaction, we found that we need a more powerful tool for creating UI.

We're adopting ReactJS due to its declarative nature of creating user experiences, high performance, and ease of integration with our existing Backbone models and collections. We use Reflux to bolster our frontend architecture, as well as ImmutableJS to more easily reason about our data structures. Our new React paradigm has been a breath of new life into both our frontend development patterns and UI.

Scaling Challenges

One of the most intensive times for payroll is during the end of the quarter (and especially the end of the year!). We’re doing extensive number crunching to make sure everyone’s taxes are correct and paid when they should. We also generate tens of thousands of form PDFs (using Prawn) to file on behalf of our clients and their employees and contractors.

This is where we’ve really been able to reap the benefits of Sidekiq. We’ve moved from a collection of rake tasks to aggressively parallelizing these jobs with hundreds of sidekiq workers. Our end-of-quarter reconciliation process used to take a few hours (with a fraction of the companies). Now we can process in a matter of minutes!

Engineering Team

Currently we’re at 20 engineers, split across 5 teams - with focuses on security, fraud, state expansion, compliance tools, and product features. We believe that small, focused, autonomous teams are the most effective. At the same time, ZenPayroll has an incredibly collaborative culture, and there are many cross-team opportunities. Most of our team is comfortable working through the whole stack, and if they’re not, we’re helping them learn.

We recently announced our Series B and #1 Best Place to work in the Bay Area (for 50-99 employees), and we’re growing fast! We’re hiring for pretty much all positions currently, and in particular are looking for strong engineers who are passionate about our mission to support small businesses. We’d love to hear from you!

Gusto
Gusto is delightful, modern payroll. Our comprehensive payroll service enables businesses to get set up and run payroll in minutes, from any web enabled device. All government payroll taxes and reporting are taken care of automatically and paperlessly. We've processed millions of dollars in payroll and our customers span a wide variety of businesses, from flower shops to technology start-ups. We would be delighted to provide you modern payroll.
Tools mentioned in article
Open jobs at Gusto
Senior Software Engineer, Product
San Francisco, CA; Denver, CO; New York, NY; ; - Ontario; - British Columbia;

We're looking for talented Software Engineers to come help us build our People Platform - an all-in-one product that helps small businesses take care of their teams.

About Gusto

Gusto is a modern, online people platform that helps small businesses take care of their teams. On top of full-service payroll, Gusto offers health insurance, 401(k)s, expert HR, and team management tools. Today, Gusto offices in Denver, San Francisco, and New York serve more than 200,000 businesses nationwide.

Our mission is to create a world where work empowers a better life, and it starts right here at Gusto. That’s why we’re committed to building a collaborative and inclusive workplace, both physically and virtually. Learn more about our Total Rewards philosophy

About the Role

We’re hiring engineers to join these teams and work on customer-facing products, developing features and iterating across our platform to help define the customer journey at Gusto.  Our main goal in these teams is to keep our customers happy and to deliver a consistently great experience across all of our products.

We’re looking for talented and motivated engineers with 4+ years of experience. Our engineers own projects from end-to-end by influencing initial feature specs, building backend APIs, writing frontend code, and overseeing ongoing improvements for deployed features. If you’re interested in building elegant software with far-reaching effects in our modern economy, join us!

Here’s what you’ll do day to day:

  • Own what you build as you architect, test, and refine Gusto’s product suite
  • Tackle a wide variety of technical problems throughout the stack and contribute daily to all parts of our product code base
  • Collaborate with our product management and design teams to understand customer pain points, come up with solutions, and then prototype, iterate, and launch daily
  • Build a product that our customers genuinely love. Don't just take our word for it - check out what some customers have to say.

Here’s what we’re looking for:

  • 4+ years of technical experience
  • Passionate about creating memorable experiences for customers
  • Interest in complex product development problems -- we use Rails & React, but you don’t have to know them
  • Appreciation for a collaborative, test-driven environment
  • Experience turning wireframes and mockups into elegantly executed code
  • Well-structured, easily maintainable, well-documented code that balances beauty and pragmatism

Learn more about the team:

Our cash compensation amount for this role is targeted at $110,000-$216,000 in Denver & most remote locations, and $140,000-$256,000 for San Francisco & New York. Final offer amounts are determined by multiple factors including candidate experience and expertise and may vary from the amounts listed above.

Our customers come from all walks of life and so do we. We hire great people from a wide variety of backgrounds, not just because it's the right thing to do, but because it makes our company stronger. If you share our values and our enthusiasm for small businesses, you will find a home at Gusto.

Gusto is proud to be an equal opportunity employer. We do not discriminate in hiring or any employment decision based on race, color, religion, national origin, age, sex (including pregnancy, childbirth, or related medical conditions), marital status, ancestry, physical or mental disability, genetic information, veteran status, gender identity or expression, sexual orientation, or other applicable legally protected characteristic. Gusto considers qualified applicants with criminal histories, consistent with applicable federal, state and local law. Gusto is also committed to providing reasonable accommodations for qualified individuals with disabilities and disabled veterans in our job application procedures. If you need assistance or an accommodation due to a disability, you may contact us at accommodations@gusto.com.

#LI-JK1

#LI-Remote

Product Infrastructure Engineer (Rails)
San Francisco, CA; Denver, CO; New York, NY;

Gusto’s Foundation software engineering teams ensure that our Product teams can focus on building impactful products that quickly meet our customers' needs now, and that their path to doing so in the future is clear. The Product Infrastructure team is part of Foundation. We work deep in the guts of our large systems, Backend-Rails and Frontend-React architectures, and core to our asynchronous application processing, background jobs and events. If this sounds like you or if this is of interest to you then join us!

About Gusto

Gusto is a modern, online people platform that helps small businesses take care of their teams. On top of full-service payroll, Gusto offers health insurance, 401(k)s, expert HR, and team management tools. Today, Gusto offices in Denver, San Francisco, and New York serve more than 100,000 businesses nationwide.

Our mission is to create a world where work empowers a better life, and it starts right here at Gusto. That’s why we’re committed to building a collaborative and inclusive workplace, both physically and virtually. Learn more about our Total Rewards philosophy.

As part of the product infrastructure engineering team you will be maintaining the smooth operations of some of the most important parts of the software that directly serve Gusto’s customers. This spans from keeping them up-to-date and making them more performant, to creating new abstractions that make product engineers more productive.

Here’s what you’ll do day-to-day:

  • Seek out problems and inefficiencies in our tooling, APIs, and feedback mechanisms available to product engineers today
  • Ideate solutions, and then pitch, plan, measure, and implement them in an iterative fashion
  • Maintain close connection with our product engineering colleagues to see the next change around the corner
  • Create leverage for all of product engineering through your work on services, abstractions, and architecture

Here’s what we're looking for:

  • 2-5 years of experience with software development and architecture
  • Experience and/or interest in building tooling that makes your engineering colleagues successful
  • Experience and/or interest in Ruby, Rails, architecture, developer tooling, asynchronous processing, and agile and lean software development
  • Great communicator: We regularly make changes to how product engineers work, and must be able to effectively plan, document, consult, and collaborate with them. The ability to use anecdotes and data to illustrate the impact of your work.

Our cash compensation amount for this role is targeted at $136,000/yr to $187,000/yr in Denver & most remote locations, and $170,000/yr to $234,000/yr for San Francisco & New York. Final offer amounts are determined by multiple factors including candidate experience and expertise and may vary from the amounts listed above.

Our customers come from all walks of life and so do we. We hire great people from a wide variety of backgrounds, not just because it's the right thing to do, but because it makes our company stronger. If you share our values and our enthusiasm for small businesses, you will find a home at Gusto. 

Gusto is proud to be an equal opportunity employer. We do not discriminate in hiring or any employment decision based on race, color, religion, national origin, age, sex (including pregnancy, childbirth, or related medical conditions), marital status, ancestry, physical or mental disability, genetic information, veteran status, gender identity or expression, sexual orientation, or other applicable legally protected characteristic. Gusto considers qualified applicants with criminal histories, consistent with applicable federal, state and local law. Gusto is also committed to providing reasonable accommodations for qualified individuals with disabilities and disabled veterans in our job application procedures. If you need assistance or an accommodation due to a disability, you may contact us at accommodations@gusto.com. 

#LI-Remote

#LI-GM2

 

Head of Developer Relations, Ecosystem
Denver, CO; New York City, NY; San Francisco, CA

We’re looking for an experienced leader with a technical background who will drive the expansion of our developer experience and integration ecosystem.

About Gusto

Gusto is a modern, online people platform that helps small businesses take care of their teams. On top of full-service payroll, Gusto offers health insurance, 401(k)s, expert HR, and team management tools. Today, Gusto offices in Denver, San Francisco, and New York serve more than 200,000 businesses nationwide.

Our mission is to create a world where work empowers a better life, and it starts right here at Gusto. That’s why we’re committed to building a collaborative and inclusive workplace, both physically and virtually. Learn more about our Total Rewards philosophy

About the role

We’re looking for an experienced leader with a technical background who will drive the expansion of our developer experience and integration ecosystem. In this role you’ll be tasked with building a playbook for how we prioritize, build and launch integrations with new third party partners across many product categories. Additionally you’ll be leading a technical team that will consult on other integration projects and serve as post-launch technical support for our developer partners. 

You will have the opportunity to partner cross-functionally with leaders across Partnerships, Product, Engineering and Marketing in helping us continue to craft and build best-in-class integrations for our developers and our customers. 

The Developer Relations team serves as the technical function of our broader Partnerships organization and their responsibilities include: equipping third party partners and developers with the tools to build high quality integrations, creating a scalable build and launch process and driving key feedback loops between developers and our internal teams on Gusto’s technical capabilities. 

Here’s what you’ll do day-to-day:

  • Hire, coach and grow a team who will be the technical experts on our integrations and API functionality driving day-to-day operations of our Developer Relations team 
  • Collaborate with Partnership leads to drive cross-functional strategic initiatives to grow our integration ecosystem 
  • Build and implement scalable processes for our developers and internal stakeholders 
  • Utilize data and business insights to influence investment in the developer experience and tools
  • Partner closely with product management teams to land Gusto’s Employers strategy for solving key “jobs to be done” for our customers

Here’s what we're looking for:

  • 7+ years of relevant experience working in partnerships, developer relations, engineering or similar technical role with external stakeholders 
  • Strong understanding of software development. You don’t need to write code in this role, but you can ask questions to understand how our technical decisions impact your team and API users
  • Track record of working with external developers or vendors
  • Strong cross-functional stakeholder management and experience managing complex projects across multiple teams
  • Strategic thinker with the experience balancing and prioritize short-term solutions while keeping the long-term vision in mind
  • Experience building and leading high performance teams
  • Excellent written and verbal communication skills
  • A growth mindset and comfort with ambiguity

Our cash compensation amount for this role is targeted at $127,000 - $179,000/year in Denver and most other locations and $158,000 - $223,000/year of San Francisco and New York. Final offer amounts are determined by multiple factors including candidate experience and expertise and may vary from the amounts listed above.

Our customers come from all walks of life and so do we. We hire great people from a wide variety of backgrounds, not just because it's the right thing to do, but because it makes our company stronger. If you share our values and our enthusiasm for small businesses, you will find a home at Gusto. 

Gusto is proud to be an equal opportunity employer. We do not discriminate in hiring or any employment decision based on race, color, religion, national origin, age, sex (including pregnancy, childbirth, or related medical conditions), marital status, ancestry, physical or mental disability, genetic information, veteran status, gender identity or expression, sexual orientation, or other applicable legally protected characteristic. Gusto considers qualified applicants with criminal histories, consistent with applicable federal, state and local law. Gusto is also committed to providing reasonable accommodations for qualified individuals with disabilities and disabled veterans in our job application procedures. If you need assistance or an accommodation due to a disability, you may contact us at accommodations@gusto.com. 

Senior Software Engineer, FinTech
Denver, CO; New York, NY; ; San Francisco, CA; - Ontario

Gusto is looking for experienced engineers to join the Fintech team focused on Payments and Risk products. This team empowers the secure and safe money transmission in 100+ countries over 50+ currencies, prevents and mitigates fraud activities on the platform. You’ll lead and grow a team of talented engineers and work with 15+ leading payments and risk service providers in Backend-Rails and Frontend-React architectures, and core to our asynchronous application processing, background jobs and events. If this sounds like you or if this is of interest to you then join us!

About Gusto

Gusto is a modern, online people platform that helps small businesses take care of their teams. On top of full-service payroll, Gusto offers health insurance, 401(k)s, expert HR, and team management tools. Today, Gusto offices in Denver, San Francisco, and New York serve more than 200,000 businesses nationwide.

Our mission is to create a world where work empowers a better life, and it starts right here at Gusto. That’s why we’re committed to building a collaborative and inclusive workplace, both physically and virtually. Learn more about our Total Rewards philosophy

We’re hiring engineers to join these teams and work on customer-facing products, developing features and iterating across our platform to help define the customer financial journey at Gusto.  Our main goal in the teams is to strengthen our customers' financial wellness and to deliver a consistently great experience across all of our products.

We’re looking for talented and motivated engineers to lead and grow projects from end-to-end by influencing initial feature specs, building backend APIs, writing frontend code, and overseeing ongoing improvements for deployed features. If you’re interested in building elegant software with far-reaching effects in our modern economy, join us!

 

Here’s what you’ll do day-to-day:

  • Build products that mitigate financial risk, prevent fraud and globalize faster payments transactions in a safe and secure way.
  • Own what you build end to end as you architect, implement, review, test, and iterate Gusto’s Fintech product suite.
  • Design highly scalable systems that drive the business growth to safely move billions of dollars.
  • Build the platform to enable fraud signal collection and anomaly detection for fraudulent activities on Gusto.
  • Drive the processor agnostic 3rd party API integration to provide new payment features and enrich payments methods, including but not limited to ACH, credit card, vendor payments, real time payments with redundancy backup.
  • Partner with product, data, finance, compliance and operations to audit financial reconciliation and debt recovery to provide the complete financial bookkeeping.

Here’s what we're looking for:

  • 4+ years of technical experience.
  • Passionate about scaling the Fintech system that processes billions of dollars.
  • Independent, dedicated, and able to deliver production ready code with high autonomy and minimal guidance.
  • Enjoy working on SaaS technologies such as Ruby on Rails, Sidekiq, PostgreSQL, CI/CD and AWS etc on the cloud.
  • Well-structured, easily maintainable, well-documented code that balances beauty and pragmatism.
  • Experience developing best practices to build out and maintain scalable systems, service oriented applications, and more.
  • Payments and/or risk experience are a plus, but not required.

Our cash compensation amount for this role is targeted at $136,000/yr to $215,000/yr in Denver & most remote locations, and $170,000/yr to $240,000/yr for San Francisco & New York. Stock equity is additional. Final offer amounts are determined by multiple factors including candidate experience and expertise and may vary from the amounts listed above.

Our customers come from all walks of life and so do we. We hire great people from a wide variety of backgrounds, not just because it's the right thing to do, but because it makes our company stronger. If you share our values and our enthusiasm for small businesses, you will find a home at Gusto. 

Gusto is proud to be an equal opportunity employer. We do not discriminate in hiring or any employment decision based on race, color, religion, national origin, age, sex (including pregnancy, childbirth, or related medical conditions), marital status, ancestry, physical or mental disability, genetic information, veteran status, gender identity or expression, sexual orientation, or other applicable legally protected characteristic. Gusto considers qualified applicants with criminal histories, consistent with applicable federal, state and local law. Gusto is also committed to providing reasonable accommodations for qualified individuals with disabilities and disabled veterans in our job application procedures. If you need assistance or an accommodation due to a disability, you may contact us at accommodations@gusto.com. 

Verified by
You may also like