Controls Software Engineer
- Johannesburg, Gauteng
- Permanent
- Full-time
- Use structured systems engineering approach for the development of the software used to control heavy construction equipment.
- Uses knowledge of process automation techniques to advance the simplicity of operation and troubleshooting of equipment to maximize productivity by enhancing operator functionality and the minimization of equipment downtime.
- Uses structured software design techniques to distil product requirements into a product software specification, product software design, and product software test plan and creates the corresponding documents.
- Completes the controller/PLC programming and the HMI screen programming for product projects based on the software design.
- Performs unit testing and integration testing of all controller/PLC/HMI systems to insure performance and realization of all product requirements.
- Develops the software test plans for new designs and changes to existing designs, and coordinates the testing and validation using these plans,
- Contributes to the development of product documentation, including production work instructions, training manuals, troubleshooting guides, and product test plans.
- Identifies improvement opportunities and enhancements for product enhancements and/or cost reductions.
- Contributes to project teams to ensure the successful completion of project objectives, including schedule, budget, and feature set.
- Contributes to the development of new processes and procedures to enhance the software and hardware design capabilities and work products of the engineering team.
- Leads cross-functional software and HMI design reviews.
- Leads software design reviews for developed control software.
- Assists customers, via telephone or on site, to resolve function and/or application issues.
- Works with the Service Department to resolve field and warranty issues.
- Works with the Technical Publications Department to develop and update operation/parts/service manuals.
- Adheres to all company design and coding standards.
- Performs engineering calculations as required during design cycle.
- Follows proper safety procedures.
- Performs other duties as assigned.
- Bachelor of Science (B.S.) degree in Electrical / Computer Engineering or related field.
- Minimum of five (5) years of experience in the design and development of industrial or mobile equipment control software.
- Knowledgeable of development software and tools for embedded systems.
- Proficient in C / C+ / Structure Text programming, preferably in automotive or mobile equipment applications.
- Knowledgeable of network protocols such as CAN, Ethernet, Wireless 802.11, etc.
- Proficient at interfacing software with the control and data acquisition from sensor, including pressure, proximity, angular, temperature, etc.
- Proficient with developing code for the control of valves, motors, and other industrial devices.
- Proficiency with personal computer and Microsoft Office Suite software applications.
- Ability to write reports, business correspondence and procedure manuals.
- Ability to effectively present information and respond to questions from groups of managers, clients, customers, and the public.
- Ability to write routine reports, correspondence, and effectively present information to customers and/or employees of organization and respond to questions from groups of managers, clients, customers, and the public.
- Ability to interpret an extensive variety of technical instructions in mathematical or diagram form and deal with several abstract and concrete variables.
- Flexibility to work additional hours as required.
- Occasional travel (including international).
- Experience with CodeSys, C/C++, and Ladder Logic programming.
- Experience developing software/firmware controls for and interfaces to Telematics, hydraulic circuits, 12V/24V DC electric circuits, A/C motors, and/or control systems for off-road construction equipment.
- Experience in the design and creation of software for the control & automation of off-road construction equipment.
- Language Skills
- Reasoning Ability Skills
- Must have strong analytical and troubleshooting skills.
- Ability to define problems, collect data, establish facts, and draw valid conclusions
- Adept at problem solving.
- Good organization and time-management skills.
- Willingness to accept responsibility and take on new challenges.
- Ability to exercise discretion and independent judgment on a customary and regular basis.
- Good communication skills (both verbal and written).
- Ability to work satisfactorily as a team member.