We are seeking a highly motivated and talented Embedded Software Engineer to join our clients growing team. In this role, you will play a critical part in the design, development, and deployment of cutting-edge software for our Generator Systems. You will work closely with a cross-functional team of engineers to develop and deliver high-quality, reliable, and safe software solutions.
Responsibilities:
Design and develop high-quality embedded code for Generator Systems.
Collaborate with software and hardware engineers to architect, design, and implement best-in-class electrification and software products.
Develop and maintain software architectures for embedded computing systems in industrial PC environments.
Develop and manage APQP documentation, including FMEAs and DVP&Rs.
Ensure that software aspects of products meet all necessary safety, emission, and compliance requirements (e.g., ISO26262, UL).
Develop and rapidly deploy software products for on-hardware testing.
Own direct controls software products from inception to completion, overcoming any obstacles encountered.
Report and track issues that arise in deployed complex systems and on test stands.
Participate in the design and implementation of the CI/CD environment, including automated build and regression testing.
Work closely with all teams to ensure compliance with development processes.
Design and maintain software architectures for embedded computing systems in industrial PC environments.
Ensure that software aspects of products meet all necessary safety, emission, and compliance requirements.
Additional duties and responsibilities as assigned.
Qualifications:
Bachelor's degree in Software Engineering, Computer Science, or a related field.
5+ years of experience developing technical products and working in a team environment.
Proven track record of deploying successful and reliable software across various environments (industrial, aviation, military, automotive, commercial).
Skills & Abilities:
Experienced in writing and implementing low-level drivers for MCU environments.
Expertise in communication protocols (CAN, Ethernet, SPI, I2C, Modbus, UDP).
Proficiency in writing and performing unit tests.
Experience in writing and owning documentation for software components.
Proficiency in C/C++ and other scripting languages (Python, Bash).
Experience with setting up cross-compilation toolchains and development environments for embedded Linux systems.
Experience in developing customer-facing APIs for communication protocol integration.
Experience in developing low-level code for the control of hardware subsystems.
Experience working hands-on with electronics and hardware.
Experience with Simulink software development is a plus.
Ability to break down complex problems into smaller, manageable sub-tasks.
Experience with source control methodologies and tools (Git).
Familiarity with defect tracking systems (Jira).
Familiarity with agile development processes.
Strong follow-through and self-starting nature.
Excellent written and verbal communication skills.
Ability to effectively collaborate with a team to solve problems and participate in code reviews.
Ability to work well in a fast-paced environment and meet deadlines.
Willingness to travel (10-15% of time).
Benefits:
Competitive salary and benefits package
Opportunity to work on cutting-edge technology
Be a part of a mission-driven company making a positive impact on the environment