Sr. User Interface Engineer
The Senior User Interface (UI) Software Engineer will be responsible for specifying and developing novel UI software to control a medical device that uses high-voltage nanosecond pulses as treatment. The position will be part of the Research and Development team with responsibility for a wide variety of tasks. The successful candidate will work from requirements and develop, test, and document User Interfaces, encompassing embedded system GUIs and other UI modalities, such as audible prompts, handpiece indicators, pushbuttons, etc. This is a critical role in an early-stage startup environment with a small R&D team. The ideal candidate will have a strong background in UI software design, development, test methodologies using Qt/QML on QNX, Linux, Unix-like operating systems. Experience with medical device quality systems and design control will be a big plus. He or she will engage on any and every issue necessary to ship products to customers of the highest quality and reliability.
ESSENTIAL DUTIES AND RESPONSIBILITIES:
- Design, development and integration of the Graphical User Interface (GUI) using Qt and QML for medical device.
- Assist in development of detailed software specifications and provide accurate time estimates for the software development.
- Design, develop, implement, test, and debug real time, multi-threaded, multiprocessing software applications and associated User Interfaces.
- Expand knowledge of product domain, requirements, design, development, test and release software processes, tools, methods and coding best practices. A primary emphasis on taking technical ownership of multiple system components that are UI related.
- Product software sustaining development and enhance existing software products as necessary.
- Contribute to software requirements definition and creation of Software Specifications and Software Design and Architecture Descriptions.
- Participate in cross-functional team efforts in definition, integration, verification, and validation of products and sub-systems of moderate complexity.
- Identify the root causes of issues in complex software or systems using appropriate debug and analysis tools.
- Timely escalation and documentation of technical software issues to project leadership.
- Exhibit a great attitude as a team player who excels in a demanding start-up environment.
- Understand the company’s Quality Policy and Quality System requirements.
- Comply with company policies/procedures.
EDUCATION/EXPERIENCE and QUALIFICATIONS:
To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. The requirements listed below are representative of the knowledge, skill, and/or ability required.
- 5+ years developing UI Software using Qt and QML for complex UIs.
- Master’s degree in computer science, software engineering, or a related field and 5+ years of experience.
- Bachelor’s degree in software engineering, or a related field and 7+ years of experience.
- Extensive experience developing secure networked user-facing applications using C/C++/STL on Unix-like (POSIX-compliant) operating systems.
- Working knowledge of Unix-like (POSIX-compliant) OSs, especially RTOSs.
- Experience with the QNX RTOS a big plus.
- Familiarity with version control (Git, TFS, Bitbucket, etc), test automation, and issue tracking (e.g. Jira) applications
- A passion for creating robust and reliable products.
- Good communication skills, including experience writing software documentation.
- Excellent analytical, problem solving, and critical thinking skills.
- Excellent knowledge with software engineering best practices and the software development life cycle (requirements, design, implementation, test, support).
- Experience developing applications for safety-critical regulated industries (medical, industrial, automotive, aviation, etc.).