About The Position

The Biophotonics software team develops software for prototypes and platforms supporting Apple’s research and development efforts, spanning embedded firmware, full-stack applications, and cloud-based data processing. The Embedded Software Engineer will help design and execute embedded platform architecture and system software development, working with experts from varied backgrounds to identify requirements and implement critical features. The engineer will collaborate with software engineers and the wider engineering team to design and develop software that enables research and development. The role includes contributing to software architecture, creating development plans, translating feature requests into reusable software, and delivering new and existing embedded applications. Work involves balancing tasks with short and long timelines, including embedded-platform automation and control, data acquisition and management, and software support tools and associated services.

Requirements

  • Bachelor of Science degree and a minimum of 10 years of relevant industry experience.
  • Software development experience in an industrial setting.
  • Development experience in at least one of these programming languages: C, C++, Python, Java, Go, Rust, Scala, or Swift.

Nice To Haves

  • Bachelor's degree in Computer Science, Computer Science Engineering, a combination of Electrical Engineering and Computer Science, or an equivalent field.
  • 10 or more years of experience across the software development lifecycle, including requirements gathering, design, development, deployment, and maintenance.
  • Hands-on experience using debugging tools such as gdb, lldb, oscilloscopes, and logic analyzers.
  • Experience with board bring-up and interpreting and navigating schematics and layouts.
  • Ability to drive projects related to application development (such as data acquisition, system control, automation, and UI), system software and firmware, device drivers, and general compute infrastructure.
  • Strong software engineering skills in software design, development in object-oriented or concurrent programming languages, and debugging.
  • Familiarity with programming languages and their toolchains, including IDEs and dependency management, and with ecosystems such as frameworks and best practices across a variety of operating systems.
  • Skill with software support tools, including the Unix command line, shell scripting, and version control software.
  • Ability to digest and use new technology quickly and strategically.
  • A consistent track record of making progress amid ambiguity.
  • Strong communication skills and experience working on cross-functional projects.

Responsibilities

  • Contribute to software architecture definitions.
  • Create development plans.
  • Translate application feature requests into reusable software.
  • Execute plans for new and existing embedded applications.
  • Work with software engineers and the wider engineering team to develop solutions supporting research and development.
  • Develop software for automation and control of embedded platforms.
  • Develop data acquisition and management capabilities.
  • Develop software support tools and associated services.
  • Collaborate with experts from diverse backgrounds to identify requirements and implement critical features.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service