Design, develop, debug, test, &/or maintenance firmware efforts within the Engineering department.
Engineering Degree. BSCE (or higher) Preferred, BSCS /BSEE (or higher) with Embedded Design Experience (Acceptable). Minimum five years of engineering experience, with a minimum of 3 years of Electro-mechanical system design experience and embedded Firmware Design Experience in C & C++. Electronic Hardware Design Experience or Device Driver Development Background. Ability to independently develop various algorithms. Familiarity with various communication protocols (SPI, UART, USB), various processors, inter process communication protocols. Skills in Structured design, Design Documentation, Debugging Techniques, Microsoft Office / Windows, Ability to communicate effectively in English. Knowledge of hardware design, debug, microprocessors, Real Time Operating Systems preferred. Nice to have: Experience with developing Linux and Windows device drivers, experience configuring automated build systems such as Atlassian Pipelines.
Nature and Scope
- The incumbent reports to the Engineering Manager - Firmware.
- The incumbent usually works with minimum supervision, conferring with superior on unusual matters. Assignments are broad in nature, requiring originality & ingenuity. Has appreciable latitude for un-reviewed action or decision.
- The incumbent generates source code for various “C/C++" based functions, routines, tasks, modules, device drivers, or algorithms.
- This position has numerous challenges tied to it. The incumbent is constantly working on product performance and reliability issues to ensure that all Transact products are of the highest quality.
- Participates in the generation of product software, engineering design documents, and test plans.
- Develops maintainable, thread-safe, embedded software functions, routines, tasks, modules, device drivers, and algorithms in C/C++ for 32-bit MCUs.
- Verifies embedded software through unit testing, including static and dynamic testing, and peer code reviews.
- Performs software design verification and validation activities to ensure designs meet specifications.
- Supports existing software tool infrastructure: JIRA, BitBucket, and GIT.
- Capable of understanding detailed technical datasheets and documents.
- Assists in product development, system bring-up, and integrated system testing activities.
- Refactors legacy code to introduce new features while improving reliability and maintainability.
- Adheres to established departmental coding & engineering standards, procedures, and guidelines
- Participates and contributes to teams involved in continuous improvement of departmental standards, development guidelines, and procedures.
- Introduction of new design ideas & methodologies.
- Performs other duties as assigned.