Software Engineer (Londonderry, NH)
EFI · Manchester, NH · 1 mo ago
EngineeringFull-time
About the role
EFI™ is seeking an R&D Software Engineer to join our software and hardware development team in Londonderry, New Hampshire. This position reports to the local R&D product leader with a dotted line to the Sr. Director of Software Development in Spain.
Responsibilities
- Collaborate with R&D teams and international partners to gather, clarify, and document requirements, and to define specifications for new software applications.
- Design, implement, and maintain application and systems code in modern C++ and C#, with Python for tooling, test scaffolding, and build/development workflows.
- Own and enhance existing components of our printer software codebase, spanning current and legacy platforms.
- Integrate software with printer control systems, cameras, and other hardware in collaboration with electronics, controls, and mechanical engineering teams.
- Diagnose and resolve field-reported issues across multiple printer platforms, working from logs, remote debugging, and direct customer/service-team collaboration.
- Participate in code reviews, contribute to team coding practices, and support software quality assurance activities including test planning.
- Maintain and improve the shared development environment (Docker-based build and remote-development workflows) used by local and international teams.
Requirements
- Degree in Computer Science, Software Engineering, Computer Engineering, or a related field.
- 10+ years of relevant software development experience.
- Strong proficiency in modern C++ (C++11 or later); working proficiency in C#.
- Familiarity with at least one scripting language (Python preferred; Lua an asset).
- Development experience on Linux (Ubuntu or Mint) and Windows, with a working understanding of networking fundamentals.
- Familiarity with Git-based workflows, code review practices, and containerized development (Docker).
- Strong analytical, problem-solving, and troubleshooting skills, including comfort diagnosing issues from logs and remote systems.
- Strong written and verbal communication skills in English, with the ability to work independently and collaborate effectively with international teams across time zones.
Qualifications
- Experience with industrial printing systems (UV digital printing or comparable technologies) or familiarity with EFI or competitors' printers.
- Experience with digital image processing and pipelined image-processing architectures.
- Experience with multi-threaded / concurrent C++ development.
- Experience with machine vision, camera integration, or computer vision libraries (e.g., OpenCV).
- Familiarity with motion control interfaces, PLCs, or industrial protocols such as Modbus and POWERLINK.
- Working knowledge of hardware systems and electronics.
- Experience maintaining and modernizing large, long-lived C++ codebases across platforms.
- Experience with database programming (SQL).
- Familiarity with color science, colorimetry, or printer color management.