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 the 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?
Toast is looking for a Principal Software Engineer to help architect and build new, innovative solutions to expand our Business Platform Services capabilities. The Business Platform Services team at Toast provides core APIs and services on which customer experiences are built. We are at the very core of Toast, as we own the management of customers’ business data, enable the configuration of restaurants and software modules they use, and run a service for resilient communication between the Toast engineering ecosystem and Business Systems platforms such as Salesforce. In addition to the microservices we own, we also build single-page apps to administer these services.
About this roll* (Responsibilities)
- Help our team through the creation of our next generation Business Platform architecture
- Hands-on contributions in designing, building, reviewing, testing, debugging, configuring, integrating, monitoring, documenting, and maintaining - high performance, flexible, and highly scalable microservices and integration pipelines that make up our Business Platform.
- Review code to ensure that technical implementation meets functional requirements, as well as our high standards for code quality and testing.
- Collaborate with the rest of Toast’s R&D and Business Systems to build integrations to push data to downstream operational systems
- Ensure that our systems are performant, scalable, resilient and highly available
- Collaborate with UX, PM, QA and Engineering to build best-in-class solutions in a complex and fast-moving environment
- Champion best practices for development, deployment and quality life-cycles
- Guide the growth & development of engineers with mentoring and training.
Do you have the right ingredients? (Requirements)
- Experience delivering high quality, reliable services to production using Java, Kotlin or other object oriented language(s)
- Proficient in Software Development best practices (Code Quality, UnitTest, BDD)
- Extensive experience of integrating with third party products and applications, including Salesforce & Netsuite and billing platforms.
- Proficiency with SQL and relational databases
- Familiarity with NoSQL databases, preferably DynamoDB, Postgres
- Familiarity with Apache Camel and gRPC
- Passion to solve complex problems and to build great software
- Work with Product Leadership and product teams to define and integrate best practices and processes related to OKRs (objectives & key results), customer feature requests and internal tools
- Work directly with internal teams to iterate on product requirements & design feedback
- Lead by example, at times, working alongside the team in defining requirements, workflows, interaction, user journeys, process/screen flows, and wireframes
- Experience leading a team in the Agile/Scrum methodology
- Familiarity with React or other modern Web UI technologies
- Familiarity with Test Automation frameworks for backend services
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 (or Kotlin) 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 frontend is built using React, Angular, and ES6. Our main point of sale application is an Android application written in Java and Kotlin. For communication between tablets and our cloud platform, we utilize RabbitMQ clusters as well as direct API communication to our HTTP backend. For robust asynchronous communication across our platform, we leverage Apache Pulsar.