Rockwell is looking for an all-rounder Software Engineering Technical Lead to join an agile team building the next generation of analytics for Industrial Automation. We are looking for someone who is well versed in Agile practices, is customer focused, has experience meeting the demands of enterprise customers, and has practical expertise in analytics. Experience in the industrial sector is a huge plus.
The Software Engineering Technical Lead is responsible for the development and maintenance of innovative, cutting edge analytics and process control application products for manufacturing industry. The scope of applications range in nature from diagnostic and predictive to closed-loop control.
The ideal candidate is passionate about reading existing codebase to understand current architecture, open to learning new technology stack, highly organized, action-oriented with hands on experience in building an end-to-end complex Java application with strong expertise in algorithms, optimization, data structures, rich desktop GUI, parsers, socket and web technology. The candidate has a good understanding of application architecture and is flexible to work on various areas of application installer, GUI, web front-end, middleware, back-end, and cloud.
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.
Contributes to 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.
Work with subject matter experts to understand existing source code and architecture. Document and establish best ways to debug a complex code base that is a mix of C, C++, and Java.
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.
Thinks outside the box and is willing to research and explore new avenues to overcome obstacles by utilizing the latest technologies and standards. May function as a go-to person for a technology, software methodology, or other area of expertise.
Takes the lead on identifying and recommending software development capability improvements in the areas of software development practices and development tools.
Clearly communicates and conveys design concepts, both verbally and in writing.
Able to learn and understand complex control system concepts.
Mentor senior and junior software engineers on best design practices and code reviews.
Collaborate with geographically distributed teams.
Use Agile software development principles to iteratively deliver value to our customers.
Bachelor's degree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent
Legal authorization to work in the US is required. We will not sponsor individuals for employment visas, now or in the future, for this job opening.
Typically requires a minimum of 8 -10 years of experience in a software product development environment
Must have C, C++, and Java programing experience.
Minimum of 8 years hands-on Java application development experience using OOP, algorithms, and data structures.
Minimum of 5+ years hands-on C/C++ application development experience, especially writing system level algorithms, optimization, and data structures.
Expert experience in writing and integrating C/C++ code into Java using JNI.
Strong object-oriented design skills, coupled with good knowledge of data structures and algorithms.
Demonstrated experience using Spring framework to create REST API based containerized and distributed modules.
Demonstrated experience using at least one full-stack frameworks e.g., Spring MVC, Spring Boot or GWT
Strong expertise in application protocol design using JSON.
Self-starter, not afraid to jump inside legacy source code to study and understand existing architecture and implementations.
Experience managing source code using GIT or SVN.
Excellent problem-solving skills and written and oral communication skills.
Ability to coordinate tasks with remote development teams.
Experience using tools like JIRA, Confluence, Bamboo.
Nice to have qualifications:
Familiarity with computational systems, especially analytics and or machine learning is a plus
Familiarity with parser generators, especially in Java (Antlr or JavaCC), especially applied to expression evaluation and language interpreters is a plus.
Familiarity using analytics tools like MATLAB and R is a plus
Experience in Analytical Numerical Methods (e.g. Statistics, Partial Differential Equations/Ordinary Differential Equations, Matrix) is a plus
Academic and/or recent experience in using or implementing libraries for Linear System Theory (e.g. Laplace and Z transforms, State-space formulations, Parametric estimation) is a plus
Academic and/or recent experience in using or implementing libraries for Control Systems (e.g. PID, Feedback Compensation, Stability Criteria) is a plus.
Experience in Machine Learning basic architectures (MLP, Classifiers), supervised and unsupervised learning, gradient based and clustering algorithms, and data pre-conditioning and normalization.
*This position is part of a job family. Experience will be the determining factor.
We are an Equal Opportunity Employer including disability and veterans.
If you are an individual with a disability and you need assistance or a reasonable accommodation during the application process, please contact our services team at +1 (844) 404-7427.
Internal Number: R21-4244
About Rockwell Automation
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.
You join a diverse, inclusive and global community with a passion for innovation. A place where you can partner with great minds and inspiring people. And a corporation backed by the financial strength that drives growth – and career opportunities.
As much as we focus on our customers, 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.