Principal Software Engineer, Payments Processing & Settlement
We are a rapidly growing company that’s revolutionizing the way the restaurant industry does business by pairing technology with an unrivaled 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 shape the future of the company. Join us as we empower the restaurant community to delight guests, do what they love, and thrive. .
The Payments teams at Toast operate one of the most critical portions of the Toast infrastructure: processing payments on behalf of our restaurants and ensuring that restaurants are paid in a timely manner. Payment processing is a key source of Toast’s revenue and also the lifeblood of our customers; we process millions of dollars in transactions per day. Our payment processing systems operate in a highly secure environment with zero downtime, thanks to our engineers practicing strong discipline to keep things running smoothly.
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. The payments industry is constantly changing and this team operates right in the middle of it, growing Toast’s capabilities in response to changing markets and customer scale.
Some projects we’ve been recently working on include:
- Building a system that lets Toast securely and quickly link consumer credit cards to loyalty accounts
- Improving the performance of the system used to settle payments in the Toast platform
- Automating interactions between internal and external systems that used to be handled over email
As a Principal Engineer on the Payments Core team, you will:
- Bring your domain and general experience to build an architecture that will scale to many engineering teams and orders of magnitude more growth
- Coach engineers and teams (e.g., via code review, architecture review) to build better systems
- Work closely with our Chief Architect and CTO to align platform efforts across the company
- Write and deploy production code
- Monitor production systems and build systems/processes to improve our situational awareness and operational efficiency
- Diagnose performance bottlenecks and implement optimizations
- Spearhead complex projects that improve functionality and reliability for our customers
Do you have the right ingredients?
- You value the success of the business and are able to design technical solutions to drive that success.
- You have experience working with product teams to plan for solutions that deliver good outcomes to our customer and the company
- You want to remain close to the code and are comfortable making complex changes without breaking (too much) stuff
- You demonstrate humility, empathy and respectfulness
- You act as a force multiplier for teams you work with
- You are able to balance getting things done with making things perfect
- You have a strong understanding of cryptographic primitives and the hands-on experience applying building fault tolerant and secure applications.
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.