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 appliedtechnology 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 (OASYS) develops, implements and services Automated Guided Vehicle Systems (AGVs) for various logistic applications worldwide. Our innovative logistic solutions, centered on AGVs, provide our high-end customers the reliability and flexibility needed to support their mission-critical operations.
As a Software Engineer you will be responsible for developing, testing, supporting and installing our Linux based AGV software suite. Working in a multidisciplinary team you will be responsible for making sure that the software system meets the customer specifications and work within their site constraints. You have both logistical and technical insight to create solutions that provide optimal automation performance. The Senior Software Engineer may lead or mentor other engineers, designers, and technicians during various project phases. Position involves the design, production support, integration, programming, testing, troubleshooting, and commissioning of AGV control systems both in the factory and in the field.
Given that we have global customers you are willing to travel about 25% throughout the year. You are responsible for the successful installation at the customer site. In this role you report to the Staff Software Engineer or Project Manager in the Hanover, MD office.
Duties & Responsibilities
- Responsible for implementing, developing, testing and installing the supervisory control software;
- 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 Project Manager or Staff Engineer
- Technical Bachelordegree, preferably in Computer Science, Automation Technology or Information Technology;
- Minimum 3 years’ of experience in writing application software for technical applications;
- Proficient with Linux and knowledgeable of the Windows operating systems;
- Experiencing programming in Linux;
- Knowledge of object oriented design methodologies and design patterns;
- Experience writing multithreaded software
- Experience writing control systems;
- Understanding of networking hardware and software including UDP and TCP;
- Experience with issue tracking systems.
- Experience with versions control systems.
- Experience with writing requirements, design documentation, and test cases;
- Excellent written and oral communication skills;
- Ability to read, understand, debug and modify existing product code;
- Ability to act independently generating innovative solutions to complex problems;
- 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; About 25% travel time throughout the year.
- Ability to remain calm and professional in a demanding and dynamic work environment;
- Experience programming in Java, C++ and C; Python experience
- Experience generating user interfaces in Java;
- Experience programming serial, CAN and network communications (UDP and TCP);
- Experience with Jira
- Experience with Subversion
- Experience with controlling autonomous robots is a plus;
- Ability to read and understand wiring diagrams;
- Experience with integrating with enterprise systems such as database, ERP, and factory automation systems;
- Experience with programmable logic controllers (PLCs) is a plus;