Senior Software Engineer
Rockwell Automation
- Singapore
- Permanent
- Full-time
- 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 estimates 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.
- Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent
- Typically requires a minimum of five years of experience in a software product development environment
- Direct experience with developing software applications using C#/.NET
- General knowledge of parser/compiler design and familiar with tools such as antlr and yacc
- 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