Job Description
The Applied Physics Laboratory (APL) has an outstanding opportunity for a Software Engineer to join the Ocean Engineering Department (OED).
Reporting to the Ocean Engineering Department Head, the Software Engineer will be an integral member of the Ocean Engineering Department that supports Principal Investigators (PIs) with the design, build, and deployment of embedded software systems supporting oceanographic, acoustic, marine renewable energy, autonomous vehicle, and marine robotics research. The OED is a diverse team of software, electrical, and mechanical engineers that specializes in developing novel systems to meet the rigorous demands of the globe's harshest environments in which our equipment is deployed.
The incumbent will work on all phases of software application development from requirements gathering through final release and life cycle maintenance for major software components and small projects. The incumbent will simultaneously work on multiple projects with different timelines, often providing novel solutions to complex problems. This position will work closely with the PI, but must also operate independently and with other software, electrical, and mechanical engineers. The person hired must anticipate and identify potential technical issues and produce innovative solutions, and be able to work with the PI to develop requirements, schedule work, and address emergent needs.
Key Responsibilities:
The incumbent must have experience developing embedded applications using C, C++, Python, or related programming languages. The candidate will be responsible for updating the existing code base as well as designing, coding, testing, and deploying new applications. They will participate in design reviews, code reviews, and testing to ensure the quality of code, and will be responsible for identifying gaps in requirements and clarifying them with the PI. The candidate must anticipate and identify potential technical issues and produce innovative solutions, be able to work both independently and tightly coupled with the team, and must have good problem-solving techniques.
The incumbent must be able to work both independently and tightly coupled with the team and must have good problem-solving techniques and a deep understanding of C, C++, Python, or a related programming language. The candidate should be well-versed in software development and testing tools (e.g., Subversion, Github) for version control, bug tracking tools, performance and system monitoring tools, debugging tools, and strategies. The person hired will be expected to be disciplined in using the project-defined coding conventions and interface documentation techniques.
The incumbent will work closely with the PI to help design, plan, and track the progress of the applications developed to make sure it meets the desired goals. The candidate will be responsible for fully testing their own code and the team's code before checking it into the repository, as well as coordinating full system regression testing with the test lead to ensure their code is functioning properly. The candidate should be well-versed in software development and testing tools (e.g., Subversion, Gitlab) for version control, bug tracking tools, performance and system monitoring tools, debugging tools, and strategies. The candidate will work with the PI to ensure acceptance of the application.
Software Architecture Design & Development (60% FTE):
-Works as an integral member of the engineering team to design, code, and implement software for new instruments and new functionality within the existing code base for existing instruments.
- Creates new embedded systems as needed. Serves as a technical expert in the testing and evaluation of the software architecture, capabilities, and requirements of existing and emerging systems.
- Helps establish technical direction, standards, and maintain appropriate mechanisms to monitor/control all aspects of the software and systems development lifecycle.
- Provides systems architecture, development, programming, and consultation for embedded systems and real-time systems.
-Collaborates with other department engineers to advance the department's shared software engineering infrastructure.
Reporting and Documentation (10% FTE):
- Participates in and presents system design information at program design reviews.
- Reports development progress to the PI on a weekly basis.
- Creates formal interface documentation and documents code as needed.
Project Management (15% FTE):
- Develops project requirements with the PI.
- Plans the lifecycle of the application development.
- Coordinates development with other engineers.
- Ensures timely completion of the project.
- Proposes new projects, applications, and features by anticipating the PI's needs.
Testing (10% FTE):
- Unit tests new or updated code.
- Tests and documents full system capabilities.
- Works with system and software test engineers to develop test plans for applications.
Lead Responsibilities (5% FTE):
- Is recognized as an expert in areas of software development and is a reference for other developers.
- Leads/mentors team members on how to improve software quality.
- Instructs on strategies to test the system using various test tools.
- Provides coaching and professional feedback as necessary.
Required Qualifications:
To be considered for this opportunity, your application must demonstrate you meet both the minimum qualifications and additional qualifications listed below. Equivalent education and/or experience may substitute for minimum qualifications except when there are legal requirements, such as a license, certification, and/or registration.
Minimum Qualifications:
Applicants who do not meet these qualifications WILL NOT be forwarded to the Hiring Department.
Bachelor's degree in Computer Science, Computer Engineering, Software Engineering, Ocean Engineering, or a closely related field AND 5-10 years' work experience.
• Experience developing applications using C, C++, Python, or related programming languages.
• Experience developing applications requiring multi-threaded, real-time, distributed implementation.
• Experience with software revision control systems.
• Experience with collaborative bug tracking systems.
• US Citizenship.
• Ability to obtain and maintain a Department of Defense security clearance.
*Incumbent will be required to submit for a Department of Defense Secret-level security clearance within the first 3-6 months of employment, and once granted, must maintain eligibility to hold a Secret-level clearance. *
Equivalent education/experience will substitute for all minimum qualifications except when there are legal requirements, such as a license/certification/registration.
Compensation, Benefits and Position Details
Pay Range Minimum:
$108,000.00 annual
Pay Range Maximum:
$144,000.00 annual
Other Compensation:
Benefits:
For information about benefits for this position, visit https://www.washington.edu/jobs/benefits-for-uw-staff/
Shift:
First Shift (United States of America)
Temporary or Regular?
This is a regular position
FTE (Full-Time Equivalent):
100.00%
Union/Bargaining Unit:
Not Applicable