Senior Principal Software Engineer - Payments at Toast
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 thought, background and 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 for a chance?*
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 is the lifeblood of our customers resulting in millions of dollars processed in transactions per day. Our payment processing systems operate in a secure environment with zero downtime, thanks to our engineers practicing strong discipline to keep things running smoothly.
About this roll*
- Bring your domain and general experience to re-architect our system for batching payments on a nightly basis to improve scalability
- Work closely with our Chief Architect and CTO to align platform efforts across the company
- Implementing a new API for handling credit card authorizations more flexibly, along with corresponding client-side code
- Coach engineers and teams (e.g., via code review, architecture review) to build better systems
- Write, deploy and support 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?
- Extensive experience with Java microservices
- Knowledge of Cloud Computing and mobile technology, ideally AWS and Android .
- Exposure to payments system software is a plus
- Experience working with product teams to plan for solutions that deliver good outcomes to our customer and the company
- Desire to remain close to the code and are comfortable making complex changes without breaking (too much) stuff
- A strong understanding of cryptographic primitives and the hands-on experience applying building fault tolerant and secure applications.
*Bread puns encouraged, but not required
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. We are using Apache Pulsar to communicate between modules and are exploring new NoSQL solutions. 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.