Logo
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