Senior Software Engineer (Android Platform)
I work here because Toast gives us the opportunity to live on the cutting edge of the Android ecosystem. I get to push the boundaries of Android performance in both hardware and software. At Toast, I work on creative solutions to difficult challenges that most other Android apps will never face. - Frank M., Staff Software Engineer
We are a rapidly growing company thats 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.
Toast is looking for a self-motivated individual who loves building great software. From our core application built on top of Android, to a Java microservice architecture on the back end, we focus on providing the infrastructure stability necessary so our complex distributed system "just works" while maintaining a well-designed user interface. We need a talented engineer on our Android Platform team to help build and maintain the highest quality product as our vision moves forward.
The Android Platform teams mission is to make our Android codebase secure, reliable, and blazing fast so that our customers have a great experience with our devices. The team builds the core services in our Android code base and establishes the design patterns and practices that allow all of the Toast development teams to contribute great features to our apps. Join the Android Platform team to learn Android in-depth, code for performance, and drive our platform to architectural excellence.
Some projects weve been working on recently include:
- Leading investigation and adoption of the Kotlin programming language at Toast
- Simplifying and improving our apps user authentication model
- Using RxJava to build maintainable asynchronous, event-based components
- Instrumenting our apps to build an interactive metrics database
- Eliminating performance and synchronization bottlenecks
As a senior software engineer on the Android Platform team, you will be:
- Designing, building and maintaining high performance, flexible and highly scalable android code
- Participating in designing, estimating effort, implementing, testing, debugging, configuring, integrating and documenting your projects
- Diagnosing performance bottlenecks and implementing optimizations
- Learning and advocating for Android development best practices across Toast
- Participating in code reviews to ensure technical implementations meet functional requirements and mentoring other team members
Do you have the right ingredients?
- Interest in building a deeper understanding of using Android to build reliable apps
- The ability to design interfaces and patterns that other developers can adopt
- Excitement around improving architectural quality
- Passion for building great software
- The ability to get yourself unblocked, and the desire to be a lifelong learner
Our Tech Stack
Toasts 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.