
Associate Controls Software Engineer
- Eden Prairie, MN
- $107,539-134,971 per year
- Permanent
- Full-time
- Technical Creation - The creation of solutions to engineering challenges.
- Design Subsystems: able to develop a plan for the technical execution of a component of the software system.
- Contribute to the design of software subsystems.
- Write Software/Features: Develop new code to make the software system perform a new task.
- Be able to follow best programming practices to create new software features in complex situations.
- Update Parameters: Modify non-code files to enable configuration changes to the system while ensuring correctness and adherence to standards. Perform complex parameter updates with changes from cross functional teams.
- Technical Investigation - Investigate and solve engineering problems
- Debug Systems: Through inspection or execution discern the cause of problems in mechanical, electrical and software systems. This can be for the team itself or external stakeholders in R & D, customer advocacy, and product management. Determine if software is the root cause for repeatable occurrences
- Debug Code: Through inspection, simulation, or execution of code, discern the cause of problems in the software. This can be for the team itself or external stakeholders in R and D, customer advocacy, and product management. Determine where a repeatable problem exists in complex single threaded code bases.
- Fix Code: Make changes to the code to repair problems when told what specific changes to make. Make changes that change the logic and flow of the software.
- Test Code / Systems: Using existing hardware and software systems, execute operations to ensure the proper functionality of those systems. Given a proven working test system, can repeat test steps that are explicitly demonstrated. Able to repeat well-written procedures with efficiency. Understands good and bad results. Notes deficiencies or gaps in test procedures. Able to record and communicate valuable data/results effectively. Able to setup tests.
- Review Code: Go over the changes of other developers and ensure the quality of the design, the functionality, and the adherence to standards. Provide feedback that the code will complete the desired function.
- Technical Process - Follow and Improve team processes
- Software Documentation: Develop written documentation for systems and processes to enable others to recreate your steps and use them to develop new things. Can create documentation for pre-existing code at the software component level.
- Project Planning - Defining the work and how it will be executed
- Communicate with stakeholders to learn the needs of a fix, feature, or project. Determine and document requirements for feature additions from individual stakeholders.
- Project Execution - Making sure the work occurs on schedule and to specifications.
- Facilitate Meetings: Organize and lead meetings to allow the collaboration between people and teams. Able to lead directed meetings with software engineers. Responsible for determining agenda, communicating outcomes.
- Bachelor's Degree or (Associate Degree with 5.5 years experience) or (Software boot camp certification with 7 years experience) in lieu of degree
- 5+ years' experience
- 2+ years' experience in embedded software development
- 3+ years in C++ and/or C programming experience
- Previous experience using 3D printers
- Experience in a manufacturing environment
- Experience with Agile and/or Scrum
- Experience with GIT
- Experience working with motors and heaters
- Experience leading teams and projects