Embedded Software Engineer
Role details
Job location
Tech stack
Requirements
processing solutions. We are looking for a hands-on Software Engineer to help design and execute on the embedded platform architecture and system software development efforts. The candidate must be flexible and able to work with experts from a diverse set of backgrounds to identify requirements and implement critical features.
In this dynamic role, the candidate will work closely with the project's other software engineers and the wider engineering team to design and develop software solutions enabling progress on the organization's research and development activities. Duties will include contributing to software architecture definitions, creating development plans, translating application feature requests into reusable software, and executing on plans for new and existing embedded applications. Working with a mix of short and long timelines, balancing a wide range of technically diverse tasks. The work includes: automation and control of embedded platforms, data acquisition and management, and developing software support tools and associated services.
Bachelors degree in Computer Science, Computer Science Engineering, a combination of Electrical Engineering and Computer Science, or equivalent fields.\nDevelopment experience in one of the following programming languages: C, C++, Python, Java, Go, Rust, Scala, or Swift.
Familiarity with the software development lifecycle: requirements gathering, design, development, deployment, and maintenance.\nFoundational software engineering and experience developing with object oriented or concurrent programming languages in an industrial setting.\nExposure to board bring-up and interpreting and navigating schematics and layouts.\nExperience debugging using oscilloscopes and logic analyzers.\nCapable of contributing to projects related to: application development (e.g. data acquisition, system control, automation, and UI), system software and firmware, device drivers, and general compute infrastructure.\nExperience with software support tools including the Unix command line, shell scripting, and version control software.\nEagerness to learn and apply new technology quickly and strategically.\nAbility to communicate clearly and collaborate effectively in a cross-functional team.