Senior Software Engineer
Job Description
Description
\nCohu 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.
\nPosition Summary
\nDesign and develop proprietary application and framework software for control machines, automation systems, and complex electro-mechanical platforms. This role spans full lifecycle development—from architecture and design through integration, deployment, and customer support—focused on uptime, safety, and deterministic real-time behavior.
\nEssential Functions / Responsibilities
\n- \n
- Design, develop, test, and integrate machine control software using C++ and C# in a Visual Studio environment. \n
- Develop real-time control logic for motion systems (motors, encoders, servo/stepper control), sensors, and digital/analog IO. \n
- Drive system architecture, interface definitions, and software design reviews; establish patterns that scale across product variants. \n
- Own customer escalation response: troubleshoot issues using logs, instrumentation, and on-equipment debugging; deliver corrective actions and prevention plans. \n
- Partner with Manufacturing and Field Service to resolve production-line and installed-base issues, restore system uptime, and improve reliability. \n
- Build verification strategies that push failure detection upstream (simulation, automated system tests, regression suites) and reduce re-occurrence. \n
- Interface with customers and cross-functional teams (EE/ME/Test/Apps) to align requirements, integration plans, and release readiness. \n
- Mentor engineers through code reviews, design feedback, and technical coaching. \n
Required Qualifications
\n- \n
- Bachelor’s or Master’s degree in Computer Engineering, Software Engineering, Computer Science, Electrical Engineering, or a related field. \n
- 10+ years of professional software engineering experience, including substantial work on automation, machine control, or complex electro-mechanical systems. \n
- Expert C/C++ skills with object-oriented design (OOD) and design patterns; ability to write maintainable, testable, production-quality code. \n
- Strong experience developing on Windows using Visual Studio; familiarity with C# for tooling, diagnostics, or UI is preferred. \n
- Hands-on experience with real-time systems, including deterministic sequencing, concurrency, timing constraints, and fault handling. \n
- Proficiency with version control and collaborative development workflows (Git preferred): code reviews, branching strategies, and disciplined change management. \n
- Demonstrated ability to troubleshoot and resolve field issues, including root-cause analysis and implementing corrective/preventive actions. \n
- Strong written and verbal communication skills; comfortable presenting designs and status to technical and non-technical stakeholders. \n
Relevant Domain Experience (Any of the Following)
\n- \n
- Semiconductor equipment, test handlers, ATE integration, or factory automation environments. \n
- Comparable experience in industrial automation, robotics, medical devices, or high-volume product engineering with electro-mechanical systems. \n
Preferred / Additional Skills (Highly Beneficial for Test Handler Software)
\n- \n
- Embedded development experience: RTOS and/or embedded Linux, low-level debugging on target hardware, and interfacing with motion controllers and sensors. \n
- 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). \n
- UI development experience for operator/service tools (WPF, WinForms, or Qt); ability to build effective diagnostics and recovery workflows. \n
- Build and release tooling: CI/CD pipelines (e.g., Jenkins), automated test execution, packaging/deployment, and traceable release documentation. \n
- 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. \n
- Experience with simulation or hardware abstraction techniques that enable development and testing before hardware availability. \n
- Scripting and data analysis for troubleshooting (e.g., Python) and familiarity with issue tracking (e.g., Jira). \n
- 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. \n
What Success Looks Like
\n- \n
- You deliver reliable software that maintains throughput and uptime in production environments. \n
- You reduce escalation frequency by improving diagnosability and recovery behavior. \n
- You improve development velocity through pragmatic architecture, automation, and strong engineering hygiene. \n
- You collaborate effectively across disciplines and communicate trade-offs clearly. \n
Job Conditions / Additional Information
\nOccasional domestic and international travel may be required (approximately 10%).
\nWork involves extended periods at a computer workstation and may include time in manufacturing areas or at customer sites when supporting escalations.
