20 Nov Entry-Level Software Engineer
- Relevant Work Experience: New College Graduate
- Career Level: Entry-Level
- Education: Bachelor of Science degree in Computer Engineering or Computer Science
- Travel Requirements: Less than 10%
The Role
The Embedded Software Engineer will be a member of the R&D engineering team working on the development of advanced wildlife telemetry products. This position requires a deep understanding of solid design and development practices. They will work with other cross-functional members to provide technical software-level expertise and solutions to engineering problems.
Responsibilities
- Develop reliable and innovative embedded software that runs on our products.
- Develop tools and software to support manufacturing, testing, and development.
- Analyze the performance of hardware and software decisions that optimize the efficiency of our products.
- Participate in designing, coding, testing, debugging, and documenting the software that runs on our products.
- Provide upgrades to existing products and assist in the development of new products.
- Support both external users and internal staff members in the use of applications.
- Perform work on weekends and evenings as needed to meet applicable deadlines.
- Duties may be modified or assigned at any time to meet the needs of the business.
Required Skills and Experience
- Bachelor of Science degree in Computer Engineering or Computer Science.
- Proficiency in C, C++, and python programming languages.
- Working knowledge of version control such as with git.
- Knowledgeable about digital hardware design and serial protocols.
- Knowledgeable about analog sensors, signal processing, and digital filter implementation.
- Comfortable working in both Windows and Linux.
- Able to work in a highly cross-functional team environment.
- Excellent communication and negotiation skills, for both internal and external audiences, at all levels.
Desired Skills and Experience
- Experience developing firmware for the ARM Cortex-M architecture.
- Experience with either CMake or Meson build systems.
- Comfortable writing basic bash scripts for process automation.
- Experience with or willingness to learn modern C++ techniques and standards (C++14, C++17, C++20).
- Experience with continuous integration and testing at various levels (unit testing, acceptance testing, hardware-in-the-loop testing).
- Familiarity with the basic concepts of networking and TCP/IP.
- Familiarity with the basic concepts of machine learning and AI algorithms.
- Familiar with one or more risk management techniques (i.e. Hazard Analysis, Risk Analysis, Failure Modes, and Effects Analysis (FMEA), Fault Tree Analysis (FTA), etc.).