Software Engineer I
BD
About the Role
Seeking a Software Engineer to contribute to the design, development, testing, and support of software solutions for advanced medical diagnostic instrumentation. This role involves collaboration with cross-functional teams to translate product and system requirements into robust, maintainable, and well-documented software designs and implementations. You will be involved throughout the software development lifecycle, including requirements definition, architecture and design, coding, testing, troubleshooting, and product verification.
Key Responsibilities
- Participate in the design, development, testing, and support of software components and subsystems.
- Work with the team to establish software requirements, design specifications, and test plans for product verification and validation.
- Translate requirements into well-structured, maintainable, and documented software designs and implementations.
- Implement new software functionality and enhancements to existing software products.
- Troubleshoot, debug, and resolve software defects within existing automation and diagnostic systems.
- Develop and maintain automated unit tests to verify software functionality and reliability.
- Participate in technical design reviews, code reviews, and software inspections.
- Monitor progress of assigned work and communicate status, risks, and schedule impacts in a timely manner.
- Document software designs, implementation details, and test results in accordance with quality system requirements.
- Collaborate with software engineers, test engineers, systems engineers, and subject matter experts throughout the software development lifecycle.
- Adhere to software development processes, quality standards, and regulatory requirements.
- Contribute to the delivery of high-quality, reliable software for medical diagnostic instrumentation.
Requirements & Tech Stack
- Demonstrated proficiency in object-oriented programming through academic projects, internships, co-op assignments, personal projects, or professional experience.
- Experience developing software using a modern programming language such as C#, C++, Java, Python, or a similar object-oriented language.
- Understanding of software engineering fundamentals including object-oriented design, data structures, algorithms, debugging, and unit testing.
- Experience using source control systems such as Git.
Qualifications
- Bachelor of Science degree in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, Mathematics, Physics, Biomedical Engineering, or a related technical discipline.
- Previous Internship, co-op, research, or project experience involving software development.
- Experience with one or more areas of our software stack, including: Desktop application development, Web-based user interface development, REST/Web Services, Relational databases and SQL, Automated testing, Network communications, Embedded, automation, robotics, motion control, or process-control systems.
- Familiarity with Agile/Scrum development practices.
- Experience developing software in a regulated environment or for complex hardware/software systems.