> Markdown version of [/jobs/ext/1316299-software-engineer](https://www.wearedevelopers.com/jobs/ext/1316299-software-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Software Engineer - **Company:** Cohu, Inc. - **Location:** San Diego, CA, United States - **Experience:** Expert - **Contract:** Permanent contract - **Skills:** Microsoft Windows, Data Analysis, JIRA, Automation of Tests, C Sharp (Programming Language), C++ (Programming Language), Code Review, Encodings, Computer Engineering, Software Debugging, Software Design Patterns, Linux on Embedded Systems, Embedded Software, Ethernet, Design of User Interfaces, Issue Tracking Systems, Python (Programming Language), Uptime, Microsoft Visual Studio, Windows Presentation Foundation, Object-Oriented Software Development, Qt (Software), Real-Time Operating Systems, Release Management, RS-232, Software Engineering, Systems Integration, TCP/IP, USB, Windows Forms, Scripting, Real Time Systems, Concurrency, Git, Git Flow, Information Technology, Low Latency, Production Code, Software Version Control, Jenkins - **Published:** July 17, 2026 - **Apply:** https://www.dice.com/job-detail/ad442bdf-fbfb-4363-908f-85cb9a280edd ## About the Role * Bachelor's or Master's degree in Computer Engineering, Software Engineering, Computer Science, Electrical Engineering, or a related field. * 10+ 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 using Visual Studio; familiarity with C# for tooling, diagnostics, or UI is preferred. * Hands-on experience with real-time systems, including deterministic sequencing, concurrency, timing constraints, and fault handling. * 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) * Embedded development experience: RTOS and/or embedded Linux, low-level debugging on target hardware, and interfacing with motion controllers and sensors. * 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. ## Description Design 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., * Design, develop, test, and integrate machine control software using C++ and C# in a Visual Studio environment. * Develop real-time control logic for motion systems (motors, encoders, servo/stepper control), sensors, and digital/analog IO. * 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., * You deliver reliable software that maintains throughput and uptime in production environments. * You reduce escalation frequency by improving diagnosability and recovery behavior. * You improve development velocity through pragmatic architecture, automation, and strong engineering hygiene. * You collaborate effectively across disciplines and communicate trade-offs clearly. ## Related Videos - [More efficient software for more efficient microchips](https://www.wearedevelopers.com/videos/1164-more-efficient-software-for-more-efficient-microchips) - [Collaboration Quantified: Lessons from Open Source Developer Networks](https://www.wearedevelopers.com/videos/1422-collaboration-quantified-lessons-from-open-source-developer-networks) - [How a Small Team Shrank a Microsoft Monorepo by 94%](https://www.wearedevelopers.com/videos/1236-how-a-small-team-shrank-a-microsoft-monorepo-by-94) - [Prototyping with Hardware and the Web](https://www.wearedevelopers.com/videos/651-prototyping-with-hardware-and-the-web) - [Remote Driving on Plant Grounds with State-of-the-Art Cloud Technologies](https://www.wearedevelopers.com/videos/251-remote-driving-on-plant-grounds-with-state-of-the-art-cloud-technologies) - [Integrate your Cognitive Assistant with 3rd-party DBs and software](https://www.wearedevelopers.com/videos/249-integrate-your-cognitive-assistant-with-3rd-party-dbs-and-software) ## Related Articles - [What is Software Engineering?](https://www.wearedevelopers.com/magazine/289-what-is-software-engineering) - [Is Software Engineering Hard?](https://www.wearedevelopers.com/magazine/448-is-software-engineering-hard) - [Top Characteristics of a Software Engineer](https://www.wearedevelopers.com/magazine/166-top-characteristics-of-a-software-engineer) - [Is Software Engineering Over-Saturated?](https://www.wearedevelopers.com/magazine/418-is-software-engineering-over-saturated) - [Software Engineer Career: Things You Should Know](https://www.wearedevelopers.com/magazine/143-software-engineer-career-things-you-should-know) - [The 8 Best Code Testing Tools](https://www.wearedevelopers.com/magazine/402-the-8-best-code-testing-tools)