This team member is responsible for the design of a front end user interface and back end digital signal processing chain, as well as the test cases for debugging the system and/or microcontroller firmware.
This includes architecture design, project planning, coding, profiling code, debugging, testing, artifact tracking, and document generation under a quality management system that meets regulatory standards for medical device software development.
Determines appropriate software architecture and design environment, problem definition, requirements creation, and implementation.
Develops signal processing chains and machine learning algorithms for ultrasound signal classification.
Develops UI/UX, Applications Programming Interfaces, as well as low level code for hardware interfaces.
Develops and documents code in accordance with company coding standards.
Follows company standard operating procedures (SOPs) to ensure regulatory compliance.
Uses code repositories to track all software development.
Uses code artifact tracking mechanisms to plan and execute work deliverables.
Protect confidential information including software algorithms and implementations.
Develop software solutions by studying information needs; conferring with users; studying systems flow, data usage, and work processes; investigating problem areas.
Coordinate efforts between the company and consultants or vendors.
Requirements
Experience in Life Sciences is highly desired
Ability to program in scripting, high- and low-level languages, including Python, C#, C++, and C.
Able to manage and distribute applications from a cloud backend.
Knowledge of industry standards (IEC 62304, ISO 60601-1-4) strongly desired.
Familiar with different software development lifecycles including agile and stage gate.
Strong knowledge in object orientated programing, database experience, signal and slots, model view controller UI development and frameworks, and UI/UX best practices.
Proficient in using Git, artifact tracking and product development software such as Jira.
Knowledge to read and create UML diagrams.
Ability to use pseudo code to convey algorithms to other team members.
Knowledgeable about data types and structures including correct situational use.
Cross platform development, including macOS, Windows, and Android.
Familiar with and use best practices in debugging and documenting code.
Understand toolchains and be able to describe memory maps and how to use profilers.
B.S. in Computer Engineering, Computer Science, or equivalent.
Minimum of seven years of experience (5 years with a M.S.) in developing software, including performing code reviews, source control, unit and system testing, artifact tracking and documentation generation.