job summary: 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 environmentsCollaborate 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 robustnessCreate and maintain scripts for automation, testing, and pipeline efficiency (e.g., Python, Bash)Conduct system integration and functional validation across embedded subsystemsDevelop and validate communication pathways across heterogeneous processors, enabling seamless coordination via serial buses (SPI, I2C, UART) and Ethernet-based protocolsBring up low-level networking stacks, including MAC/PHY configuration, IP addressing, and device discovery in multi-node embedded networksConfigure and troubleshoot interconnects between SoCs, microcontrollers, and custom ASICs, enabling parallel and synchronized execution across the computer gridAuthor diagnostic and test utilities to validate inter-device communication under edge cases and stress conditionParticipate in schematic reviews, code walkthroughs, and signal integrity assessmentsContribute to traceability artifacts and documentation supporting audits, compliance, and release cyclesOperate 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 developmentStrong understanding of systems engineering principles and lifecycle developmentHands-on experience with ARM architecture, integration, and low-level bring-upProficiency in Embedded C and exposure to OOP methodologies (e.g., C++, Python)Familiarity with scripting languages used for deployment, testing, or toolingAbility to work effectively within an Agile Scrum framework skills: Exposure to RTOS environments, bootloader development, and bare-metal applicationsDeep understanding of Linux-based embedded systems, including kernel tailoring, device tree configuration, and custom driver supportExperience with bootloaders (e.g., U-Boot), hypervisor technologies, and multi-core scheduling strategiesProven capability with Yocto Project workflows and custom Linux builds for embedded platformsFamiliarity with digital communication protocols (SPI, UART, I2C, PCIe)Proficiency with version control systems (Git, SVN) and CI/CD pipelinesExperience 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 JenkinsExperience architecting multi-processor systems and debugging interconnect protocolsFamiliarity with Ethernet bring-up, network boot sequences, and embedded TCP/IP stacksUnderstanding of switch fabric, routing protocols, or custom message-passing frameworks in embedded Linux environmentsHands-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.