Software Engineer II, Cash Management & Payroll
We are a rapidly growing company that’s revolutionizing the way the restaurant industry does business by pairing technology with an extraordinary commitment to customer success. We help restaurants streamline operations, increase revenue, and deliver amazing guest experiences through our platform that combines restaurant point of sale, guest-facing technology, and award-winning customer support. As a Toaster, you will be challenged to take on meaningful projects that will help craft the future of the company. Join us as we empower the restaurant community to delight guests, do what they love, and thrive.
Toast is looking for a Senior Software Engineer to play a meaningful role on the team responsible for our Payroll and Cash Management workflows. Our features are used by all employees at a Toast-powered restaurant, whether they are a server clocking in for a shift, a bartender taking a cash payment, or a manager looking at labor and cash reports. We ensure that these operations work smoothly and seamlessly as our platform scales, even if the tablets are not able to connect to Toast’s backend services. The traffic going to our Labor and Cash Management APIs is rapidly growing, so we need to scale gracefully and continue to add functionality that our integration partners need. We need your help to improve our platform and add the next generation of features used daily by thousands of restaurants.
Some projects we’ve been working on recently include:
- Instrumenting and stress-testing our APIs to set internal benchmarks for performance
- Re-architecting data models that track payment activities to address issues syncing data between the tablets and our backend servers
- Designing a flexible shift-break engine that enables customers to be in compliance with local labor laws
- Setting best practices when performing complex migrations governing the provisioning of new user permissions
As a senior software engineer on the Cash Management and Payroll team, you will be:
- Crafting, building and maintaining high performance, flexible and highly scalable web and mobile applications
- Participating in designing, estimating effort, implementing, testing, debugging, configuring, integrating and documenting database, middle-tier and front-end code
- Diagnosing performance bottlenecks and implementing optimizations
- Thinking in terms of the end-user
- Surveying and evaluating available technology options
- Actively contributing to product design and feature selection discussions
- Participating in code reviews to ensure technical implementations meet functional requirements
- Mentoring other team members
Do you have the right ingredients?
- Proficient in Java
- Well-versed in tiered web application architecture and databases
- Passionate about building great software
- An interest and commitment to continuous learning
- Known for having a get unblocked attitude
Our Tech Stack
Toast’s products run on a stack that ranges from guest and restaurant-facing Android tablets to backend services in Java to internal, guest-facing and restaurant-facing web apps. Our backend services follow a microservice architecture written using Java 8 and DropWizard; we use AWS extensively, ranging from S3 to RDS to Lambda. We have our own platform for dealing with user management, service elevations and robust load balancing. Toast stores data in a set of sharded Postgres databases and utilizes Apache Spark for large scale data workloads including query and batch processing. The front-end is built primarily using Angular and ES6. The main Toast POS application is an Android application written in Java and Kotlin. For data between tablets and our cloud platform we operate RabbitMQ clusters as well as direct tablet communication to the back end.