Senior Software Engineer (Publishing)
Why be a Toaster?
"I work here because I think we are building a strong business the right way and I will get a chance to be a part of something special. I also enjoy working with the top talent we have in an open culture where I can make an impact." - Archie G, Engineering Manager
Toast is a rapidly growing startup building the first all-in-one restaurant management software platform. Toast’s Android tablet based system helps restaurants operate more efficiently and connect with their customer base in new and innovative ways. For example, our portable tablets allow waitstaff to enter orders directly to the kitchen, reducing guest wait time and allowing the restaurant to turn over tables faster. If you’re a passionate software engineer looking to grow professionally and make an impact, join us!
Toast is looking for a self-motivated individual who love 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 our complex distributed system "just works" while maintaining a well-designed user interface. We need a talented engineer on our Publishing team to help build and maintain the highest quality product as our vision moves forward.
The publishing system is leveraged by more than just our menu, allowing changes to be published to our platform for a single restaurant; a group of locations; or all locations in a restaurant group. We are investigating different technologies and building out a platform that can easily support multiple location accounts. From one day to the next, the publishing system will have the ability push a small change to a single location for their locally sourced menu specials, to staging an update across all menus for multiple locations in a chain safely and quickly.
Some projects we’ve been working on recently include:
- Adopting event sourcing and CQRS into the Android application
- Async publishing and a bi-directional synchronization solution with webhooks implementation of menu data to a large partner integration
- A publicly exposed API owning production deploys, monitoring and implementation
- Allowing pricing overrides while keeping the rest of the menu the same
As a senior software engineer on the Publishing 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
- Thinking in terms of the end-user and contributing to product design and feature selection discussions
- Participating in code reviews to ensure technical implementations meet functional requirements and mentoring other team members
If you’re someone that is:
- Well-versed in tiered web application architecture and databases
- Passionate about building great software
- A lifelong learner and has the ability to get themselves unblocked
Bonus Points (but not necessary):
- NoSQL datastores
If this sounds like something you want to be a part of and grow your career with, we want to talk to you!
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.