Work collaboratively as a member of an Embedded Software Engineering team to perform diverse work tasks in software development for embedded systems. This development may involve Programmable Automation, Visualization, Communications, I/O systems or Industrial Automation Software. This will include modern embedded operating systems applied to custom in-house hardware.
Responsibilities typically include:
Design, develop, troubleshoot and debug software programs for software enhancements or new products. Determine hardware compatibility and/or influence of hardware design.
Utilize wide-ranging experience of area of specialization; resolves wide range of issues in creative ways and effective ways.
Lead or participate in creation of or reviews of; documents, designs, code, test cases and user documentation.
Perform unit or functional testing of developed software to ensure correct operation per functional requirements and compatibility with other components in the system.
Contribute to software development capability by keeping abreast of current trends in the areas of software development practices, technology utilization and development tools.
Frequently interact with peers and customers to gain cooperation of others or conduct presentations of technical information/project activities. Establish operational objectives and work plans. Network with senior internal/external personnel in own area of expertise.
Strong accountability to assignments, keeping in mind the guiding principles; Customer Focus, Sense of Urgency, Performance to schedule and Quality.
Minimum of a completed Bachelor of Science Degree in Electrical Engineering, Computer Engineering or similar Engineering discipline with a concentration in software.
Minimum of 5 years of relevant work experience.
Proven development experience with embedded systems involving software operating systems and digital hardware.
Programming and development experience involving C and C++ is required.
Proficiency in English language, both written and spoken.
Programming and development experience with multiple contemporary embedded operating systems is desired, such as; Microsoft Windows 10 kernel and driver development, Windows CE and embedded Linux (experience involving Linux kernel development, the Yocto Project/OpenEmbedded environment, Linux filesystems, Linux security hardening, and package management).
Experience with the use of tools such as In-Circuit Emulators, Logic Analyzers, embedded monitors, Build tools (gcc, make, cmake, bitbake) and other such development tools.
Board Support Package (BSP) development level experience with Intel x86 technologies and interfaces such as SPI, I2C, PCI/PCIe.
DevOps experience, understanding of Jenkins and containers, Git source control proficiency, standard scripting languages (Python, Powershell, Bash, etc).
Experience with Bootloader, PC-BIOS, ACPI, and UEFI development.
Experience with Agile software development methodology.
Advanced courses in engineering or computer science would be beneficial. Course work covering software requirements analysis, software design, software engineering and software testing is desired.
Internal Number: R21-4197
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.