Responsibilties:
- Responsible for creating scalable and sustainable software architecture, design, and implementation to guide the development team and collaborating with other professionals to determine functional and non-functional requirements for systems and applications.
- Lead software development projects and provides software design support and guidance on development of new and existing products, evaluates, reviews, and supports customer, sales, and production design requests.
- Develop and implement product specifications.
- Document all aspects of the system or application.
- Identify solutions to new application opportunities.
- Identify designs to support new product enhancements.
- Support design maintenance projects such as: product quality, continuous improvement, and obsolescence (integration with new HW platforms, CPUs, Operating systems, etc.).
- Train engineering staff in support of optimizing the operation and application of new and existing products.
- Provide technical assistance/support, dealing with software design.
- Provide sales training on all new and/or existing products, when assigned.
- Provide applications support in diagnosing and recommending solutions to field application issues and/or field environmental issues for newly launched products.
- Ensure that software design documentation is completed, communicated and properly recorded as per standards
- Provides technical support to all Engineering staff and Managers.
Qualifications:
- Bachelor’s degree in computer science or related Engineering field from an accredited university, required.
- 8 to 10 years of software development experience using various languages such as C++ (C++11 or C++17), C, Python, Java. C++ and C are required.
- Minimum of 4 years of experience as a Software Architect or similar role.
- GPU programming experience is required.
- Work with software frameworks, for example – QT, and/or experience with developing own framework.
- Strong understanding and familiarity with JSON and XML.
- Experience designing and developing user interfaces.
- Knowledgeable or experience with embedded software design, Linux, real-time operating systems, network protocols and industrial communication protocols MODBUS, PROFINET and PROFIBUS.
- Work collaboratively with cross-functional teams and management to collect requirements, identify tasks, provide estimates and meet deadlines.
Apply Now