Embedded Software Engineer
Job Description
This role focuses on the architecture, design, development, integration, verification, and sustainment of complex embedded software solutions for advanced electro-optical, infrared, imaging, display, and sensor-based systems. The Embedded Software Engineer acts as a technical leader, owning significant software subsystems from concept through deployment while guiding junior and mid-level engineers. The position supports mission-critical military and defense applications involving cameras, displays, embedded processors, real-time operating systems, and system-on-chip technologies. This is a hands-on role suited for an engineer with strong Embedded C/C++ skills, experience with FreeRTOS or Embedded Linux, and familiarity with AMD/Xilinx processing platforms who can lead development efforts in a highly technical environment.
Responsibilities
- Lead the design, development, integration, testing, and sustainment of complex embedded software components and subsystems.
- Own software architecture, key design decisions, implementation strategies, and technical execution for assigned products, features, or subsystems.
- Develop embedded software for AMD/Xilinx Zynq UltraScale+ MPSoC, MicroBlaze, and other SoC-based processor platforms.
- Design and implement software for Bare Metal, FreeRTOS, and Embedded Linux/Ubuntu environments.
- Develop and debug low-level drivers, middleware, communication protocols, and application-level software.
- Integrate embedded software with FPGA, hardware, sensor, display, and imaging subsystems.
- Lead hardware/software integration activities, including board bring-up, system-level debugging, and root-cause analysis.
- Develop and troubleshoot communication interfaces such as I2C, SPI, UART, RS-232, GPIO, Ethernet, TCP/IP, and lwIP Ethernet stacks.
- Support camera, display, image processing, electro-optical/infrared, and sensor-based embedded systems.
- Create and maintain software requirements, architecture documentation, design specifications, verification plans, and test procedures.
- Conduct code reviews and provide technical mentorship and guidance to junior and mid-level embedded software engineers.
- Collaborate closely with systems, hardware, FPGA, verification, manufacturing, and program management teams to meet technical, schedule, and quality objectives.
- Support technical planning activities, including risk identification, effort estimation, and schedule development.
- Participate in technical reviews, design reviews, customer demonstrations, and cross-functional engineering discussions.
- Utilize development and collaboration tools such as GitLab, Jira, Confluence, AMD Vitis, Linux, and Ubuntu to support software development and team coordination.
Essential Skills
- 5+ years of professional embedded software development experience.
- Strong hands-on programming experience in C and C++, with an emphasis on Embedded C++ development.
- Experience developing embedded software in one or more environments, including FreeRTOS, Embedded Linux, Ubuntu, and Bare Metal systems.
- Experience developing software for modern embedded processor or SoC platforms.
- Experience with AMD/Xilinx Zynq UltraScale+ MPSoC, MicroBlaze, or similar embedded processing architectures.
- Experience using AMD Vitis or similar embedded software development and debugging tools.
- Experience developing and debugging low-level drivers and hardware interfaces, including I2C, SPI, UART, RS-232, GPIO, and Ethernet.
- Strong understanding of TCP/IP networking fundamentals and embedded communication protocols.
- Experience with hardware/software integration, board bring-up, system-level debugging, and lab-based troubleshooting.
- Familiarity with software development tools and processes, including GitLab, Jira, Confluence, and software configuration management.
- Strong troubleshooting, analytical, communication, and technical leadership skills.
- Ability to work fully onsite in Melbourne, FL.
- U.S. citizenship.
- Bachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, Software Engineering, or a related technical discipline.
Additional Skills & Qualifications
- Experience supporting electro-optical/infrared imaging systems, cameras, displays, video processing, or image processing applications.
- Experience with military, defense, aerospace, or other mission-critical embedded systems.
- Hands-on experience with FreeRTOS in production embedded environments.
- Experience with Ethernet stack development, including lwIP, TCP/IP, and embedded networking proto