Embedded Software Engineer III
We are dedicated to delivering high-quality products and services that enhance the efficiency and sustainability of our clients' operations. Our proven portfolio of software, services, and intelligent technology is key to driving advancements across various industries. Join us as we lead the way toward a more sustainable and efficient technological landscape.
Job Summary: The Embedded Software Engineer develops and maintains firmware for our advanced technology products. This role handles complex R&D hardware, firmware, and software projects as part of a cross-functional team. The engineer will collaborate with Product Management, Project Management, and other R&D teams in the design, development, and validation of complete solutions, working closely with SMEs and business partners on component and system design.
Key Responsibilities:
- Design, develop, document, and test I/O communications and device drivers.
- Contribute to the development of product design specifications, including functional requirements, use cases, detailed design, interface, and test plans.
- Participate in design verification testing processes and procedures.
- Engage in component and/or solution design, development, documentation, and validation.
- Work on agile development teams, collaborating with multiple cross-discipline architecture teams to develop hardware and software components.
- Participate in recruitment, development, and mentoring of junior engineers.
- Lead and contribute to area-specific continuous improvement initiatives.
- Innovate technology and solutions development and/or validation.
- Assist with planning and support of field installations during Alpha and Beta phases.
- Contribute to design and code reviews.
- Participate in product and system-level test efforts.
- Design to industry-standard interfaces where required.
Knowledge, Skills, and Abilities:
- Proficiency in programming C, C++, and Assembly languages (C# is a plus).
- Experience in firmware development for embedded systems.
- Experience with real-time operating systems.
- Skilled in the use of development and debugging tools in embedded systems.
- Exposure to Product Life Cycle and Software Development methodologies.
- Familiarity with interfacing to serial ports, A/D and D/A converters, RAM/Flash memories, and other digital electronics.
- Experience with RF networks, security encryption, and packet-based networks is desirable.
- Knowledge of protocol stacks such as Zigbee (802.15.4), IP, and/or C12.22 is a plus.
- Proficiency with development processes, tools, and related frameworks.
- Proficiency with relevant development and/or validation methodologies.
- Deep knowledge of industry-specific systems and solutions.
- Personal computer knowledge and familiarity with Microsoft Office Suite.
- Strong keyboard/typing skills.
- Effective verbal and written communication skills.
- Ability to understand and improve the code/feature base, migrate it to modern frameworks, and add missing tests.
- Ability to design well-organized code and testing methodologies.
- Ability to independently complete and validate medium to large features.
- Ability to effectively use data to solve problems and support ideas.