Oceaneering Senior Software Engineer - Robotics in Utrecht, Netherlands
Oceaneering is a global oilfield provider of engineered services and products primarily to the offshore oil and gas industry, with a focus on deepwater applications. Through the use of its applied technology expertise, Oceaneering also serves the defense, entertainment, and aerospace industries. Oceaneering’s business offerings include remotely operated vehicles, built-to-order specialty subsea hardware, deepwater intervention and manned diving services, non-destructive testing and inspection, and engineering and project management.
Oceaneering AGV Systems, an Oceaneering International Company, develops, implements and markets Automated Guided Vehicle Systems (AGVs), navigation hardware, and software. We offer customized and automated transport solutions to efficiently, competitively and effectively meet the ever-increasing transport demands of various industries by increasing productivity, reliability, flexibility and safety standards through innovation, expertise and robustness. Oceaneering AGV Systems has been delivering automatic guided vehicle solutions to the world's leading companies for 30 years.
*For more information please go to *www.oceaneering.com and click on Products & Services, then click Automated Guided Vehicles (AGVs).
Duties & Responsibilities
Essential Duties and Responsibilities include the following. Other duties may be assigned.
Responsible for implementing, developing, testing and installing the supervisory control software
Responsible for implementing, developing and testing the vehicle control software for AGVs
Interfacing the vehicle software to vehicle control hardware such as motor controllers, proximity detectors and wheel encoders
Commissioning and handover of AGVs to the customer/client at their site
Troubleshooting and fixing software issues
Testing the application software and interfaces to the vehicle
Writing requirements, detailed design documentation and test cases
Providing support for field issues
Analyzing and modifying traffic and logic rules to optimize material flow and optimizing vehicle performance
Continuously improving our processes and procedures to optimize development efficiency
To perform the job successfully, an individual should demonstrate the following competencies:
Problem Solving - Identifies and resolves problems in a timely manner; Gathers and analyses information skillfully; Develops alternative solutions.
Technical Skills - Assesses own strengths and weaknesses; Strives to continuously build knowledge and skills; Shares expertise with others.
Customer Service - Manages difficult or emotional customer situations; Responds promptly to customer needs; Solicits customer feedback to improve service; Responds to requests for service and assistance; Meets commitments.
Analytical - Synthesizes complex or diverse information; Collects and researches data; Uses intuition and experience to complement data; Designs work flows and procedures.
Planning/Organizing - Prioritizes and plans work activities; Uses time efficiently; Plans for additional resources; Develops realistic action plans.
Professionalism - Approaches others in a tactful manner; Reacts well under pressure; Treats others with respect and consideration regardless of their status or position; Accepts responsibility for own actions; Follows through on commitments.
Quality - Demonstrates accuracy and thoroughness; Looks for ways to improve and promote quality; Applies feedback to improve performance; Monitors own work to ensure quality.
Quantity - Meets productivity standards; Completes work in timely manner; Strives to increase productivity; Works quickly.
Dependability - Follows instructions, responds to management direction; Takes responsibility for own actions; Keeps commitments; Commits to long hours of work when necessary to reach goals. Completes tasks on time or notifies appropriate person with an alternate plan.
Innovation - Displays original thinking and creativity; Meets challenges with resourcefulness; Generates suggestions for improving work; Develops innovative approaches and ideas; Presents ideas and information in a manner that gets others' attention.
Essential Job Functions
The role requires a customer/client focused attitude, an ability to interact with customers/clients and to remain calm and professional in a demanding and dynamic work environment.
The role requires willingness to travel abroad internationally for several weeks at a time during system installation.
The physical demands described here are representative of those that must be met by an employee to successfully perform the essential functions of this job. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. The requirements listed below are representative of the knowledge, skill, and/or ability required. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
Education and/or Experience
Technical Bachelor degree, preferably in Computer Science, Automation Technology or Information Technology or equivalent experience; Minimum of 3 years experience in writing software for technical applications
Ability to program in C++ with knowledge of object oriented analysis/design/programming and design patterns.
Understanding of networking hardware and software including UDP and TCP
Working knowledge of electronic and electromechanical devices, such as analog inputs and outputs, quadrature encodes, relays, solenoids, proximity sensors etc. Ability to read and understand wiring diagrams is advantageous.
Excellent written and oral communications in English and Dutch are essential, and in German would be advantageous.
Ability to solve practical problems and deal with a variety of concrete variables in situations where only limited standardization exists. Ability to interpret a variety of instructions furnished in written, oral, diagram, or schedule form.
Ability to act independently generating innovative solutions to complex solutions is desired.
To perform this job successfully, an individual should have complete knowledge of Microsoft Word, Excel,PeopleSoft, and be proficient in Linux, and knowledgeable of the Windows Operating systems.
Ability to read, understand, debug and modify existing product code is essential
It would also be advantageous to have knowledge of the following:
Programming in Linux
Controlling autonomous robots
XML and web services
Issue tracking systems particularly Jira
Versions control systems, particularly Subversion
Writing multithread software
Programming serial, CAN and network communications (UDP and TCP)
Writing control systems
Writing requirements, design documentation and test cases
Integrating with enterprise systems such as databases, ERP systems and factory automation systems
Programming in Java, C and/or Python
Generating user interfaces in Java
Programmable logic controllers (PLC’s)
Job Title: Senior Software Engineer - Robotics
Location: Utrecht, Netherlands
Job ID: 12406