Principal Software Engineer
We're looking for a Principal Software Engineer who wants to stay deeply involved in the software that powers Cognex machine vision systems used across global manufacturing, logistics, and industrial automation. Having built applications in.NET, C++, and Python over the years, the team has recently added Rust.
You'll join a team developing software that will run inside smart cameras on factory floors and distribution centers around the world. You'll enjoy shipping meaningful features, solving complex technical problems, and improving a long-lived production platform. You'll remain deeply hands-on with software deployed on our smart camera devices in customer environments, working as part of a small, 10-person team that collaborates with engineering teams around the world, primarily in the US. This isn't embedded firmware development, but it calls for the same mindset: valuing reliability, performance, and thoughtful use of resources over typical cloud-native trade-offs.
Responsibilities
- Design, develop, and support production software using.NET and Python, with occasional Angular work and growing use of Rust (including an existing Rust library consumed by C++ products) as part of a growing ecosystem
- Translate ambiguous requirements into clear designs, leading them through implementation, testing, and release as reliable features
- Investigate and resolve complex technical issues across a mature platform
- Make pragmatic technical decisions accounting for product, system, and cross-team dependencies
- Enhance engineering practices, code quality, documentation, testability, system stability, and operational confidence
- Contribute through code reviews, documentation, and clear technical communication
- Collaborate with local and global engineering teams to align dependencies and deliver cohesive solutions
Required Skills
- 5+ years of software engineering experience delivering multi-release production systems
- Strong.NET, OOP Python, Java, or comparable experience, with adaptability for new languages
- Experience with production software deployed on physical device hardware (not purely cloud-native or Kubernetes-based)
- Comfortable working in Linux environments
- Strong analytical, debugging, troubleshooting, and communication skills
Working Knowledge
- Experience with backend systems and frontend frameworks (Angular, React, Vue, etc.)
- Resource-conscious design for constrained or operational environments
- Understanding of memory, performance, and reliability (no firmware/embedded required)
What You Can Learn in the Role
- Cognex products and the industrial automation domain
- Angular specifically
- Rust and its role in our longer-term platform direction
Ways of Working
- Auckland-based hybrid (3 days office, 2 WFH)
- Close collaboration with US engineering, with occasional early starts
- Requires scheduling flexibility to support global customers
- Occasional on-call support (~1 week in 6), not a core duty