Embedded Software Engineer
Job Title: Embedded Software Engineer
Who we are
Syncroness provides inspired solutions to highly complex business and technical problems. We focus on accelerating time-to-market and ensuring a profitable outcome for our clients.
By providing a full complement of engineering services aligned to the entire product lifecycle, Syncroness enables companies to accelerate product development and drive more predictability and productivity into their businesses. Working with Syncroness, companies gain the critical insights necessary to develop products that make a difference and create a better world.
We provide proven value and predictable results in demanding and regulated markets by employing our core competencies in:
- Project management
- Product and System Engineering
- Core Engineering disciplines
- Knowledge integration
- NPD and Sustaining Engineering
What we are looking for The Firmware Engineering Department is looking for a contract employee to augment the team for a series of projects that will span the next several years. This individual will work as part of a team of more than ten full-time and contract employees developing embedded application software across multiple microcontrollers. While there are times that driver development and PCBA microcontroller bring-up activities occur, this position is truly intended for an individual interested in helping design and implement an embedded real-time software application, coordinating instrument workflow and data sharing in a multi-subassembly environment.
Essential Duties and Responsibilities include the following. Other duties may be assigned. To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
- Contribute hands-on contribution component concept, design, development, and support activities.
- Coordinate, with the other technical disciplines, integration activities of complex electro-mechanical instruments.
- Develop functional and design requirements for new system functionalities and features and ensure that all designs are properly documented.
- Participate in technical design and code reviews.
- Collaborate and produce technical output as part of a team of ten or more Embedded Software and Firmware engineers.
- Follow best practices in engineering design, utilizing Embedded Software and Firmware engineering theories, methods and research techniques and client development guidelines.
- Develop, document, and test firmware in C and C++ using classical object-oriented design principles.
- Structure code to aid in the development of automated unit tests as part of a Continuous Integration environment.
- Create appropriate technical documentation, including technical reports and lab notebook unit tests as required.
- Comply with design control guidelines and Quality requirements within the company’s regulated ISO\FDA environment.
- Bachelor of Science degree, preferably in Computer Science or Computer Engineering.
The requirements listed below are representative of the knowledge, skill, and/or ability required.
- Proficient in use of Development & Debug Environments, Source Control Repositories and Code Comparison Tools.
- Proficient in C++, fluent in object-oriented design principles.
- Interest/awareness in embedded systems and concepts (real-time operating systems, motor control, USB, I2C, SPI).
- Working knowledge of Microsoft Office productivity tools – primarily Excel, Word, and Outlook, but also Visio, One-Note, PowerPoint and Project.
- Experience writing software running on microcontrollers controlling complex electromechanical equipment, embedded hardware controls, automation or robotic systems.
- Experience with NXP Kinetis-based or ARM-based microcontrollers.
- Experience with Micrium uC/OS-III real-time operating system and other Micrium stacks.
- Experience with CAN and the CAN-Open protocol.
- Experience with code metric analysis tools (static analysis, SonarQube, etc.).
- Experience with automated unit test development and unit testing frameworks (bonus points for unit testing embedded software applications).
- Experience with automated build environments.
- Experience working in an ISO/FDA regulated environment.
- Experience working in an embedded or real-time Linux environment.
This job description doesn't constitute a contract of employment and Syncroness may exercise its employment-at-will rights at any time.
Syncroness is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, religion, color, national origin, sex, sexual orientation, gender identity, age, status as a protected veteran, among other things, or status as a qualified individual with disability.
syncroness headquarters•10875 dover st westminster, colorado 80021•303.429.5005•www.syncroness.com
This job description doesn't constitute a contract of employment and Syncroness may exercise its employment-at-will rights at any time. Syncroness is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, religion, color, national origin, sex, sexual orientation, gender identity, age, status as a protected veteran, among other things, or status as a qualified individual with disability.