ZipRecruiter
Principal Software Engineer, BSP
ZipRecruiter, Aliso Viejo, California, United States, 92656
Job DescriptionJob DescriptionDescription:
RxSight® is an ophthalmic medical technology corporation headquartered in Aliso Viejo, California that has commercialized the world’s first and only adjustable intraocular lens (IOL) that is customized after cataract surgery. The company’s mission is to revolutionize the premium cataract surgery experience by allowing surgeons to partner with their patients to achieve optimized results for every unique eye.
OVERVIEW:
The Principal Embedded Software Engineer is responsible for contributing to the design, development, testing, and lifecycle support of medical device software for the RxSight Light Delivery Device (complex opto-electro-mechanical system with embedded software) and related technologies. The Principal Engineer assumes the role of the subject matter expert for embedded software applications including control systems, and integration of various subsystems such as user interface. The engineer will actively collaborate with other teams, departments and consultants as necessary to fulfill the software development and testing needs of the company.
Requirements:
ESSENTIAL DUTIES AND RESPONSIBILITIES:
Design and implement software for embedded devices and systems from requirements to production and commercial deployment with software functionality including GUI, controlling software, algorithms, and integration with subsystems.
Participates in all phases of the software development life cycle including concept, requirements, design, implementation, testing, and maintenance.
Plans, leads, and executes efforts to architect, design, develop, maintain, upgrade, port, and verify/qualify Hardware Abstraction Layer (HAL) code, Board Support Package (BSP) code, OTA update code and methods (including implementation of encryption and cybersecurity schemes), and embedded product software and/or product support software to enhance, implement and support LDD functionality.
Knowledge and understanding of OOD and OOP methodology, full SDLC processes and software unit testing
Ensures regulatory compliance of the development process and the commercialized product.
Support all necessary development, extensions, and modifications of the code base throughout the software development lifecycle.
Collaborate with other functions including but limited to Engineering, Quality, Customer Support (Clinical and Technical Services).
Strong documentation and writing skills
Acts as a technical leader to mentor and grow the software engineering team
REQUIRED KNOWLEDGE, SKILLS AND ABILITIES:
Expertise in embedded, real-time applications
Capable of software design and coding with a focus on testability, robustness, and performance, or a demonstration of the ability to quickly learn any missing elements.
Proficiency in developing the software on multiple platforms (embedded and desktop) using C# and C++ and other programming
Working knowledge of and experience with ARM Processors, 8051 Microcontrollers as well as other embedded architectures and interfaces including SPI, I2C
Proficient in software development lifecycle, design controls, and unit test
Experience with USB, or serial protocols, Bluetooth, is a plus
SUPERVISORY RESPONSIBILITIES:
N/A
EDUCATION, EXPERIENCE, and TRAINING:
Bachelor’s or Master’s degree in a technical field and more than 6 years related experience and/or training; or equivalent combination of education and experience, including
HAL/BSP development for embedded ARM processors
Real-time embedded software development and/or testing
Experience integrating or testing software on bare metal and with various real-time operating systems such as FreeRTOS and Linux/Unix derivatives
Developing and troubleshooting communications, device drivers, and I/O interfaces (including displays and camera interfaces)
Experience in requirements analysis, software design, implementation (code and unit test) and authoring of formal deliverable documentation
Experience developing and deploying OS and firmware updates and software under the Qt development environment
Use of hardware diagnostic tools such as oscilloscopes, DMMs, packet sniffers, etc. to aid with troubleshooting and refining software
Training to be completed per the training plan for this position as maintained in the document control system.
CERTIFICATES, LICENSES, REGISTRATIONS:
N/A
COMPUTER SKILLS:
FreeRTOS
Embedded Linux/Unix
Boot to Qt applications development for Nvidia JetsonTx2 and QML
MFC or C# .Net framework application development
Object-oriented software architecture, software design, C/C++/C#/Python
RxSight® is an ophthalmic medical technology corporation headquartered in Aliso Viejo, California that has commercialized the world’s first and only adjustable intraocular lens (IOL) that is customized after cataract surgery. The company’s mission is to revolutionize the premium cataract surgery experience by allowing surgeons to partner with their patients to achieve optimized results for every unique eye.
OVERVIEW:
The Principal Embedded Software Engineer is responsible for contributing to the design, development, testing, and lifecycle support of medical device software for the RxSight Light Delivery Device (complex opto-electro-mechanical system with embedded software) and related technologies. The Principal Engineer assumes the role of the subject matter expert for embedded software applications including control systems, and integration of various subsystems such as user interface. The engineer will actively collaborate with other teams, departments and consultants as necessary to fulfill the software development and testing needs of the company.
Requirements:
ESSENTIAL DUTIES AND RESPONSIBILITIES:
Design and implement software for embedded devices and systems from requirements to production and commercial deployment with software functionality including GUI, controlling software, algorithms, and integration with subsystems.
Participates in all phases of the software development life cycle including concept, requirements, design, implementation, testing, and maintenance.
Plans, leads, and executes efforts to architect, design, develop, maintain, upgrade, port, and verify/qualify Hardware Abstraction Layer (HAL) code, Board Support Package (BSP) code, OTA update code and methods (including implementation of encryption and cybersecurity schemes), and embedded product software and/or product support software to enhance, implement and support LDD functionality.
Knowledge and understanding of OOD and OOP methodology, full SDLC processes and software unit testing
Ensures regulatory compliance of the development process and the commercialized product.
Support all necessary development, extensions, and modifications of the code base throughout the software development lifecycle.
Collaborate with other functions including but limited to Engineering, Quality, Customer Support (Clinical and Technical Services).
Strong documentation and writing skills
Acts as a technical leader to mentor and grow the software engineering team
REQUIRED KNOWLEDGE, SKILLS AND ABILITIES:
Expertise in embedded, real-time applications
Capable of software design and coding with a focus on testability, robustness, and performance, or a demonstration of the ability to quickly learn any missing elements.
Proficiency in developing the software on multiple platforms (embedded and desktop) using C# and C++ and other programming
Working knowledge of and experience with ARM Processors, 8051 Microcontrollers as well as other embedded architectures and interfaces including SPI, I2C
Proficient in software development lifecycle, design controls, and unit test
Experience with USB, or serial protocols, Bluetooth, is a plus
SUPERVISORY RESPONSIBILITIES:
N/A
EDUCATION, EXPERIENCE, and TRAINING:
Bachelor’s or Master’s degree in a technical field and more than 6 years related experience and/or training; or equivalent combination of education and experience, including
HAL/BSP development for embedded ARM processors
Real-time embedded software development and/or testing
Experience integrating or testing software on bare metal and with various real-time operating systems such as FreeRTOS and Linux/Unix derivatives
Developing and troubleshooting communications, device drivers, and I/O interfaces (including displays and camera interfaces)
Experience in requirements analysis, software design, implementation (code and unit test) and authoring of formal deliverable documentation
Experience developing and deploying OS and firmware updates and software under the Qt development environment
Use of hardware diagnostic tools such as oscilloscopes, DMMs, packet sniffers, etc. to aid with troubleshooting and refining software
Training to be completed per the training plan for this position as maintained in the document control system.
CERTIFICATES, LICENSES, REGISTRATIONS:
N/A
COMPUTER SKILLS:
FreeRTOS
Embedded Linux/Unix
Boot to Qt applications development for Nvidia JetsonTx2 and QML
MFC or C# .Net framework application development
Object-oriented software architecture, software design, C/C++/C#/Python