To succeed, you will need Essential Duties, Responsibilities, and Expectations • Design, develop, test, and maintain real-time C++ firmware for embedded systems • Assist with board bring-up and hardware testing • Provide technical support and troubleshooting assistance for firmware-related issues • Participate in code reviews and provide constructive feedback • Align with cross-functional R&D team including electrical engineering, mechanical engineering, and software engineering to ensure designs integrate into overall system architecture • Architect solutions by understanding product/technical needs, defining requirements, and designing system architectures that can be decomposed into manageable subsystems • Present technical findings and project status to cross-functional team and management • Effectively manage both long-term and short-term project schedules to meet deadlines in a fast paced, dynamic environment Minimum Qualifications (Experience / Education) • Bachelor's degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field • 2+ years relevant work experience • Working knowledge of C/C++ for embedded systems, including concurrency and memory management • Familiarity with Linux-based development environment including shell scripting, python, and CMake • Familiarity with debugging embedded applications (e.g. git, svn) • Experience with TCP/IP networking protocol implementation • Ability to read a schematic and understand digital electronics concepts • Ability to use an oscilloscope or logic analyzer to troubleshoot problems In return, we offer Culture of trust and accountability Lifelong learning and career growth Innovation powered by people Comprehensive compensation and benefits Health and well-being Job location This role requires you to work on-site at our office in Bozeman, MT, United States (US).