### Job_Dedcrip:
Woods Hole Oceanographic Institution is currently searching for a Software Engineer to join the Applied Ocean Physics and Engineering Department (AOPE). This is a regular, full-time, exempt position, and is eligible for benefits.Within AOPE, The Ocean Observatories Initiative’s (OOI) Software Team is seeking an experienced Software Engineer to write complex computer code for use in ocean instrumentation data collection, processing and delivery. The candidate will support software development efforts of both the Cyberinfrastructure (CI) and Coastal and Global Scale Nodes (CGSN) development teams.This individual will be contributing to many aspects of the software development lifecycle such as architecture, code development and software administration. The successful candidate will be able to apply creative solutions to complex problems with the goal of simplifying the ingestion of data into the system through automation and the application of standard user experience concepts. The candidate is expected to review user requirements and turn them into a work plan with recommendations of approach and prioritization. To best serve the OOI mission and understand the CI group’s software requirements, the successful candidate is expected to regularly participate in hardware and software troubleshooting efforts and contribute to strategic discussions surrounding implementation of new technologies and processing concepts.The individual will also be a member of the CGSN development team responsible for the development and maintenance of an Operations Management software application (OMS++) that ingests telemetered data from remote ocean instrumentation platforms and displays the data in near real-time in support of operations staff. In addition, the individual will have responsibilities for diagnosing issues and fixing bugs in software running on the remote platforms related to the collection and delivery of telemetered data. Responsibilities for the remote platform software will also include performing updates in support of newer hardware, operating systems and security requirements.Required Software Engineer skills/capabilities:>3 years professional experience programming in Java and PythonExperience or ability to work with existing code (written in Python, C/C++, HTML, Java, Django)Experience developing in (and for) a Linux environmentExperience with version control (specifically Git) and adhering to a desired workflow involving online tools such as BitBucket or GitHubExperience deploying software and processes in a Linux environmentExperience developing with open-source toolsExperience troubleshooting code and system functionality in complex hardware-software systemsAbility to listen to needs of users and implement features and fixes as neededStrong verbal and written communications skillsStrong technical writing & documentation skills, both inside and outside of codeAbility to meet deadlinesAbility to report status & progress weeklyAbility to work both independently and cooperatively on tasksAbility to work professionally and respectfully alongside diverse teamThe internal working title for this position is Engineer II.Essential Functions.Software Expectations:Software Design Documentation and ReviewThe candidate will be responsible for documenting any changes she/he makes to existing software. If the changes are significant enough, a thorough design for the planned changes shall be captured by the candidate, and reviewed by the team for accuracy and completeness. Comments generated during the review process shall be resolved as agreed upon by the team, and the candidate shall update the design documentation to reflect these resolutions.Configuration Management and Issue TrackingAll changes made to software and documentation shall be tracked using the agreed upon tools for issue tracking (e.g., Git, Trello). The changes, as well as all new software and software tests created by the candidate, shall also be committed to the agreed upon version control tool.Software DevelopmentThe candidate shall follow coding standards where applicable, otherwise she/he shall generate code in a manner that follows a self-documenting paradigm along with comments that give additional context. The candidate will be required to use the legacy programming languages and technologies in use for existing products when necessary. The candidate is expected to provide recommendations, where applicable, regarding the best software technologies to be used for new products. The candidate is also expected to define, execute, deliver, and document results of software unit tests as required, in an agreed upon format.Software AdministrationThe candidate will be responsible for deploying and managing software in the development and production environments - including configuration files, monitoring scripts, deployment scripts as well as any dev-ops optimizations.System Maintenance and Support DocumentationThe candidate will provide support for making system related changes associated with software improvements, such as installation of software products and configuration of operating system and installed software, as well as document the changes.NON-ESSENTIAL FUNCTIONS:As deemed necessary by supervisor.Education & Experience.Education Requirements:Engineer --- Bachelor's degree in computer software engineering or appropriate field with several years of relevant experienceDesired Software Engineer skills/capabilities:Ability to work in a small Agile Software Development environment across departments: developing and testing complex data processing software being built or updated, early and often, and able to work in an organic team, taking on tasks as necessary and able to interface with other software engineersDemonstrable experience in developing software for collection of scientific dataDemonstrable experience programming in Python and Java and web based languagesDemonstrable experience programming in C++, including STL and/or BoostExperience writing Bash shell and Perl scripts is a plusExperience developing web-browser-based tools and User Interfaces is a plusExperience with databases utilizing SQL and NOSQL structures such as PostgreSQL and/or Cassandra a plusUnderstanding of user experience design a plusExperience with uFrame platform and EDEX server a plusAbility to identify and fix inefficiencies in software-hardware configuration processesExperience with dev-ops tools and procedures a plusExperience with embedded systems a plus (build systems, bootloaders, kernels, file systems)Experience with ROS, ROS2, DDS a plusSpecial Requirements.WHOI has a mandatory COVID-19 vaccination policy in effect, where you must register your full vaccination status (vaccination plus booster) in order to begin employment. The registration process is confidential and entails submitting your official vaccination records or requesting to engage in the interactive exemption process for either a medical or religious reason..Physical Requirements.Physical duties for this position include but are not limited to, ability to lift less than 25 lbs independently, 2 times per day; carry 10-25 lbs, 2 times per day. Visual abilities to include near, far, peripheral, depth perception, and ability to distinguish basic colors. Hearing requirements include the ability to hear and respond to instructions, communicate effectively in loud areas (pier/dock, warehouse). Other physical tasks include occasional prolonged standing/walking; use of hands for basic /fine grasping and manipulation, repetitive motion, reaching above and below the shoulders, pushing, pulling, kneeling, bending, twisting, and stooping. Other occupational requirements include talking, traveling, working around others, and with others. Will be exposed to dust or other irritants and electrical/mechanical/power equipment hazards. Physical duties are subject to change.Sea Duty.Opportunity for Sea Duty is available but not a requirement.WHOI is an Affirmative Action/Equal Opportunity Employer/Disabled/Veterans/M/F. We encourage Veterans and those with Disabilities to apply. Applications are reviewed confidentially. Applicants that require accommodation in the job application process are encouraged to contact us ator email  for assistance.

### Response:

Job Requirements:- Bachelor's degree in computer software engineering or appropriate field with several years of relevant experience- >3 years professional experience programming in Java and Python- Experience or ability to work with existing code (written in Python, C/C, HTML, Java, Django)- Experience developing in (and for) a Linux environment- Experience with version control (specifically Git) and adhering to a desired workflow involving online tools such as BitBucket or GitHub- Experience deploying software and processes in a Linux environment- Experience developing with open-source tools- Experience troubleshooting code and system functionality in complex hardware-software systems- Ability to listen to needs of users and implement features and fixes as needed- Strong verbal and written communications skills- Strong technical writing & documentation skills, both inside and outside of code- Ability to meet deadlines- Ability to report status & progress weekly- Ability to work both independently and cooperatively on tasks- Ability to work professionally and respectfully alongside diverse team- Understanding of user experience design a plus- Experience with databases utilizing SQL and NOSQL structures such as PostgreSQL and/or Cassandra a plus- Experience with dev-ops tools and procedures a plus- Experience with embedded systems a plus (build systems, bootloaders, kernels, file systems)- Experience with ROS, ROS2, DDS a plus- WHOI has a mandatory COVID-19 vaccination policy in effect, where you must register your full vaccination status (vaccination plus booster) in order to begin employment.