Exciting opportunity for an experienced Embedded Firmware/Software Engineer to support development efforts across multiple programs, contributing to the design, integration, and deployment of embedded solutions in highly dynamic environments. The ideal candidate will possess a strong understanding of embedded systems, architecture bring-up, and hardware/software co-design for ARM-based platforms.
Daily responsibilities include authoring firmware and embedded code using C/C++ across a range of mission-critical applications, including serial interfaces, Radio Frequency (RF) and video DSP pipelines, controls, data links, and embedded compute. The role involves significant engagement with hardware design-including PCB construction, layout validation, and interface timing analysis-paired with system simulation and algorithm refinement. High-quality documentation and configuration management are critical to ensuring traceability and compliance within a fast-paced, team-centric technical environment.
The role also emphasizes low-level networking and processor communication, requiring candidates to orchestrate multi-chip bring-up across serial buses and Ethernet interfaces. The engineer will be responsible for enabling cohesive subsystem interaction and ensuring data path integrity across distributed architectures.
The successful candidate demonstrates sound engineering judgment, initiative, and adaptability while applying contemporary tools and standards to resolve moderate technical challenges. Comfort operating within multi-disciplinary Agile teams is essential, as is the ability to collaborate effectively, communicate across stakeholder groups, and contribute to scalable, auditable product builds.
Routine collaboration will occur via MS Teams, OneNote, Azure DevOps, Excel, and other productivity tools within the Microsoft Office Suite.
location: Indianapolis, Indiana
job type: Contract
salary: $58 - 62 per hour
work hours: 8am to 5pm
education: Bachelors
responsibilities:
- Design and develop embedded firmware and software for ARM-based platforms and SoC environments
- Collaborate with systems engineers, hardware teams, and stakeholders to translate requirements into scalable architecture.
- Author and optimize code in Embedded C and object-oriented languages (e.g., C++, Python) for production-grade robustness
- Create and maintain scripts for automation, testing, and pipeline efficiency (e.g., Python, Bash)
- Conduct system integration and functional validation across embedded subsystems
- Develop and validate communication pathways across heterogeneous processors, enabling seamless coordination via serial buses (SPI, I2C, UART) and Ethernet-based protocols
- Bring up low-level networking stacks, including MAC/PHY configuration, IP addressing, and device discovery in multi-node embedded networks
- Configure and troubleshoot interconnects between SoCs, microcontrollers, and custom ASICs, enabling parallel and synchronized execution across the computer grid
- Author diagnostic and test utilities to validate inter-device communication under edge cases and stress condition
- Participate in schematic reviews, code walkthroughs, and signal integrity assessments
- Contribute to traceability artifacts and documentation supporting audits, compliance, and release cycles
- Operate as an active member of an Agile Scrum team, participating in sprints, demos, and backlog refinement
qualifications:
- Bachelor's degree in Computer Engineering (or related technical discipline)
- 4-8 years of professional experience in embedded firmware/software development
- Strong understanding of systems engineering principles and lifecycle development
- Hands-on experience with ARM architecture, integration, and low-level bring-up
- Proficiency in Embedded C and exposure to OOP methodologies (e.g., C++, Python)
- Familiarity with scripting languages used for deployment, testing, or tooling
- Ability to work effectively within an Agile Scrum framework
skills:
- Exposure to RTOS environments, bootloader development, and bare-metal applications
- Deep understanding of Linux-based embedded systems, including kernel tailoring, device tree configuration, and custom driver support
- Experience with bootloaders (e.g., U-Boot), hypervisor technologies, and multi-core scheduling strategies
- Proven capability with Yocto Project workflows and custom Linux builds for embedded platforms
- Familiarity with digital communication protocols (SPI, UART, I2C, PCIe)
- Proficiency with version control systems (Git, SVN) and CI/CD pipelines
- Experience working within structured, compliance-driven environments (e.g., DO-178C, ISO 26262, AS9100)
- Comfort collaborating in Agile ceremonies (sprint planning, backlog grooming, retrospectives) and using tooling such as Jira, Confluence, or Jenkins
- Experience architecting multi-processor systems and debugging interconnect protocols
- Familiarity with Ethernet bring-up, network boot sequences, and embedded TCP/IP stacks
- Understanding of switch fabric, routing protocols, or custom message-passing frameworks in embedded Linux environments
- Hands-on experience with network analyzers, bus monitors, and low-level debugging tools (Wireshark, JTAG, etc.)
Equal Opportunity Employer: Race, Color, Religion, Sex, Sexual Orientation, Gender Identity, National Origin, Age, Genetic Information, Disability, Protected Veteran Status, or any other legally protected group status.
At Randstad Digital, we welcome people of all abilities and want to ensure that our hiring and interview process meets the needs of all applicants. If you require a reasonable accommodation to make your application or interview experience a great one, please contact HRsupport@randstadusa.com.
Pay offered to a successful candidate will be based on several factors including the candidate's education, work experience, work location, specific job duties, certifications, etc. In addition, Randstad Digital offers a comprehensive benefits package, including: medical, prescription, dental, vision, AD&D, and life insurance offerings, short-term disability, and a 401K plan (all benefits are based on eligibility).
This posting is open for thirty (30) days.