Oceaneering Software Engineer - Robotics in Utrecht, Netherlands
Duties & Responsibilities
As a Software Engineer you will be responsible for implementing, developing, testing, supporting and installing our Linux based AGV software suite (both on a SCADA level and on an embedded/vehicle level). Working in a multidisciplinary team you will be responsible for making sure that the software systems meet the customer specifications and work within their site constraints. You provide both logistical and technical insight to create solutions that provide optimal automation performance. Given that we have global customers you are willing to travel and stay abroad for several weeks at a time. This position requires 25% to 50% travel. You are responsible for the successful installation at the customer site.
- Responsible for implementing, developing and testing the 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 customers 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;
- Additional duties as assigned.
- This position has no supervisory responsibilities.
- Reports to Software Manager, OASYS
- Technical Bachelor degree, preferably in Computer Science, Automation Technology or Information Technology or equivalent work experience;
- Minimum 3 years of experience in writing application software for technical applications;
- Proficient with Linux and knowledgeable of the Windows operating systems;
- Experience with programming in Linux;
- Knowledge of object oriented analysis & design methodologies and design patterns;
- Experience with writing multithreaded software
- Experience with programming serial, CAN and network communications (UDP and TCP);
- Experience with writing control systems;
- Understanding of networking hardware and software including UDP and TCP;
- Experience with writing requirements, design documentation, and test cases;
- Excellent written and oral communication skills in English. Dutch and German is a plus;
- Ability to read, understand, debug and modify existing product code;
- Ability to act independently generating innovative solutions to complex problems;
- Ability to read and understand wiring diagrams;
- Working knowledge of electronic and electromechanical devices such as analog inputs and outputs, quadrature encodes, relays, solenoids, proximity sensors, etc.;
- Customer focused attitude;
- Willingness to travel and stay abroad several weeks at a time during system installation;
- Ability to remain calm and professional in a demanding and dynamic work environment;
- Experience with programming in Java, C++ and C; Python.
- Experience with generating user interfaces in Java.
- Experience with XML and web services.
- Experience with issue tracking systems, preferably Jira.
- Experience with versions control systems, preferably Subversion.
- Experience with controlling autonomous robots.
- Experience with programmable logic controllers (PLCs).
This position is considered OFFICE WORK which is characterized as follows.
- Almost exclusively indoors during the day and occasionally at night
- Occasional exposure to airborne dust in the work place
- Work surface is stable (flat)
- Requires working indoors in environmentally controlled conditions
- Job tasks are performed in close proximity to other people
Job ID: 14497
Location: Utrecht, Netherlands
Full/Part Time: Full-Time