Fairfield Technologies is looking for a C/C++/Java programmer comfortable Linux operating system environment for 1/2 time (480 hours). Start date o/a October 1. Can work remotely. U.S. permanent residency required.
The government is seeking a contractor to both develop new software and maintain existing code/modules and improving, enhancing and tweaking the ShakeAlert application which is a collection of earthquake related scientific software, in-house developed C/C++/Java application, message brokers and outward facing websites. This involves the following aspects: algorithm design, code development, code test data investigation and analysis for a variety of unusual conditions, code review for security and performance, application test plan development including coordination, verification execution and documentation, software installation and ongoing implementation support.
This work is accomplished in the context of team of ShakeAlert developers and system administrators distributed across the west coast. The contractor must also coordinate with ShakeAlert operators at multiple centers. By nature of this project, Contractor shall be working on development, testing and production environments simultaneously on various functions. Where it is required to have an arms-length separation of duties, such functions shall not overlap.
Techniques, scripts and codes developed by the contractor will be used by a scientific team to certify scientific results produced by the ShakeAlert system for use in Washington, Oregon and California, other areas of the U.S. and ultimately other countries with similar needs. This would also serve as the source input to documentation for audits and hearings.
Develop, manage and operate a comprehensive code development and management environment for the ShakeAlert system and related components in an environment that uses a combination of Agile development processes and traditional waterfall system development life cycle processes.
Manage a code development environment including code versions, supporting libraries, build configurations, run-time configurations, and metadata in a code repository.
Edit software applications for proper operation, to improve exception handling, and to conform to Capability Maturity Model Integration Level III standards.
Manage application operational configurations and log files using configuration and source management tools like Git and Puppet.
Review code by applying security-based software development practices, performance based testing, quality assurance, code integration, documentation, technical and functional specifications.
Develop, revise, and evaluate ShakeAlert system performance standards to earthquake catalog standards.
Develop and operate a comprehensive testing and certification environment for the ShakeAlert system and related components.
Design, implement and document software testing framework including unit, regression, and whole system tests.
Manage test data sets for use as input to the test system that include recorded and synthetic ground motion time-series and ShakeAlert parameter data sets.
Execute software test plans ensuring that proper procedures and methodologies are followed.
Interpret test results and troubleshoot code for application developers during testing cycle.
Manage and archive test results, document test runs, and generate test reports.
Communicating ideas clearly in writing.
Meets 90% of each deliverable required of the contractor on time in a professionally formatted document
Delivers 80% of each document without need for rewrite/edits
Works in a Linux operating system environment without coworker training of Linux 80% of the time.
Writes, edits, and reviews computer programs in C, C++, Java, Python 80% of the time in a Puppet and Git environment.
Creates, executes and tests plans, use cases, and scripts for complex applications per testing objectives 80% of the time.
Complies with established methodologies, processes, and standards within established goals and priorities to achieve project objectives and schedules 100% of the time.
Evaluates, recommends, implements and adapt to use of evolving open-source technologies that will improve the system when necessary.
Uses real-time scientific data analysis with emphasis on earthquake seismology when applicable.
Applies IT security principles and methods to evaluate, recommend, and implement it into the application and IT infrastructure related security tools, procedures, and practices to protect information assets 100% of the time.
Work closely and cooperatively with geographically distributed scientific and IT staff to ensure seamless implementation and operation of mission-critical systems 100% of the time.
The contractor will be responsible for a complex, mission-critical software system composed of multiple interconnected servers, languages, algorithms and modules. The work requires judgment to devise the most effective solution to problems, often with incomplete information. Fulfillment of project goals requires imagination and innovation under guidance from the project supervisor and in coordination with team members to develop new approaches to meet project goals and deadlines.