Mid/Senior Software Engineer, Analytics
Why be a Toaster?
“Our analytics team is taking restaurant data analytics to the next level to create new insights for our customers. From scalable sales reporting, to correlation-based analytics, to machine learning and prediction... Big Data analytics starts here.” - Martin K., Sr. Principal Software Engineer
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 self-motivated individual who loves building great software. From our core application built on top of Android, to a Java microservice architecture on the back end, we focus on providing the infrastructure stability necessary, so that our complex distributed system "just works" while maintaining a well-designed user interface. We need a talented engineer on our Analytics team to help build and maintain the highest quality product as our vision moves forward.
Our analytics team is building a scalable data platform that uses the data a restaurant streams through our system to help the restaurant operators save money, optimize service, and offer guests a better experience. With years of data about the restaurant available for quick access in our Spark-based platform, and today’s machine learning techniques, the sky’s the limit!
Some projects we’ve been working on recently include:
- Optimizing data pipelines to get new data into our Spark cluster as quickly as possible
- Overhauling reporting workloads to use the new Spark cluster, including introducing new reporting features that couldn’t be accomplished without the power of the new platform
- Introducing tiered storage for our analytics platform so we can manage cost at large scale
- Prototyping ML-based analytic approaches for predicting sales, optimizing menus, and providing user recommendations
As a senior software engineer on the Analytics team, you will be:
- Designing, building and maintaining our high performance, highly reliable data analytics platform
- Participating in designing, estimating effort, implementing, testing, debugging, configuring, integrating and documenting services and backend code
- Diagnosing performance bottlenecks and implementing optimizations
- Collaborating on machine learning projects built on the analytics platform
- Participating in code reviews to ensure technical implementations meet functional requirements and mentoring other team members
Do you have the right ingredients?
- Deep Java development skills
- Capability of delivering high quality, reliable services to production
- Passion for building great software
- The ability to get yourself unblocked, as well as the motivation to be a lifelong learner
- Distributed systems experience is preferred
- Spark experience is a plus
- Experience seeing analytic projects from concept to production is desired
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