Software EngineerMinneapolis, MN
Role details
Job location
Tech stack
Job description
This position will contribute to the company's success through the design and development of software on capital equipment and devices. The individual will work on capital equipment projects to develop and test software for instrumentation that is used by cardiac surgeons and electrophysiologists. This position contributes in a collaborative way with management, project teams, production associates, and other work groups to achieve the company's goals of producing market-leading products through positive patient outcomes. The Software Engineer may work independently on projects with broad scope or be a team leader / member on PD projects., * Develop software specifications including the integration and consideration of applicable standards and regulations.
- Assist in software development tasks to include design, integration, and formal testing of capital equipment and devices.
- Work with other engineers and cross-functional team members in planning, prioritizing and executing assigned tasks within deadlines.
- Perform a variety of complex engineering design and development tasks, to include design, testing and analysis, verification, and validation of software components in capital equipment and machinery.
- Execute and complete assigned projects within the constraints of time, scope and budget for the project
- Implement and test advanced software security techniques.
- Attend team meetings to communicate project status, new ideas, and any issues.
- Participate in design reviews and recommend improvements.
- Assist in risk assessment and mitigation activities.
- Work with QA team in preparing test cases, plans and procedures.
- Develop software test methods.
- Recommend course of actions to resolve software issues, improving the functionality of existing software, and ensuring that the design, application, and maintenance of software meets the quality standards
- Assist in maintenances and upgrades of existing software applications.
- Provide support in all phases of Software Development Life Cycle (SDLC) and ensure to deliver high-quality products.
- Generate and document intellectual property.
- Revise software development methodology processes and standards with new and improved practices as required.
- Determine technology choices and ensure proper software engineering practices are in place for projects
- Provide input and participate in the development and delivery of solutions by estimating, planning, designing, implementing and testing software applications
- Evaluate user needs, time limitations and system limitations when developing software plan and strategy for an effective technical solution to meet business requirements.
Requirements
- Regular and predictable work performance
- Ability to work under fast paced conditions
- Ability to make decisions and use good judgment
- Ability to prioritize various duties and multitask as required
- Ability to successfully work with others
- Additional duties as assigned, * BS in Systems Engineering, Electrical Engineering, Software Engineering, or Computer Engineering.
- 2+ years of experience in software development.
- Demonstrated skills and knowledge in software engineering.
- Experience writing in C/C++ or similar language
- Experience in software development methodologies and structured approaches to software deployment.
- Excellent written and oral communication skills.
- Knowledge of Design Controls and CyberSecurity.
- Capable of prioritizing tasks and provide a timely schedule of completion.
- Demonstrated proficiencies of communicating software best practices.
- Ability to travel up to 10%, * MS in Systems Engineering, Electrical Engineering, Software Engineering, or Computer Engineering. 3+ years of experience in software development.
- Experience designing, developing, and maintaining software for embedded devices in safety-critical systems
- Proficiency in C/C++, Rust ,Python, JavaScript
- Familiarity in I2C, SPI and CAN communications
- Familiarity with oscilloscopes and logic analyzers
- Experience using Docker, including creating docker images and writing docker compose files
- Experience using embedded Linux build systems (Yocto preferred)
- Experience automating build and test for embedded software development workflows (experience with Jenkins preferred)
- Experience writing and debugging code for RTOS-based (FreeRTOS and/or Zephyr preferred) and embedded Linux devices.
OTHER REQUIREMENTS:
- Ability to regularly walk, sit, or stand as needed
- Ability to occasionally bend and push/pull as needed
- Ability to regularly lift up to 25 pounds, occasionally lift up to 50 pounds
- Ability to pass pre-employment drug screen and background check
Benefits & conditions
AtriCure has a variety of benefits available for US based employees and their families. Examples include Medical & Dental beginning day 1 of employment, 401K plus match, 30 days of paid Parental Leave, in addition to maternity leave, for new moms and dads, Volunteer Time off, Pet Insurance, and more. Corporate-based employees also have full access to our on-site fitness center and cafeteria. To see a complete list of our benefits, please visit our careers website: https://www.atricure.com/careers-atricure/benefits.