Senior Embedded Engineer
Role details
Job location
Tech stack
Job description
We are looking for a Senior Software Engineer to develop embedded and systems software for high-performance hardware platforms, including MCUs, server motherboards, and network-connected systems. This role focuses on firmware, Linux-based software, data transfer paths, high-speed networking, diagnostics, cybersecurity compliance, and hardware/software integration., * Design, develop, test, and maintain embedded and systems software in C, C++, and Python.
- Develop and debug data transfer paths across embedded controllers, Linux systems, storage, and network interfaces.
- Work with high-speed networking technologies, including 100GbE, Ethernet PHY configuration, link bring-up, diagnostics, and performance tuning.
- Support filesystem and network transfer workflows, including Linux networking stack behavior, storage I/O, throughput analysis, and protocol-level debugging.
- Develop firmware and software for MCU-based systems, server motherboard platforms, and board-level hardware.
- Support board bring-up, hardware validation, manufacturing test, production debug, and system diagnostics.
- Debug hardware/software issues using oscilloscopes, logic analyzers, JTAG/SWD debuggers, serial consoles, packet captures, and Linux performance tools.
- Work with interfaces such as I2C, SPI, UART, GPIO, Ethernet, PCIe, USB, and management interfaces.
- Contribute to secure software development practices, including static code analysis, vulnerability remediation, secure configuration, and compliance support.
- Collaborate with hardware, firmware, networking, validation, cybersecurity, manufacturing, and software teams., The ideal candidate is a hands-on embedded and systems software engineer who can work across firmware, Linux, networking, storage, and hardware. They should be able to debug high-speed data paths, reason about filesystem and network transfer behavior, and contribute to secure, compliant software for production hardware platforms.
This position is located at a facility that requires all selected candidates to be U.S. Citizens or lawful permanent residents (green card holders). ITI Engineering is an Equal Opportunity Employer and conducts pre-employment background checks and E-Verify employment authorization verification as part of the hiring process.
Requirements
- 5+ years of software engineering experience, with strong embedded, systems, or firmware development experience.
- Strong C/C++ and Python skills.
- Experience developing on Linux-based systems, including debugging, scripting, networking, storage, and system-level behavior.
- Experience with Ethernet networking, PHY configuration, link diagnostics, packet-level debugging, or high-speed data transfer paths.
- Knowledge of filesystem behavior, network transfer protocols, and Linux networking stack fundamentals.
- Hands-on MCU programming experience; NXP MCU experience is a plus.
- Experience with embedded protocols such as I2C, SPI, UART, GPIO, and PCIe.
- Experience using lab and debug tools such as oscilloscopes, logic analyzers, hardware debuggers, serial consoles, packet analyzers, and Linux tracing/performance tools.
- Familiarity with secure development practices, static code analysis, vulnerability management, and cybersecurity compliance expectations.
- Ability to read datasheets, reference manuals, schematics, protocol specifications, and hardware design documents.
- Strong debugging skills across firmware, software, networking, storage, and hardware boundaries.
Preferred Qualifications
- Experience with RTOS environments such as FreeRTOS, VxWorks, or similar.
- Experience with PCIe-based systems, including endpoint/root complex interactions, enumeration, BAR configuration, DMA, link training, error handling, throughput tuning, and debugging with protocol analyzers or Linux PCIe tools.
- Experience with 100GbE networking, Ethernet PHY programming, MAC/PHY integration, link training, auto-negotiation, SerDes, PCS/PMA layers, or high-speed signal diagnostics.
- Experience with Linux network stack tuning, TCP/IP, UDP, RDMA, NFS, SMB, SFTP, HTTPS, rsync, or other network transfer protocols.
- Experience with filesystems, block devices, RAID, NVMe, storage performance, buffering, caching, or data integrity mechanisms.
- Experience with cybersecurity frameworks and compliance requirements such as FIPS, STIGs, secure boot, signed firmware, SBOMs, CVE remediation, or hardening guides.
- Experience using static analysis and security tools such as Coverity, clang-tidy, cppcheck, CodeQL, SonarQube, Snyk, or similar.
- Experience with server motherboard architecture, BMCs, platform management, BIOS/UEFI, power sequencing, thermal control, or system health monitoring.
- FPGA-adjacent development experience, including register maps, hardware/software interfaces, DMA paths, or FPGA-based platforms.
- Embedded Linux experience, including device trees, kernel modules, Yocto, Buildroot, U-Boot, or driver development.
- Manufacturing test, board diagnostics, firmware update, or field recovery experience.
- Full-stack development experience with TypeScript, React, Express.js, or Node.js.
Benefits & conditions
- Competitive pay.
- 100% paid medical, dental and vision coverage for you and your dependents as of date of hire.
- 100% paid employee basic life insurance, short-term and long-term disability
- Quarterly company contributions to a Healthcare Savings Account
- Opportunity to participate in the 401k and company matching
- A 4/10 schedule, Fridays off
- Paid Holidays, Sick and Vacation Time