Job Description
The Principal Software Developer , reflects the mission, vision, and values of NM, adheres to the organization’s Code of Ethics and Corporate Compliance Program, and complies with all relevant policies, procedures, guidelines and all other regulatory and accreditation standards.
The Principal Software Developer is responsible for designing, developing, testing, debugging and deploying applications for Northwestern Medicine. As a Principal Software Developer, you will play a crucial role in designing and implementing complex software solutions. They lead projects, mentor developers, and collaborate with cross-functional teams to deliver high-quality software solutions.
Northwestern Medicine Information Services drives innovative, high-value solutions to transform health care.
We are committed to supporting the relentless pursuit of better medicine by providing exceptional service to our patients and guests as well as internal clients across the organization. To ensure excellence, our team goes to extraordinary lengths to ensure that our systems work together seamlessly.
Northwestern Medicine understands that technology plays an integral role in shaping the future of health care. Information Services strategically supports the organization by:
- Leveraging AI, automation and rollout of advanced cyber controls that support digital transformation strategies
- Implementing advanced technologies in clinical and administrative areas
- Furthering development of the end user support model to help enhance modern infrastructure
_ Responsibilities:_
- Work with engineers and other cross functional teams like Product Management, Project Management, Release Engineering, Quality Assurance, Operations teams etc. to develop innovative solutions that meet system needs with respect to functionality, performance, scalability, reliability, realistic implementation schedules, and adherence to development goals and principles.
- Lead the software development team, providing technical guidance, mentorship, and support to team members.
- Lead and participate in agile development methodologies, ensuring timely delivery of high-quality software solutions.
- Develop software solutions by studying information needs; conferring with users; studying systems flow, data usage and work processes; investigating problem areas
- Participate in the Agile software development from concept, design to full-stack coding and testing
- Document and demonstrate solutions by developing documentation, flowcharts, layouts, diagrams, charts, code comments and clear code
- Stay current on development tools, programming techniques and computing equipment; participating in educational opportunities; reading professional publications;
- Provide senior level support in project, ad hock status / issues meetings and conference calls
- Provide technical expertise, guidance, coaching, training and educational opportunities to assist team members in closing performance and skill set gaps in order for them to advance.
- Mentor software development team
- Make informed decisions quickly and take ownership of services and applications at scale
- Create internal process improvement initiatives within team's toolsets and workflows
- Perform code reviews
- Provide operational support as needed
- Lead the design and development of complex software projects.
- Collaborate with product managers, designers, and other stakeholders to understand requirements and deliver innovative software solutions.
- Analyze complex technical problems and propose creative solutions. Troubleshoot issues and collaborate with team members to resolve challenges.
- Contribute to the development of the technology roadmap, aligning technical strategies with business objectives.
- Assess technical risks and develop mitigation strategies.
- Advocate for user-centric design and ensure that software solutions meet or exceed customer expectations.
- Other duties as assigned