DescriptionThe Sonix team is seeking an experienced software engineer who will be responsible for designing our next generation of acoustic microscope software and exploring cutting-edge software technologies to keep pace with the demands of our broad customer base.
Responsibilities include, but are not limited to, design and implementation of new software systems from proof of concept to production release and will include all aspects of software design. The successful candidate will be expected to use a wide degree of creativity to develop innovative designs and develop proof of concepts to solve challenging software problems.
In addition to software development the software engineer will be responsible for assisting our global service team with sustaining engineering activities to troubleshoot and resolve issues that occur in the field.
The software engineer will work closely with multiple teams including both internal and external partners.
Position will provide the opportunity for both domestic and international travel to visit vendors and customers to collaborate on designing and building next generation solutions and gathering valuable feedback.
Essential Functions:
- Active member of the software team
- Maintain and develop next generation software platform to support Sonix systems, integrating image acquisition, machine control, image processing, image analysis, network integration and reporting
- Collaborate with peers from within the software team and across the company and participate in brainstorming, design discussions and research into the best approaches to tackle a diverse array of software projects that incorporate both software and hardware components
- Communicate with customers and Sonix representatives to gather project requirements
- Use knowledge and experience to provide accurate time estimates required for completing assigned tasks
- Implement software solutions using C# and.NET and maintain high quality standards for the code base by following established software standards
- Provide remote support for global service team and customers
- Ability to quickly diagnose and resolve software issues in current and legacy products installed at customer sites.
- Provide guidance and training to customers and Sonix representatives.
- Occasional onsite support and installation visits to domestic and international customers.
- Actively testing different aspects of the application for quality assurance
- Ability to use systems to test software solutions and run customer applications to verify software is meeting customer expectations in terms of functionality, performance and robustness.
Education and Experience Required:
- BS in computer science or computer engineering
- High aptitude in designing algorithms for solving complex tasks.
- Excellent problem solving and analytical skills.
- Skilled in software development with a strong knowledge of C# and .NET
- Advanced software engineering concepts. (Threading, Multiprocessing, Advanced Data Structures)
- Proficient with Microsoft Visual Studio, SVN, Jira or equivalent software tools
- Experience with software design best practices, design patterns, coding standards
- Strong commitment to quality, attention to detail, and proven ability to meet deadlines.
- Good written and oral communication skills
- Interpersonal skills and team oriented
- Ability and desire to travel internationally (1-3 international trips a year, approx.. duration 1 week each)
- Experience in semiconductor industry protocols a strong plus
- Experience interacting with hardware, robots, motion control systems or equivalent mechatronic systems a strong plus
- Experience with image processing and / or image analysis a strong plus