Senior Software Engineer (Android Platform)
Why be a Toaster?
“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
Toast is a rapidly growing startup building the first all-in-one restaurant management software platform. Toast’s Android tablet based system helps restaurants operate more efficiently and connect with their customer base in new and innovative ways. For example, our portable tablets allow waitstaff to enter orders directly to the kitchen, reducing guest wait time and allowing the restaurant to turn over tables faster. If you’re a passionate software engineer looking to grow professionally and make an impact, join us!
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 team’s 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 we’ve been working on recently include:
- Leading investigation and adoption of the Kotlin programming language at Toast
- Simplifying and improving our app’s 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
If you’re someone that is:
- Interested in building a deeper understanding of using Android to build reliable apps
- Able to design interfaces and patterns that other developers can adopt
- Excited by improving architectural quality
- Passionate about building great software
- A lifelong learner and has the ability to get themselves unblocked
If this sounds like something you want to be a part of and grow your career with, we want to talk to you!
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.