jobapplier

Senior Software Engineer

Cognex

Skills

Required

  • software development
  • software engineering
  • object-oriented design
  • software architecture
  • design patterns
  • data structures
  • algorithms
  • Embedded application and systems-level software development
  • C++
  • Desktop application development
  • C#
  • .NET
  • user interface technologies
  • source control systems
  • code reviews

Preferred

  • Embedded
  • Linux
  • OS/System programming
  • Yocto
  • WPF / WinForms / Windows application development
  • Python / JavaScript / TypeScript
  • machine vision
  • image processing
  • CMake / Docker / cross-platform software development environments

You will be part of the In-Sight Products development team, building the next generation of machine learning and machine vision sensors and user interfaces across embedded Linux and Windows platforms.

Responsibilities

  • You will contribute to the successful delivery of customer-facing features and technologies through active participation in product development activities, collaboration with global engineering teams, and application of software engineering best practices.
  • We are working on a hybrid schedule, 3 days in the office, 2 at home.
  • Areas of Responsibility Design, implement, test, and maintain software components across the product stack.
  • Develop high-quality, maintainable software solutions.
  • Estimate, plan, and deliver complex functionality within Agile/Scrum teams.
  • Collaborate with cross-functional teams to deliver customer-facing solutions.
  • Participate in and contribute to design and code reviews.
  • Resolve complex product and customer issues.
  • Contribute to automated testing, CI, and quality improvement initiatives.
  • Reduce technical debt and improve long-term maintainability.
  • Share knowledge and provide technical guidance when appropriate.
  • Effectively leverages AI-assisted development tools to accelerate software design, implementation, testing, and debugging activities.
  • Demonstrates strong engineering judgment when validating AI-generated output and selecting appropriate solutions to complex technical problems.

Requirements

  • Objective Requirements Related to the Position Minimum 5 years of professional software development experience delivering commercial software products.
  • Strong software engineering fundamentals, including object-oriented design, software architecture, design patterns, data structures, and algorithms.
  • Experience developing software in a full-stack product environment, with deep technical expertise in one or more of the following areas: Embedded application and systems-level software development (C++); or Desktop application development (C#, .NET), and user interface technologies.
  • Ability and willingness to work across different layers of the software stack as product and business needs evolve.
  • Experience developing complex software systems in a collaborative team environment.
  • Experience with source control systems, code reviews, automated testing, and Agile software development practices.
  • Strong debugging, analytical, and problem-solving skills.
  • Strong written and verbal communication skills in English, with the ability to collaborate effectively across teams and locations.

Preferred

  • BSc or MSc in Computer Science or Electrical Engineering.
  • Experience with Embedded Linux OS/System programming (Yocto) Experience with C++ Experience with C#, .NET, WPF, WinForms, or Windows application development.
  • Experience with Python, JavaScript, or TypeScript.
  • Familiarity with machine vision, image processing, industrial automation, robotics, or related technologies.
  • Experience with CI/CD pipelines and modern software development tools.
  • Familiarity with CMake, Docker, or cross-platform software development environments.
  • Experience working with globally distributed software development teams.
  • Additional Job Description