Senior Software Engineer, Configuration Menus Team
We are a rapidly growing company that’s revolutionizing the way the restaurant industry does business by pairing technology with an unrivaled 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 shape the future of the company. Join us as we empower the restaurant community to delight guests, do what they love, and thrive.
Do you like to solve complex problems at scale? Toast is looking for a Senior Software Engineer to play a critical role on the team responsible for our Core Menu Configuration APIs and UI Pages. The Toast system currently supports a wide variety of configurations and pricing structures for a restaurant’s menu items. These menu items are then published and referenced by our Android tablets (keyed by waitstaff), consumers (online orders) and partners (via our APIs). These items are used in the process of creating and updating every single order that enters the system. In order to meet the demands of scale and complexity, we will need to build a system that is both increasingly extensible, robust, scalable and deliverable continuously. We need your help to improve our platform and add the next generation of features to this critical part of our product.
Some projects we’ve been working on recently include:
- Rewrite of our core configuration pages in a new UI Framework
- Creation of a brand new API for accessing a full-resolved menu structure in a fast and flexible way (including the use of GraphQL)
- Performance testing on all of our core microservices
- Seamless integration with a major 3rd party delivery provider to allow for automatic menu and order synchronization
As a Senior Software Engineer on the Config Menus Team, you will be:
- Designing, 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 for services which deal with hundreds of millions of requests
- Thinking in terms of the end-user and designing accordingly
- 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 an Object Oriented Language; Java or Kotlin a plus
- Well-versed in tiered web application architecture and databases
- Passionate about building great software
- A lifelong learner
- Known for having a get unblocked attitude
- Microservices knowledge is preferred
- Previous exposure to a SaaS product is preferred
- Android experience is a plus
We are an equal opportunity employer. We value diversity and diverse viewpoints at our company. We do not discriminate on the basis of race, religion, color, national origin, gender identity, sexual orientation, age, marital status, veteran status or disability.
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.