Redbock logo

Redbock

Senior Embedded Software Engineer

Redbock

📍 Lafayette, CO, United States 🇺🇸

full-time
senior
Posted —

Key Skills

C++PythonLinuxFPGARTOS

Industry

Medical DevicesSemiconductor

Job Description

Principal Software Engineer (12+ months // Lafayette, CO):

Description:

Design & Architecture of medical device systems:

  • Lead the design, implementation, and optimization of embedded software architectures for high-reliability medical device platforms.
  • Define scalable software designs for real-time, resource-constrained embedded systems, balancing performance, maintainability, safety, and reliability.
  • Optimize algorithms and system-level behavior for memory, CPU, latency, and deterministic real-time processing constraints.
  • Apply strong debugging, troubleshooting, profiling, and root-cause analysis skills using target hardware, emulators, analyzers, and embedded development environments.
  • Work with microcontrollers, DSP processors, FPGA interfaces, embedded Linux, RTOS-based systems, device drivers, and hardware/software integration points.
  • Guide technical decisions in Agile development environments and promote engineering practices that improve quality, predictability, and execution rigor.
  • Use languages and tools including C, C++, Python, Git, GitHub, Bitbucket, Bash, and GNU toolchains.

Developing Embedded Medical Device Software

  • Design, implement, test, and maintain embedded software for medical devices in compliance with applicable quality system procedures and standards including IEC 62304, ISO 13485, and ISO 14971.
  • Own software design approaches and technical roadmaps across medical device products, platforms, and reusable embedded software components.
  • Optimize solutions for reliability, fault tolerance, efficiency, cybersecurity, privacy, and overall system performance.
  • Translate product, system, and risk-control requirements into robust embedded software designs and implementation plans.
  • Troubleshoot and resolve complex technical issues across hardware, firmware, operating system, application, and interface boundaries.
  • Create and maintain design documentation, traceability, test evidence, and development artifacts throughout the product lifecycle.
  • Commit to achieving project milestones while maintaining technical quality, compliance, and patient safety expectations.
  • Perform duties in compliance with the Quality System and applicable medical device regulations.

Video Expertise

  • Experience with embedded graphics, video pipelines, or display standards such as HDMI, SDI, or DisplayPort
  • Experience with embedded graphics stacks (framebuffer, DRM/KMS, Wayland/Qt, OpenGL ES)
  • Strong understanding of video pipeline architecture: capture → processing → encoding → display
  • Familiarity with hardware-accelerated video pipelines (GPU/VPU/DSP-based)
  • Development of device drivers for video interfaces (HDMI, MIPI CSI/DSI, DisplayPort)
  • Experience with Linux kernel subsystems: DRM/KMS or V4L2 (Video for Linux)
  • Integration of camera sensors, display controllers, and video processing IP
  • Experience working with SoCs (NVIDIA Jetson, Qualcomm, NXP i.MX, TI, etc.)
  • Exposure to FPGA or custom hardware pipelines for video processing
  • Understanding of data paths (DMA, memory bandwidth constraints, zero-copy buffers)
  • Debugging video issues using oscilloscopes, logic analyzers, or protocol analyzers


Duties:

Embedded Software Implementation responsibilities:

  • Develop high-performance, production-quality C and C++ software for embedded medical device systems.
  • Implement and optimize product features that improve system performance, reliability, serviceability, and clinical workflow execution.
  • Collaborate with systems, electrical, mechanical, verification, quality, regulatory, cybersecurity, and clinical stakeholders to deliver safe and effective medical device software.
  • Analyze and optimize computation, data flow, and timing behavior to achieve deterministic real-time performance on embedded platforms.
  • Create clear design documentation, code documentation, and development records that support verification, validation, maintenance, and future product updates.

Additional Responsibilities

  • Evaluate software change requests, defect reports, technical risks, and product impacts for medical devices and supporting tools.
  • Lead major software features, technical workstreams, and cross-functional problem-solving efforts from concept through release.
  • Mentor engineers, review designs and code, and help establish best practices for embedded software engineering excellence.
  • Participate in change control boards, design reviews, risk reviews, technical reviews, and project planning discussions.
  • Communicate technical decisions, tradeoffs, risks, and dependencies clearly to cross-functional stakeholders and leadership.
  • Support continuous improvement of development processes, build and integration practices, and defect prevention methods.


Must Haves:

  • Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or related technical discipline.
  • 7+ years of professional experience developing embedded software using C and C++.
  • Demonstrated experience delivering software for real-time or resource-constrained embedded systems.
  • Strong object-oriented analysis and design skills, with comprehensive knowledge of embedded software development best practices.
  • Experience with embedded Linux, RTOS concepts, device interfaces, hardware/software integration, debugging, and root-cause analysis.
  • Experience using Python for automation, tooling, testing, or data analysis.


Nice to Haves:

  • Hands-on experience developing software under FDA-regulated design controls and standards including ISO 13485, IEC 62304, and ISO 14971.
  • Experience with Xilinx toolchains, FPGA integration, DSP processing, or heterogeneous compute platforms.
  • Experience with Git, GitHub, Bitbucket, Bash, GNU tools, CI/CD pipelines, static analysis, automated testing, or software build systems.
  • Experience with cybersecurity, secure boot, software update mechanisms, vulnerability management, or secure software development practices.
  • Experience with DSP hardware and software tools.
  • Experience in agile development methodologies.