Bevi is on a mission to disrupt the beverage supply chain and replace single-use water bottles with smart water machines. Thousands of companies use Bevi to sustainably provide their employees with pure, sparkling, and flavored water at work. As the market leader in IoT-enabled beverage machines, we've raised over $160M in venture capital and we're doubling year over year. In addition to maintaining hyper-growth with our current product line, Bevi is heavily investing in new product development.
Bevi is looking for a passionate and experienced Senior Software Engineer for Android to join our software development team. In this role, you will help deliver and maintain high-performance Android applications used directly by customers on our innovative smart water machines. You will develop internal tools that empower our engineering team to rapidly create and test new features that enhance the user experience of using our machines. You will be responsible for delivering software solutions that facilitate hardware-software integration efforts and will collaborate closely with other software and firmware engineers on system design, documentation, and implementation.
We are a small and fun software team in a fast-growing hardware startup. Our customers love our product and you will play a crucial role in making them even happier. If you love thinking through new ideas and interactions, how to execute them in an innovative way and have a deep respect for user experience, come join our team!
The ability to be in the office 3+ days per week in our Boston (Charlestown) headquarters is required for this position.
Your Day to Day
Design, build, optimize, and maintain Bevi's Android applications using Kotlin to facilitate consistent reliable operation, remote management, and scalability of Bevi's rapidly expanding fleet of machines
Work efficiently to deliver consistent results as part of an agile software development team, ensuring your code is clean, reliable, and easy to maintain
Directly support hardware-software integration efforts on both existing and new products by building controls that interface with the firmware that powers Bevi machines
Collaborate with cross-functional teams, including product management, firmware engineers, and hardware teams, to define, create, and ship new features to Bevi's customers
Review code and regularly share input and advice to peers to ensure high code quality and maintain best practices across the team
Create and maintain software documentation to proactively contribute to knowledge sharing across the team
Significantly influence the team's software development and delivery strategy and contribute considerably to software development planning
Make technical decisions keeping software quality, security, and maintainability in mind
Set the standard for software quality and delivery across Bevi's Android software team through the use of modern software frameworks and organizational practices
Help triage, identify, and resolve complex issues and bugs that surface in the Android stack for reliable system operation on Bevi machines and to reduce impact to customers
Actively participate in Agile/Scrum development processes, including sprint planning, daily stand-ups, and retrospectives
Ensure the performance, quality, and responsiveness of Bevi's user interface
Participate in architectural decisions and app optimization strategies
Stay up-to-date with the latest mobile technology trends and Android SDK advancements
Requirements
A BS in Computer Engineering, Computer Science or other related field, or the equivalent in related software development experience
5+ years of professional Android development experience
Strong expertise in Java or Kotlin with mastery of the Android SDK and frameworks, including Couroutines and State Flows
Experience working with Jetpack components, especially Compose
Familiarity with tools such as Git, Gradle, Android Studio, and CI/CD pipelines
Hands-on experience developing and deploying production-ready Android applications
Solid understanding of MVVM, Clean Architecture, and other design patterns
Experience with unit testing, UI testing, and test-driven development. Experience using Espresso and/or Robolectric is a plus
Solid understanding of performance tuning, memory management, and multi-threading
A working knowledge of the application development landscape, architectural trends, and emerging technologies. Your passion for new technologies gives you a genuine desire to learn and to devise innovative solutions that enhance application performance
Strong communication and interpersonal skills that allow you to collaborate effectively with cross-functional teams. You are able to constructively discuss opposing viewpoints with composure and tact to bring the team together towards a shared goal
A self-starter approach and sense of ownership of the projects that you work on with the ability to work both independently and collaboratively in a fast paced work environment
Experience with embedded development (AOSP) and integrating with firmware is a plus
Benefits
Comprehensive medical, dental and vision insurance plans with BlueCross BlueShield, 95% paid by employer
401(k) with company match, and environmentally responsible investment options
Flexible PTO plus 12 company holidays, and additional paid days for sick leave, etc (including sustainability or social justice volunteer events)
Generous fully paid parental leave for both birth parents and non-birth parents
Fully employer paid disability and life insurances
Wellness and fitness reimbursements
Monthly stipends for cell phone use and commuting costs
Onsite snacks, weekly catered lunch, and (of course) unlimited Bevi ... plus composting and terracycling, too