Senior Software Engineer, Payments Platform at Toast
Toast is a rapidly growing company building the first integrated restaurant management software platform providing an all-in-one system for handling orders, managing the kitchen, and providing analytics on the health of the business. We are one of the fastest growing technology companies in the U.S., and ranked third on Deloitte’s Technology Fast 500™ in November 2017. We move quickly and thus have lots of opportunities for career growth. If you’re passionate about your work and want to be in a fun and growing industry, join us!
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 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.
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:
- Further modularization of our microservice architecture to provide extension points for the future using tools like Apache Pulsar and Apache Camel.
- Implementation and architectural improvements to improve day-to-day performance of payments processing
- Implementing new capabilities such as e-commerce or contactless payments and completing appropriate industry and vendor certifications
As a Senior Software Engineer at Toast you will:
- Learn from the problems that operating at scale teaches us, and implement solutions to those problems
- Architect systems that can scale to hundreds of thousands of customers, with increasing flexibility and reliability
- Diagnose performance bottlenecks and implement optimizations
- Participate in code reviews to ensure technical implementations meet functional requirements
- Spearhead complex projects that improve functionality and reliability for our customers
- Effectively mentor and guide less experienced engineers
Do you have the right ingredients
- are respectful, empathetic, and humble
- take the success of the business as seriously as devising solid technical solutions
- want to work on systems that are critical to customer success
- make teams you are on better over time
- have experience performing large, complicated changes without breaking (too much) stuff
- can balance getting things done with making things perfect
- like to get involved in deciding what gets built to solve for the customer and the company
- are fascinated by cryptography, application security, and fault tolerant systems
We are an equal opportunity employer. We value diversity and diverse viewpoints at our company. We do not discriminate on the basis of race, religion, color, national origin, gender identity, sexual orientation, age, marital status, veteran status or disability.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.