Principal Software Engineer
Job Description
We are looking for a Principal Software Engineer to join our team in Girona, Spain.
In this role, you will work closely with a small, experienced engineering team developing our 3D smart camera solutions, including developing the acquisition interface, but also the graphical user interfaces for configuring the device and also designing and visualizing inspection tasks. The team is also responsible for the 3D visualization technology used across Cognex's 3D product portfolio.
You will contribute to the design and development of a common platform that will support future Cognex products. As a key technical contributor, you will have the opportunity to influence design decisions, propose innovative solutions and play an important role in shaping the future of our technology.
At Cognex, we live by our core values: Work Hard, Play Hard and Move Fast.
Your Responsibilities:
- Design and implement software solutions to program 3D smart cameras (both frontend and backend C/C++ native code libraries).
- Develop C/C++ on embedded systems such as ARM.
- Design and implement software to integrate new 3D sensors and cameras into the Cognex In-Sight platform.
- Act as a key technical contributor to the design and evolution of shared 3D visualization libraries and platform components.
- Participate in the design of the new common platform technology for future Cognex products.
- Evolve our 3D visualization library used across multiple Cognex 3D products, developing new features and components.
- Implement new software features and automated tests to ensure code quality and reliability.
- Review product requirements, provide development estimates and contribute technical feedback.
- Follow established software development processes and identify opportunities for improvement.
- Participate in team planning, design discussions and reviews.
- Contribute to technical design decisions, evaluate alternative approaches and propose improvements to existing solutions.
- Share your expertise and help shape the team's technical growth through mentoring, knowledge sharing and promoting best practices.
Your Background:
- 10+ years of experience in software development.
- B.Sc. in Computer Science, Telecommunications Engineering or equivalent.
- Strong C++ programming skills.
- Solid understanding of operating system concepts.
- Strong experience designing and developing embedded software in C++, including for processor architectures such as ARM. Experience with machine vision or image processing is a plus.
- Knowledge of additional languages and technologies, such as C#, OpenGL and JavaScript, is valued.
- Strong communication, presentation, organizational and interpersonal skills.
- Fluent in English, with the ability to collaborate effectively with engineers across different locations.
- Knowledge of Catalan is a plus, as is a willingness to learn the language.
Working Arrangement:
Hybrid position based in Girona, with three days onsite and two days working from home
.