Now, more than ever, the Toast team is committed to our customers. We’re taking steps to help restaurants navigate these unprecedented times with technology, resources, and community. Our focus is on building the restaurant platform that helps restaurants adapt, take control, and get back to what they do best: building the businesses they love. And because our technology is purpose-built for restaurants, by restaurant people, restaurants can trust that we’ll deliver on their needs for today while investing in experiences that will power their restaurant of the future.
Bready* to make a change?
Our team is responsible for processing credit card payments on behalf of our restaurants. Our system is a set of Java Dropwizard services deployed to AWS, interacting with thousands of Android tablets using modern payments hardware, as well as with partners through our API. Payment processing is a key source of Toast’s revenue and also the lifeblood of our customers’ business: we process multiple millions of dollars in transactions every day. We are looking for a Staff Software Engineer to join our team as we scale our systems to meet future demands.
About this roll*:
- Design, build, deploy, and maintain highly resilient and scalable systems that are critical to our customers’ success
- Lead complex projects that improve functionality and reliability for our customers
- Review code to ensure technical implementations meet functional requirements
- Mentor and coach other engineers
- Learn from our scaling problems, and implement solutions to those problems
- Diagnose performance bottlenecks and implement optimizations
- Participate in a scheduled rotation of engineers on your team who respond to production alerts for the services you own
- Investigate and solve payment processing issues to improve the customer experience
Do you have the right ingredients*?
- You are respectful, empathetic, and humble
- You have a growth mindset with an emphasis on improving yourself and your team
- You balance getting things done with platform stability
- You have experience shipping critical production services
- You have extensive experience writing Java or another object-oriented language, with a deep understanding of testing, quality, and best practices
- You have experience scaling distributed systems
- Please note that the Staff Engineer role sits between Senior Engineer & Principal Engineer in our career ladder so it is a Tech Leadership position
*Bread puns encouraged but not requiredOur Tech Stack
Our 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 and DropWizard; we use AWS extensively, ranging from S3 to RDS to Lambda. We have our own platform for dealing with user
management, canary deployments, and robust load balancing. We store data in a set of sharded Postgres databases and utilize Apache Spark for large scale data workloads including query and batch processing. The web front-end is built using Angular and ES6. Our main point of sale 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.