Sr Software Engineer
About the Role
This position involves designing, developing, and maintaining embedded systems software, particularly for medical devices. The role requires deep expertise in low-level firmware, peripherals, communication buses, and device drivers, as well as strong skills in software development lifecycle management and regulated environments.
Responsibilities
- Design, develop, test, debug, and implement operating systems components, software tools, and utilities for embedded systems.
- Determine software design requirements for embedded systems, ensuring compliance with medical device regulations.
- Implement and monitor system improvements to increase efficiency.
- Generate and maintain software engineering policies, standards, and procedures.
- Write software requirements and decompose them into test designs, including automated test scripts.
- Debug test scripts and ensure thorough validation of software.
- Oversee projects from design to implementation, adhering to policies and using specialized knowledge.
- Act as a mentor or guide to colleagues and may direct the work of lower-level professionals.
Requirements
- Excellent knowledge of embedded systems design, low-level firmware, peripherals, communication buses, and device drivers.
- Proficiency in reading, writing, and manipulating hexadecimal and binary data.
- 4+ years of software development experience on embedded bare-metal or RTOS systems (C, C++).
- Strong working knowledge of developing software for medical devices, including familiarity with regulatory processes and procedures.
- Experience with the full software development lifecycle, from planning to release.
- Experience in regulated software development processes (e.g., IEC 62304, FDA guidelines).
- Knowledge of Medtronic’s Neuro devices, programmers, and associated applications.
- Effective verbal and written communication skills.
- Experience writing software requirements, test designs, and automated test scripts.
- Strong debugging skills for test scripts and embedded systems.
Qualifications
- University Degree in a relevant field (e.g., Computer Engineering, Electrical Engineering, Computer Science).
- Minimum of 4 years of relevant experience, or an advanced degree with a minimum of 2 years of relevant experience.
- Practical knowledge of project management is preferred.
Specialist Career Stream
This is an individual contributor role within a professional discipline or specialty. Responsibilities include delivering and managing projects while working with stakeholders to achieve desired results. The role may involve mentoring colleagues or directing the work of lower-level professionals. The majority of time is spent on project delivery from design to implementation, adhering to policies and leveraging specialized knowledge.
Differentiating Factors
- Autonomy: Works independently under limited supervision, determining and developing approaches to solutions. Coaches and reviews the work of lower-level specialists; may manage projects or processes.
- Organizational Impact: Responsible for entire projects or processes within the job area. Contributes to work group objectives by building relationships and consensus.
- Innovation and Complexity: Addresses difficult problems requiring understanding of multiple issues, job areas, or specialties. Makes process, system, or product improvements to enhance performance.
- Communication and Influence: Communicates with senior internal and external customers and vendors to exchange information, influence decision-making, and achieve objectives.
- Leadership and Talent Management: May provide guidance, coaching, and training to other employees. May delegate work and review others' work products.