Software Engineer II, Cash Management & Payroll
We’re not your traditional tech company and we don’t aim to be. Going against the grain is in our DNA. Building a revolutionary product begins with revolutionary thinking. That’s why we value diversity of thought, background and experience. Together, we empower restaurants of all sizes to build great teams, increase revenue, improve operations, and delight their guests. We pair our deep understanding of the restaurant industry with powerful cloud based software and restaurant-grade hardware to deliver an intuitive all-in-one platform. Join us on our mission to empower the restaurant community to delight guests, do what they love, and thrive.
Toast is looking for a Software Engineer to play a meaningful role on the team responsible for our Labor and Payroll workflows. Our team is as full stack as you can get, working on features on our Android tablets (Java/Kotlin), backend server code (Java), frontend UIs (React/Play/pure JS), and external APIs driven by Dropwizard microservices. That means that there are always opportunities to learn as we make an impact on our customers’ experience across Toast. Help design full-stack features for our up-and-coming Payroll product, dive deep into Android to improve our in-restaurant labor experience, and be one of the first to break our monolithic codebase into focused microservices. A restaurant’s employees are a critical part of every restaurant, and we need your help to revolutionize our management tools that are used by thousands of restaurants and hundreds of thousands of employees every day.
Some projects we’ve been working on recently include:
- Re-architecting data models that track payment activities to address issues syncing data between the Android tablets and our backend servers
- Designing a flexible shift-break engine that enables customers to be in compliance with local labor laws
- Defining best practices for performing complex migrations governing the provisioning of new user permissions
As a 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, implementing, testing, debugging, configuring, integrating and documenting mobile, database, middle-tier and front-end code
- Diagnosing performance bottlenecks and implementing optimizations
- Designing solutions from the customer’s perspective
- Actively contributing to product design and feature selection
- Participating in code reviews to ensure technical implementations meet functional requirements
- Mentoring other team members
Do you have the right ingredients?
- Proficient in an object oriented language
- Passionate about building great software
- An interest and commitment to continuous learning
- Known for having a get unblocked attitude
- At least 2 years of experience
- At least one of the following:
- Well-versed in at microservice architecture or SaaS
- Well-versed in Android development
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 React 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.