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 basic software testing tasks including, but not limited to, test development, planning, scheduling, and execution. In this position, you will be highly involved in subsystem design, implementation, and testing, working very closely with the support of our senior engineers. 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. 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. **What you will do** - Independently gathers 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. - Participates in architectural design and independently develops system designs that meet the requirements. Provides estimates for the design. Considers tradeoffs between requirements, speed, cost and reliability in the choice of a design approach. - 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. Takes the lead in the integration of other components by solving problems within and across subsystems to produce a final product. Responsibilities may extend to the technical management of the design, testing and integration of other engineers’ work in related areas. - Leads or participates in reviews of documents, designs, code, test cases and user documentation. - Typically responsible for the ongoing maintenance and integrity of several software subsystems. - Builds relationships and interacts with peers to ensure assigned tasks are prioritized appropriately. **Minimal qualifications** - Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent - At least 5 years of experience in a software product development environment. **Preferred qualifications**: - Experience in large, scalable distributed systems and/or SaaS solutions - Software development on Cloud and Mobile platforms - Object orientated design using C++, C#, or **Java** - Proficiency in TypeScript, Node.js, **Angular** framework, GraphQL - One or more of the following - High availability, performance and scalability, micro services, SOA, modern database architectures, highly automated test systems, rapid prototyping, demonstrable experience of taking concept to product, Web technologies, security, data communication, and contemporary user interface technologies