Oceaneering is a global provider of engineered services and products, primarily to the offshore energy industry. We develop products and services for use throughout the lifecycle of an offshore oilfield, from drilling to decommissioning. We operate the world's premier fleet of work class ROVs. Additionally, we are a leader in offshore oilfield maintenance services, umbilicals, subsea hardware, and tooling. We also use applied technology expertise to serve the defense, entertainment, material handling, aerospace, science, and renewable energy industries.
Purpose
As a Senior Application Software Engineer, you will be responsible for designing, developing, and maintaining the server-side logic of our software systems. The ideal candidate will have expertise in C++ and Python, and experience with Rust is a plus.
·Design, develop, and maintain server-side software systems and APIs
·Write efficient, scalable, and maintainable code using C++, Python, and Rust (Optional)
·Extensive design and development skills in C++ 11. Having knowledge of C++ 14/C++17 will be added advantage
·Thorough knowledge of the standard library, STL containers, and algorithms
·Solid understanding of complexity theory (big-O) of algorithms in general, and how the C++ containers fit in
·Understanding of performance tuning (w.r.t time/space) and how to do performance analysis and optimization
·Experience in Multi-threaded software development
·Excellent knowledge of Synchronization objects (Mutex, Semaphore, condition variables, etc) including their appropriate use cases and distinctions
·Ability to pick up new software languages, interfaces, and software tools
·Collaborate with cross-functional teams to understand business requirements and develop technical solutions
·Optimize performance and scalability of backend systems
·Troubleshoot and debug production issues
·Keep up to date with industry trends and emerging technologies
·Abilitytoextrapolate,developandrefinedetailedtasksgivenhigh-levelgoals
·Experience with developing code inLinux
·Knowledge of SQL and NoSQL databases
·Object-oriented software designexperience
·Experience writing unit/integration tests and testprocedures
·Experience with issue tracking software, Jira experience aplus
·Experience with revision control software, GitHub experience aplus
·Experience with Rust aplus
·Experience with QT aplus
·OpenCV, CUDA, PCL, and experience with Image processing / Computer Vision is a plus
·Experience with one or more of docker, podman, and Kubernetes is a plus
·Experience with middleware such as MQTT, DDS, ROS, ROS2 is a plus
·Knowledge of containerization and container orchestration using tools like Docker and Kubernetes
Supervisory Responsibilities
This position has no supervisory responsibilities.
Reporting Relationships
Reports to Sr. Software Manager Engineering.
Qualifications
·Bachelor's or master’s degree in Computer Science, Software Engineering, or a related field
·Software development experience in C++ with 5+ years of experience
·proven experience designing and developing scalable and high-performance backend systems
·Experience with cloud computing platforms such as AWS, Google Cloud, or Azure a plus
·Experience with writing requirements, design documentation, and test cases
·Ability to read, understand, debug, and modify existing product code
The employee must have:
·Excellent English communication skills, both written andverbal.
·The