Introduction
Firmware is the software that integrates and interacts directly with hardware to control its operation, and may exist anywhere in a computing system from the central computing complex to management consoles, power supplies, and I/O adapters. This role specializes in understanding the capabilities of hardware, firmware, Operating System and application interface layers, and uses the knowledge to deliver and functional components to ensure end users can leverage all of a hardware system's capabilities.
As a Firmware Developer at IBM, you will design, develop, test and deliver systems that enable hardware to function specifically driving the quantum revolution and the AI era. You will be joining an elite team of engineering professionals who enable IBM customers to make better decisions quicker on the most trusted hardware platform in today's market.
Want more jobs like this?
Get Software Engineering jobs delivered to your inbox every week.
Your Role and Responsibilities
Firmware may exist anywhere in a computing system from the central computing complex to management consoles, power supplies, and I/O adapters within IBM mainframes. Some firmware teams include:
- Development of the hardware management console web interface and mobile app (Java)
- Development for the world's highest security cryptographic processors (C, C++, Java)
- Development and support of I/O adapters (networking and storage) and Secure Service Containers used to support applications using blockchain technology. (C)
- Server virtualization and a Parallel Sysplex environment so that mainframes can communicate as a single entity. (Assembler)
- Implementation of complex z/Architecture instructions, concurrent and recovery functions (Assembler)
Our engineers apply agile methodologies throughout the entire development cycle, from design, code implementation/review, unit testing, functional testing, simulation, and real hardware integration testing. Some areas use a Unix/Linux based Operating System focusing on embedded programming, communication protocols, host application software support, and user-interfaces. Interface and code designs are done primarily to communicate with different hardware components via various hardware protocols such as PCIe.Ideal candidates will possess demonstrated software design skills, understanding of front-end, back-end technologies or embedded systems. Team-based experience in software development, agile methodologies, and the ability to perform software performance analysis, debugging and test.
This is an officer based position with start dates in 2025.
Locations include:
- Rochester, MN
- Austin, TX
- Houston, TX
Required Technical and Professional Expertise
- Passion to pursue career path in Computer Engineering or Computer Science
- Fundamental education in software design and/or test
- Computer Architecture
- Knowledge of programming languages: C, C++, Java, Assembly
- Scripting knowledge: Python, JavaScript, Perl, Bash, etc
- Strong Communication Skills
Preferred Technical and Professional Expertise
- Development knowledge of Unix/Linux kernel functionality
- Knowledge of LAN drivers
- FPGA experience
- Experience in embedded systems development
- Knowledge of web and mobile application development
- Tools (Git/GitHub, IntelliJ, etc.)