Summary:
Develop software required for the successful production and support of embedded systems. This includes software for embedded controller hardware interfaces, embedded control algorithms, embedded data management, build environment, calibration generation, automated test equipment, production line support systems, production line test, reliability test, field test, data analysis, field service tools, part number traceability and warranty analysis.
Preference will be extended to those having experience developing motor control software.
Essential Duties and Responsibilities (other duties may be assigned):
- Develop software through all phases including requirements definition, design, implementation, testing, optimization, calibration, deployment and maintenance
- Troubleshoot and debug software and related system/application issues using standard problem-solving techniques including identification of problem, determination of root cause, creative solutions, selection of resolution, and execution of solution
- Read, create and present technical documentation including datasheets, specifications, design proposals, test plans, reports, presentations, and project timelines for communication with engineers, managers and customers
- Ensure output from software team meets quality standards that support the entire lifecycle of development for the needs of the business from prototype through long term maintenance
- Perform system and software architecture analysis, architecture design, and interface definition
- Self-manage complex product development programs utilizing appropriate levels of interaction with team members and managers
- Mentor other engineers and technicians
- Provide technical support to engineering, service and customers through design, analysis and test
- Independently maintain state-of-art technical knowledge through literature, news searches, seminars, and independent research
- Perform all duties as a member of the software development team - balancing individual and team responsibilities, suggesting strategies for productivity improvements, contributing to building a positive team spirit and supporting everyone's efforts to succeed
Required Skills:
- System and software architecture design
- Software integration with hardware interfaces
- Analysis and software re-design for optimization and efficiency with respect to algorithms, timing, memory, data manipulation, and maintenance
- Software programming including familiarity with data types, syntax, and control structures
- Software test skills including development of plans, procedures, hardware interfaces, design, flow control, execution, simulation and report generation
- Problem solving and troubleshooting skills including identification of problem, determination of root cause, proposal of solution alternatives, resolution selection, and execution of solution
- Integration with compilers, linkers, software development environments, and version control systems
- Ability to quickly learn new programming languages from assembly code through graphical modeling languages
- Capability to learn and advance knowledge as needed to complete assignments from Core Cross-Functional Skills in the following list:
- Embedded programming in C and assembly language
- Embedded software targeted for 8-bit, 16-bit and 32-bit microprocessors
- Software to support low level software/hardware interfaces
- Communication networks including CAN, J1939, and LIN
- Embedded interfaces to vehicle “smart systems” and web-based uploading of data
- Closed-loop control theory and coding practices
- Electronic circuit theory and schematics
- Electronic hardware troubleshooting
- Electronic test equipment including oscilloscope, multi-meter, signal generator, power supply
- Object oriented and non-object-oriented software languages
- Embedded and Windows based software applications
- .NET programming including C#, ASP.NET, LINQ, WinForms, WPF
- Windows Communication Foundation (WCF) and Workflow Foundation (WF)
- MS Visual Studio
- XML based web applications
- Version control systems (SVN, CVS, Git)
- SQL and database modeling, creation, access, queries and maintenance
- National Instruments LabVIEW, TestStand
- Matlab/Simulink
- OPC
- Ladder Logic