Bachelor's degree in Computer Science, Computer Science Engineering, a combination of Electrical Engineering and Computer Science, or equivalent fields. 10+ years of experience with all aspects of the software development lifecycle: requirements gathering, design, development, deployment, and maintenance. Hands-on experience in using debugging tools such as gdb, lldb, oscilloscopes, and logic analyzers. Experience with board bring-up and interpreting and navigating schematics and layouts.
Capable of driving projects related to: application development (e.g. data acquisition, system control, automation, and UI), system software and firmware, device drivers, and general compute infrastructure. Strong Software Engineering skills in software design, development across object oriented or concurrent programming languages, and debugging. This would include the programming language itself as well as its toolchains (IDEs and dependency management) and overall ecosystem (frameworks and best practices) across a variety of operating systems.
Skilled with software support tools including the Unix command line, shell scripting, and version control software. Demonstrated ability to digest and use new technology quickly and strategically. Consistent track record successfully making progress amidst ambiguity; strong communication skills and experience working on cross-functional projects.