Principal SW Engineer

Cohu Inc

  • San Diego, CA
  • 3 days ago

    Highlights

    Design and develop proprietary Windows desktop application and framework software for control machines, automation systems, and complex electro-mechanical platforms - including motion controllers, I/O systems, sensors, machine vision systems, robotics, and barcode readers. Hardware/software integration experience (MCU/SoC peripherals, serial buses, timing/latency considerations) and familiarity with common interfaces (RS-232/RS-485, USB, Ethernet, TCP/IP, CAN, I2C, SPI).

    Numbers & Facts

    LocationSan Diego, CA

    Description

    Cohu is a global supplier of semiconductor test and automation equipment. In this role you will build and sustain software that controls complex electro-mechanical test handlers used in high-volume semiconductor manufacturing.

    Position Summary

    Design and develop proprietary Windows desktop application and framework software for control machines, automation systems, and complex electro-mechanical platforms - including motion controllers, I/O systems, sensors, machine vision systems, robotics, and barcode readers. This role spans full lifecycle development-from architecture and design through integration, deployment, and customer support-focused on uptime, safety, and predictable behavior.

    This position is ideal for engineers who enjoy building large software systems that interact with sophisticated industrial equipment.

    Essential Functions / Responsibilities

    • Design, develop, test, and integrate machine control software using C++ and C# in a Visual Studio environment.
    • Develop automation software using object-oriented design principles and software design patterns.
    • Integrate motion controllers, I/O systems, machine vision, robotics, sensors, barcode readers, and other industrial devices through vendor-provided Windows APIs and SDKs.
    • Drive system architecture, interface definitions, and software design reviews; establish patterns that scale across product variants.
    • Own customer escalation response: troubleshoot issues using logs, instrumentation, and on-equipment debugging; deliver corrective actions and prevention plans.
    • Partner with Manufacturing and Field Service to resolve production-line and installed-base issues, restore system uptime, and improve reliability.
    • Build verification strategies that push failure detection upstream (simulation, automated system tests, regression suites) and reduce re-occurrence.
    • Interface with customers and cross-functional teams (EE/ME/Test/Apps) to align requirements, integration plans, and release readiness.
    • Mentor engineers through code reviews, design feedback, and technical coaching.

    Required Qualifications

    • Bachelor's or Master's degree in Computer Engineering, Software Engineering, Computer Science, Electrical Engineering, or a related field.
    • 15+ years of professional software engineering experience, including substantial work on automation, machine control, or complex electro-mechanical systems.
    • Expert C/C++ skills with object-oriented design (OOD) and design patterns; ability to write maintainable, testable, production-quality code.
    • Strong experience developing on Windows desktop applications using Visual Studio; familiarity with C# for tooling, diagnostics, or UI is preferred.
    • Experience developing multithreaded software and event-driven software.
    • Experience integrating external hardware using Windows APIs, SDKs, or communication libraries.
    • Proficiency with version control and collaborative development workflows (Git preferred): code reviews, branching strategies, and disciplined change management.
    • Demonstrated ability to troubleshoot and resolve field issues, including root-cause analysis and implementing corrective/preventive actions.
    • Strong written and verbal communication skills; comfortable presenting designs and status to technical and non-technical stakeholders.

    Relevant Domain Experience (Any of the Following)

    • Semiconductor equipment, test handlers, ATE integration, or factory automation environments.

    • Comparable experience in industrial automation, robotics, medical devices, or high-volume product engineering with electro-mechanical systems.

    • Preferred / Additional Skills (Highly Beneficial for Test Handler Software)

    • State machine development, event-driven software architecture, machine sequencing, hardware integration through vendor API, motion control APIs, machine vision integration.

    • Hardware/software integration experience (MCU/SoC peripherals, serial buses, timing/latency considerations) and familiarity with common interfaces (RS-232/RS-485, USB, Ethernet, TCP/IP, CAN, I2C, SPI).

    • UI development experience for operator/service tools (WPF, WinForms, or Qt); ability to build effective diagnostics and recovery workflows.

    • Build and release tooling: CI/CD pipelines (e.g., Jenkins), automated test execution, packaging/deployment, and traceable release documentation.

    • Experience with factory/equipment communication standards such as SECS/GEM and related SEMI standards (e.g., E5/E30/E37/HSMS) and/or equipment performance tracking.

    • Experience with simulation or hardware abstraction techniques that enable development and testing before hardware availability.

    • Scripting and data analysis for troubleshooting (e.g., Python) and familiarity with issue tracking (e.g., Jira).

    • Understanding of machine safety concepts: interlocks, e-stops, safe-state design, and failure modes; exposure to functional safety standards (e.g., ISO 13849) is a plus.

    What Success Looks Like

    • You deliver reliable software that maintains throughput and uptime in production environments.
    • You design scalable software architectures used across multiple products.
    • You reduce escalation frequency by improving diagnosability and recovery behavior.
    • You improve development velocity through pragmatic architecture, automation, and strong engineering hygiene.
    • You mentor engineers and elevate software engineering standards across the organization.
    • You collaborate effectively across disciplines and communicate trade-offs clearly

    Job Conditions / Additional Information

    Occasional domestic and international travel may be required (approximately 10%).

    Work involves extended periods at a computer workstation and may include time in manufacturing areas or at customer sites when supporting escalations.

    Similar Jobs

    See more jobs