The Senior Software Engineer participates in the software design activities for motion control features in a PC-based software tool used for configuring automation controllers and attached devices. Work assignments include requirements analysis, design, coding, unit testing, and functional testing of software in an agile development process. This role requires strong communications skills and the ability to work effectively in large project teams.
- Bachelors degree in Computer Science, Electrical Engineering, or Computer Engineering
- At least 5 years of experience in software design and implementation using C++ and object-oriented design methods
- Strong team-oriented interpersonal and communication skills
- Self-motivated and with strong working ethics.
- Solid understanding of software design principles
- Proven proficiency in code quality and performance
- Intellectually curious and detail oriented with outstanding problem-solving skills
- Fluent in English
- Experience with motion control systems and/or industrial automation products and environments
- Experience in collaborating with technical development teams in multiple global locations
- Experience building Windows Desktop applications using Microsoft Visual Studio.
- Experience with COM, MFC, C++ 11, multithreading and .NET technologies (C#, C++/CLI, WPF)
- Experience with GIT.
- Understanding of model design techniques such as UML
- Understanding Agile software development process.
- Understanding continuous integration practice
- Experience with automated testing
- Experience leading project and mentoring less experienced engineers
- Experience with embedded software systems