The main function of a software engineer is to apply the principles of computer science and mathematical analysis to the design, development, testing, and evaluation of the software and systems that make computers work. A typical software engineer researches, designs, develops and tests operating systems-level software, compilers, and network distribution software for medical, industrial, military, communications, aerospace, business, scientific and general computing applications.
- Create automation for development, release, and testing of open-source firmware platforms (Open BIC / OpenBMC).
- Enhance and extend existing Open BIC subsystems (logging, debugging, etc.).
- Extend testing capabilities by integrating open-source community driven test frameworks and developing tests.
- Implement peripheral QEMU device models for server platforms.
- C - Required and Proficient.
- Python - Required and Proficient.
- Git - Required and Proficient.
- Prefer development experience in one or more of the following:
- Zephyr (or similar) embedded OS.
- QEMU models (or similar simulation products).
- Defining and executing embedded system (or similarly complex application) release process.
- Defining and implementing tests for embedded system.
- Bachelor's degree in computer science, software engineering or relevant field required.