Job Description
Company Overview
Rockwell Automation, the world's largest company dedicated to industrial automation, makes its customers more productive and the world more sustainable. Throughout the world, our flagship Allen-Bradley® and Rockwell Software® product brands are recognized for innovation and excellence. When you choose Rockwell Automation, you join countless talented employees who have helped us establish our leadership position in the automation industry over the past century.
When you join Rockwell Automation you become part of a diverse, inclusive and global community with a passion for innovation and a place where you can partner with great minds and inspiring people.
We know our employees are key to our success and future. Helping you develop a rewarding career is a top priority because when you succeed, we succeed.
Job Description
As a Software Engineer for Rockwell Automation, you will have the opportunity to design and develop industry-leading commercial software known for its innovation and usability. You will also be responsible for performing intermediate level software testing tasks including, but not limited to, test development, planning, scheduling, and execution.
In this position, you will be a key player in subsystem design, implementation, and testing. You will play an active role in all the stages of the development lifecycle and support your team throughout the process. You will also help ensure that developed products meet requirements and are within total quality management standards. This position will allow you to collaborate with multiple global cross-functional teams and may also require you to be the technical lead of a small-scale feature or portion of a feature.
When you join our software engineering group, you become part of a team that believes in knowledge sharing and collaboration and that is committed to using reliable and well-thought-out engineering practices and technology to overcome any challenges.
We are looking for someone who will effectively leverage a diverse set of technical backgrounds and opinions by fostering a team-oriented environment and the use of open and direct communications, honesty and respect. The ideal candidate will also actively seek knowledge of new developments in the software engineering, computer engineering, and test automation fields and will identify and pursue career development and training opportunities.
Essential Functions
- Collects, contributes to and documents requirements for a feature and its components, ensuring the information required for the development of software and corresponding test cases are contained in the specifications.
- Develops new subsystem designs or contributes to existing ones ensuring they meet the established requirements.
- Establishes a timeline and determines the resources needed to execute a design. Considers tradeoffs between requirements, speed, cost and reliability in the choice of a design approach. Provides progress reports, as needed.
- Implements and documents code that meets the requirements of the software design, develops and executes thorough unit test plans.
- Reports, analyzes, debugs and corrects anomalies, determines the origin and root cause of anomalies identified.
- Takes the lead in the integration of other components by solving problems within and across subsystems to produce a final product.
- Leads or participates in reviews of documents, designs, code, test cases and user documentation.
- Responsible for the maintenance and integrity of one or more software subsystems.
- Builds relationships and interacts with peers to ensure assigned tasks are prioritized appropriately.
- Takes the lead on identifying and recommending software development capability improvements in the areas of software development practices, development tools, and test automation.
- Thinks outside the box and is willing to research and explore new avenues to overcome obstacles by utilizing the latest technologies and standards.
- Clearly communicates and conveys design concepts, both verbally and in writing.
- Able to learn and understand complex control system concepts.
Minimum Qualifications
- Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent
- Typically requires a minimum of two years of experience in a software product development environment
Desired Qualifications
- Direct experience with developing web-based applications using C#/.NET Core and Angular
- Direct experience with Agile software development process
- Good understanding of object-oriented design principles and common design patterns
- Basic knowledge or experience with micro service architecture and cloud technologies
- Proven application of data structures and algorithms
- Able to apply basic knowledge of software test methodologies
- Able to apply basic knowledge of testing distributed software products
- Direct experience with the Industrial Automation industry
- Direct experience collaborating with local and global technical development teams
- Excellent interpersonal, verbal and written communication skills