Software Engineer Intern - Summer 2018
Why be a Toaster?
Toast is looking for self-motivated individuals who love building great software and want to have fun while doing it. We work extensively with Android, iOS, and web front ends, using Java (Play framework) back end infrastructure on Heroku. We work hard to provide a well designed user interface for our customers and to provide the infrastructure stability necessary so that this complex distributed system "just works". We need talented engineers to build and maintain the highest quality product as our vision moves forward.
Responsibilities
* Work on a small team of 3-5 engineers, responsible for entire modules of the Toast product
* Architect, build, and maintain high performance, flexible, and highly scalable web and mobile applications
* Participate in designing, estimating effort, implementing, testing, debugging, configuring, integrating and documenting database, middle-tier and front-end code
* Diagnose performance bottlenecks and implement optimizations
* Think in terms of the end-user and design accordingly
* Survey and evaluate available technology options
* Actively contribute to product design and feature selection discussions
* Participate in code reviews to ensure technical implementations meet functional requirements
Desired Skills
* Deep Java development experience
* Mobile software development experience, preferably with Android
* Well-versed in tiered web application architecture and databases
* Proficient in the web front-end basics - HTML, CSS and JavaScript (jQuery)
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.