Software Engineer - Payments Processing
We’re not your traditional tech company and we don’t aim to be. Going against the grain is in our DNA. Building a revolutionary product begins with revolutionary thinking. That’s why we value diversity of background and lived experience. Together, we empower restaurants of all sizes to build great teams, increase revenue, improve operations, and delight their guests. We pair our deep understanding of the restaurant industry with powerful cloud based software and restaurant-grade hardware to deliver an intuitive all-in-one platform. Join us on our mission to empower the restaurant community to delight guests, do what they love, and thrive.
Bready* to make a change?
We are looking for a Software Engineer to play a meaningful role on the payments team responsible for processing payments on behalf of our restaurants and ensuring that restaurants are paid in a timely manner. Our payments system is built as a set of Java microservices deployed to AWS, interacting with thousands of Android tablets using modern payments hardware, as well as partners through our API. Payment processing is a key source of Toast’s revenue and also the lifeblood of our customers: we process multiple millions of dollars in transactions per day. Our payment processing systems operate in a highly secure environment with zero downtime, with our engineers practicing strong discipline to keep things running smoothly.
About this roll*:
- Help build highly resilient, flexible and scalable architecture
- Learn from our scaling problems, and implement solutions to those problems
- Diagnose performance bottlenecks and implement optimizations
Do you have the right ingredients*?
- Respectful, empathetic, and humble
- Want to build impactful systems that are critical to customer success
- Passion for building great software
- Balance getting things done with making things just right
*Bread puns encouraged but not required
Our 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 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. 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.