Description
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.
Minimum Qualifications
Bachelors degree in Computer Science, Computer Science Engineering, a combination of Electrical Engineering and Computer Science, or equivalent fields. Development experience in one of the following programming languages: C, C++, Python, Java, Go, Rust, Scala, or Swift.
Preferred Qualifications
Familiarity with the software development lifecycle: requirements gathering, design, development, deployment, and maintenance. Foundational software engineering and experience developing with object oriented or concurrent programming languages in an industrial setting. Exposure to board bring-up and interpreting and navigating schematics and layouts. Experience debugging using oscilloscopes and logic analyzers. Capable 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. Experience with software support tools including the Unix command line, shell scripting, and version control software. Eagerness to learn and apply new technology quickly and strategically. Ability to communicate clearly and collaborate effectively in a cross-functional team.
Learn more about this Employer on their Career Site
