Senior Software Engineer, Data Sync
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.
The Data Sync team is responsible for the cloud and Android infrastructure that synchronizes orders across the Toast terminals and the Toast backend. All critical restaurant workflows rely on the Data Sync infrastructure, and the Data Sync backend endpoints handle the vast majority of Toast system traffic.
Our mission is to ensure that our customers never have to think about or wait for the order information to sync. On a more technical level, this involves building, refining, and scaling Android and cloud-based components that handle low-latency durable messaging, conflict resolution and maintain data integrity in full and partial network connectivity scenarios.
Some projects we’ve been working on recently include:
- Augmenting our webservice-based order processing infrastructure with data streaming
- Durable disk-based queuing system that records order updates on our Android terminals
- Audit record system that allows our support to see every single modification made to every single order
As a senior software engineer on the Data Sync team, you will be:
- Designing, building, and refining scalable, high-throughput cloud messaging infrastructure
- Building and refining high-performance data synchronization components in Android
- Contributing to the data flow architecture and integrating it into a variety of functional areas of the Toast app
- Instrumenting code to provide visibility into systems’ end-to-end performance and correctness
- Collaborating with product management and other platform and functional teams to deliver the best experience to Toast customers
Do you have the right ingredients?
- An interest in creating and iterating on mission-critical cloud and embedded infrastructure
- Proficiency in Java, understanding of concurrency, and ability to design good APIs
- Passion for learning and building things that have never been built before
- Android or other embedded experience is preferred
- SaaS backend experience: microservices, and databases (relational or noSQL) and/or exposure to distributed computing (consensus, CRDTs, gossip) 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.