- Contract
- Anywhere
We are seeking an experienced Senior Software Engineer to lead the development of a greenfield high-level application for our next-generation industrial automation and robotics platform. You’ll play a key role in designing and implementing a modern, performant, and reliable desktop application from the ground up – leveraging C++, WPF, XAML, and the .NET framework.
In this role, you’ll collaborate closely with cross-functional teams including hardware, firmware, and systems engineers to deliver intuitive user interfaces and robust control software. You’ll also contribute to the team’s overall software quality by implementing unit tests and best practices in software design and architecture.
Responsibilities
- Lead the design and development of a new high-level desktop application using C++, .NET, WPF, and XAML.
- Collaborate with UX/UI designers and automation engineers to create user-friendly and responsive interfaces.
- Architect, implement, and maintain software components with a focus on scalability, maintainability, and performance.
- Write and maintain unit tests and contribute to continuous integration and automated testing pipelines.
- Participate in design and code reviews to ensure high-quality, reliable, and maintainable software.
- Work closely with other engineering teams to integrate application software with hardware and control systems.
- Mentor junior developers and contribute to technical decision-making within the team.
Qualifications
Required:
- Bachelor’s or Master’s degree in Computer Science, Software Engineering, or a related field.
- 5+ years of professional software development experience.
- Strong proficiency in C++, .NET (C#), WPF, and XAML.
- Solid understanding of software design principles, object-oriented programming, and design patterns.
- Experience with version control systems (e.g., Git) and modern development workflows.
- Hands-on experience writing unit tests and working with testing frameworks.
Preferred:
- Experience in industrial automation, robotics, or machine control environments.
- Familiarity with real-time systems, communication protocols, or embedded software integration.
- Knowledge of MVVM architecture and UI performance optimization techniques.
- Strong problem-solving skills and the ability to work independently on complex technical challenges.
