Software Engineer
OVERVIEW:
Responsibilities include creation and maintaining of software requirements and design documents, evaluation of software designs, implementation of software code and review/verification of software deliverables for embedded system software used in our medical device.
ESSENTIAL DUTIES AND RESPONSIBILITIES:
-
Deliver software architecture, designs, and implementation, with the integration of low-power wireless connectivity
-
Perform all phases of software development including design, implementation, testing, integration, and maintenance of software
-
Modify or re-architect existing software to correct errors, to adapt it to new hardware or to integrate new features, upgrade interfaces and improve performance
-
Develop software test plans to verify newly added features and mitigate regression risks
-
Consult with engineering staff to evaluate interface between hardware and software, develop specifications and performance requirements and resolve customer problems
-
Confer with engineering staff and project managers to obtain information for assigned projects
-
Work on problems of moderate scope where analysis of situations or data requires a review of a variety of factors
-
Prepare reports and correspondence concerning project specifications, activities and status
QUALIFICATIONS:
-
BS or MS degree in Computer Science, Computer Engineering, Electrical Engineering or related field
-
7+ years of Software development experience with C and/or C++ for ARM based processors with embedded RTOS or open OS, ideally with software and system level architectural design expertise.
-
Demonstrated experience or knowledge with one or more IoT cloud platform integration such as AWS, Azure and IBM Cloud.
-
Knowledge of current software development, testing and debugging methods, including requirements generation, design documentation, and unit and regression testing
-
Excellent conceptual, analytical, and problem-solving abilities
-
Expertise in software development tools and techniques
-
Experience with software configuration management and software release process
-
Experience with one or more wireless protocols such as BLE, 802.11, and LTE is desired.
-
Proficiency in Windows, Linux and embedded systems programming in RTOS or open OS environment is a plus
-
Experience in leading the development and release of embedded software at the product or feature level is highly desirable.
-
Prior experience in the design and development of medical devices, applications, or consumables in a highly regulated environment
-
Ability to excel in a fast paced and dynamic work environment