Senior Software Engineer, Team Lead
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.
Do you like to solve complex problems at scale? Toast is looking for a Software Engineer to play a leadership role on the team responsible for owning and building the next generation of our publishing system. Our publishing system acts is the bridge between our web based restaurant configurations and the tablets that use those configurations every day for every single transaction. Our system is currently used daily in thousands of restaurants across tens of thousands of devices. We need help in embarking on a ground-up rewrite of this system with the goal of increasing our scale by orders of magnitude. The new version of this system will also support a multitude of new publishing features such as selective publishing, effective dates, and rollbacks.
Some projects we’ve been working on recently include:
- Introduction and scale of a new microservice to encapsulate and consolidate access to the published data and our Restaurant Graph structure across all of our microservices
- Design of registration and editing endpoints for schemas which all configurations will use
- End-to-end prototype of our next generation stack for editing and managing configurations in React, GraphQL, and Protocol Buffers
As a software team lead on the discounts team, you will be:
- Working with our CTO, Chief Architect, and Platform PMs to define and scope high-impact platform improvements
- Leading a team of 2-4 software engineers to deliver results at a high level of quality
- Making hands-on code contributions to your team’s projects
- Defining monitoring, deployment, and elevation strategies for your team’s production services
- Mentoring and developing team members
Do you have the right ingredients?
- Proficient in Java or other object oriented languages
- Proficient with traditional databases and alternative data stores
- Proficient in schema-first technologies such as Protocol Buffers
- Experience delivering high quality, reliable services to production
- Excellent cross-team communication skills on complex technical topics
- Prior experience as tech lead or team lead
- Empathy for users, both internal (other Toast teams) and external (our restaurants)
- Passionate about building great software
- Experience with Kotlin is a plus
- Prior experience with distributed systems, microservices and capacity planning is a plus
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.