Staff Software Engineer, Scale
We are a rapidly growing company that’s revolutionizing the way the restaurant industry does business by pairing technology with an extraordinary 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 craft the future of the company. Join us as we empower the restaurant community to delight guests, do what they love, and thrive.
We looking for a Senior Software Engineer to play a critical role on the team responsible for scaling our cloud platform and infrastructure. Toast’s platform processes tens of millions of requests per day, and this number grows constantly as we add new restaurants to the platform. We are responsible for developing the core services which support Toast’s growth and maintain high availability, monitor-ability, and security. We are the core of Toast as a rapid-growth company. We are looking for someone who has a knack for identifying and solving problems before others are even aware, writing well-tested code, and designing for reliability as we find and build the most scalable solutions in the industry. As part of the Scale team, you will be challenged to scale Toast's architecture to keep pace with our growing business.
Some projects we’ve been working on recently include:
- Horizontal database scaling through sharding
- Federated authentication and authorization
- Postgres monitoring and optimization
- Microservice service discovery and routing
As a senior software engineer on the Scale team, you will be:
- Designing, building and maintaining high performance, flexible and highly scalable web and mobile applications
- Participating in designing, estimating effort, implementing, testing, debugging, configuring, integrating and documenting database, middle-tier and front-end code
- Diagnosing performance bottlenecks and implementing optimizations
- Thinking in terms of the end-user and designing accordingly
- Evaluating and implementing best technology options
- Actively contributing to product design and feature selection discussions
- Mentoring other team members
Do you have the right ingredients?
- Proficient in Java or other object oriented languages
- Well-versed in tiered web application architecture and databases
- Passionate about building great software
- A lifelong learner
- Known for having a get unblocked attitude
- Android experience, microservices knowledge and prior SaaS product experience are all a plus
Our Tech Stack, for this role
- All on AWS. Mostly, containerized dropwizard based microservices.
- Primary backend language is Java / Kotlin.
- Team owns a number of other critical systems that depend on additional technologies:
- Postgres on RDS - The team is responsible for maintaining the uptime and scalability of five shards of the company’s critical operational database.
- LUA + OpenResty (NGINX) - The team built and maintains a gateway for routing all requests that come in to Toast.
- Redis on Elasticache - The Gateway and a few other projects use Redis as a shared cache.
- DynamoDB - Various projects.
- Lambda - Offloads CPU scaling related to bcrypt hashing.
- Pulsar - The team owns tooling and infrastructure around the company’s messaging system