Software Engineer - Multithreaded Firmware Development (Embedded Linux, C/C++)
Natick, MA 
Posted 6 days ago
Job Description
Job Description

This role will be based in our corporate HQ in Natick, MA on a hybrid schedule - 3 days in the office and 2 remote

The Company:

Cognex isthe largest, most successful and recognized global player in industrial machine vision! Using advanced optics, image sensors and artificial intelligence software, Cognex vision and ID systems capture an image then analyze it to make sense of what's being seen. While Cognex makes cool high-tech products, it is an equally cool company to work for. Our Work Hard, Play Hard, Move Fast culture recognizes our employees for their innovation, perseverance and hard work in a fun and rewarding environment. We are passionate about building and sustaining an inclusive and equitable working environment for all.

The Team:

This position is in the ID Products Fixed Mount team responsible for designing and developing the world's most sophisticated industrial bar code readers. We combine custom hardware, specialized lighting and optics, and world-class vision algorithms to create embedded systems. These systems can find and read extremely challenging high-density symbols marked directly on various industrial parts, including aircraft engines, electronics substrates, and pharmaceutical test equipment. Our devices need to read hundreds of codes per second, so speed-optimized hardware and software work together to create best in class technology.

The Role:

We are seeking a talented, innovative, and hands-on Senior Software Engineer who has a passion for software development and the desire to tackle complex, challenging problems.
As a Senior System Software Engineer, you will extend, refactor, and improve the software of the world's most sophisticated bar code readers. You will focus primarily on C/C++ firmware development for embedded devices running on GNU/Linux.

Essential Functions:

  • Implement high-level application functionality for Cognex DataMan products

  • Debug and troubleshoot in a hardware and software environment on heterogeneous multi-core systems

  • Ensure a robust and high-quality product

  • Collaborate with key stakeholders and internal engineering teams

  • Provide product and application expertise for strategic customers, including replicating and debugging customer issues

Knowledge, Skills, and Abilities:


  • Strong firmware development skills in C for multithreaded applications, C++ code, and OOP

  • Collaboration experience in professional software development projects (processes, source code control, quality assurance, formal bug tracking)

  • Interest in or work experience with Embedded Linux / kernel development, networking, wireless communications, and sensors

  • Self-motivated, eager to learn, and able to work within teams as well as independently

  • Good presentation, communication, organizational and interpersonal skills

Minimum education and Work experience required:

  • Engineering degree in computer science, electrical engineering or related field

  • 3 years of experience

Additional Job Description

Equal Employment Opportunity

Cognex is an equal opportunity employer. Cognex evaluates qualified applicants without regard to race, color, religion, gender, national origin, age, sexual orientation, gender identity or expression, protected veteran status, disability/handicap status or any other legally protected characteristic.


Job Summary
Start Date
As soon as possible
Employment Term and Type
Regular, Full Time
Required Experience
3+ years
Email this Job to Yourself or a Friend
Indicates required fields