Power Electronics Software Engineer

Engineering/Electrical
Location: Fargo, North Dakota
Full Benefits
Relocation Assistance Available
Interview Travel Reimbursed
2-5 Years Experience
Bachelors Degree
Occasional Travel Required

Job Description: Power Electronics Software Engineer to be responsible for the analysis, design, development, debugging and modification of software for electric motor control and other electronic control applications for harsh and hazardous environments in the agriculture, construction, heavy duty on-highway, commercial and industrial markets.  In this position, you will: 
 
Determine design approaches and parameters.
Analyze and simulate requirements using tools such as Matlab, Simulink, etc.
Troubleshoot embedded software applications, often involving analog and digital hardware and software operating systems.
Work closely with electronic design engineering personnel to optimize hardware performance.
Design and implement software for new and/or existing electric motor control products that meet customer required features and functions. 
Develop Simulink models of electric motors and control algorithms to aid in the implementation of the software design.
Work closely with other project team members as required to ensure the final combined product has compatible software and electronic hardware as specified in the product specifications.

Education: Four year degree in Electrical or Computer Engineering or equivalent experience is required.
Advanced degree in Motor Controls, Power Electronics or other related Engineering discipline is desired.

Required Skills and Experience            
2+ years experience in Motor Control and Power Electronics Theory.
Experience using MATLAB/Simulink to simulate motors and closed loop control algorithms.
Experience in the theory of PMAC, BLDC, Induction, and SR motor control.

Desired Skills and Experience              
Experience with development and debugging tools (e.g. source level debuggers, oscilloscopes, logic analyzers, multi-meters, etc.).
Understanding of Real-Time Operating System concepts, task schedulers, and application development.
Experience in firmware (Embedded Software) development.
Experience in C or C++ programming language.
Experience with microcontrollers, ARMs, DSPs, and/or PSoCs.
Experience with microcontroller peripherals and systems (e.g. PWM outputs, boot loaders, A/D converters, watchdog timers, interrupt and trap functions, serial and parallel interfaces, etc.).
Experience with auto-code generation from simulation and modeling tools, (e.g. MATLAB, Simulink, Real-Time Workshop, etc.).