Cana is a stealth consumer tech company based in the SF Bay Area. We are a team of scientists, engineers, product managers and designers, building products to redefine the future of beverages. Our first product will greatly reduce the environmental impact of traditional beverage production and distribution by reimagining how the world’s most popular beverages are created and consumed.
If you want to join a passionate team working on challenging and highly impactful solutions for our planet at the intersection of hardware, software and groundbreaking chemistry, we want to hear from you!
Cana aims to create a workplace where you feel valued and can do your best work. We welcome candidates with backgrounds that are traditionally underrepresented in tech and hope you apply, even if the role below does not exactly fit you.
About the role:
As a Sr. Real-time Firmware Engineer engineer at Cana, you will be responsible for developing firmware that reliably actuates, communicates, and senses as a critical components of an embedded IoT consumer product. You will integrate new subsystems, optimize and own existing codebases, and build tools for other teams to easily control these subsystems. You will work closely with the product, engineering, and science teams to drive the definition of our firmware platforms and architecture. You will work closely with the Hardware, Electrical, and Firmware team to write code that directly interfaces with electrical and electromechanical subsystems, and communicates with subsystems on other boards, in the device. You will be an important voice in contributing to product feature discussions.
Key Qualifications and Experience:
Designing, coding, debugging, testing, shipping, and maintaining an Embedded Real-Time system in consumer devices
Working with cross-functional teams, focusing on shared goals
Designing and developing code in C and C++, for multi-process/thread RTOS environment on ARM Cortex processors
Interfacing with hardware devices through various comm protocols such as I2C, SPI, UART, PWM, etc.
Working with electrical & mechatronic controls systems
Taking non-technical requirements and translating them into executable user stories and workflows for software & embedded teams
Designing and implementing software quality patterns and practices (continuous integration, static analysis, unit testing, integration testing)
Comfort with source control management repositories (GitHub), virtualization, and hardware simulation techniques.
Ability to be successful in a fast-paced team environment and delivering high-quality software products using established agile development methodologies (such as Scrum, Kanban, etc.)
Typically requires a minimum of 6 years of related experience with a Bachelor’s degree; or 4 years and a Master’s degree; or a PhD with 2 years experience; or equivalent experience. This is a guideline and not a fixed requirement.