Position Summary
The Project Software Engineer serves as a key member of the Oceaneering Technologies (OTECH) group. Project engineers are expected to function as leads or important contributors on software efforts and proposals.
This role is important to producing software solutions that meet electrical, mechanical and CONOPs needs.
OTECH produces and maintains unique underwater systems typically for US Navy and other US Government Department of Defense customers.
Our projects are all one-of-a-kind. Projects range from quick burn to lifecycle management of fielded systems. This position would yield a solid depth of understanding of the software lifecycle and how it best applies to the entire fielded system.
Duties & Responsibilities
- Apply working knowledge of software lifecycle to develop and begin leading software efforts.
- Implement decisions for designing and maintaining software architecture.
- Actively interface with other engineering leads, program managers and external customers.
- Key contributor to creation, maintenance, and acceptance of project CDRL’s. This includes requirements management, software documentation, unit testing, software safety testing, and software qualification testing.
- Contribute to trade studies for hardware such as navigation units, board stacks, and power monitors.
- Support software testing on the factory floor, offsite, and offshore.
- Perform analysis of user requirements, concept of operations documents, and high-level system architectures to develop system requirements specifications.
- Guide system development and implementation planning through preparation of concept of operations, interfaces control documents, hazard analysis, and test plans and procedures.
- Displays excellent technical judgment, attention to detail, and ability to look at the big picture in system design.
- Demonstrates ability to devise innovative solutions to problems when conventional solutions are insufficient.
- Prepares reports and presents results to management and client.
- Schedules can be demanding throughout the year and occasional work outside normal working hours should be anticipated.
- Mentorship of junior team members.
Qualifications
ESSENTIAL QUALIFICATIONS
- BS Degree in Computer Science, Computer Engineering, Mathematics, Electrical Engineering, or related technical field. Commensurate experience will be considered.
- 5+ years of practical experience in software engineering.
- Experience with programming languages such as C, C++, C#, Python or Java.
- Solid written and oral communications skills, including ability to effectively document, convey, and present engineering concepts and products to team members and customers.
- Ability to obtain and maintain a United States Government Department of Defense Security Clearance.
- Must be a US citizen.
PREFERRED QUALIFICATIONS
- Experience developing in underwater vehicle or robotic software frameworks and expanding framework capabilities.
- Experience with Linux OS or bare metal firmware.
- Experience with microprocessors and single-board computer (SBC) based control systems that interface to sensors and hardware (e.
g., cameras, navigation sensors, valve packs, other boards).
- Ability to implement and debug communication protocols including : UDP and multicast, TCP, serial protocols, SPI, I2C, CAN, etc.
- Experience with microservices based architectures utilizing containerization and orchestration.
- Experience with PLC development, scripting languages and or Qt.
- Experience with Jira and Git.
- Experience with UI / UX design.
- Ability to setup simple bench testing environments for communication links, board power, analog devices, etc.
- Understanding of fiber optic communications.
- Proficiency with oscilloscopes, multimeters, and OTDR.
- Additional duties as assigned.