Duration: 12 Months
Location: Gaithersburg, MD
PURPOSE/OBJECTIVE:
The purpose of this acquisition is to procure software development and modernization services for forensic science research in latent quality metrics and technology evaluations.
The Consultant shall perform the following tasks under this scope of work:
Design, develop, maintain, and execute high-performance, C++ code across Linux, macOS, and Windows, ensuring algorithmic parity across all target platforms.
Refactor legacy code into modern C++ (i.e., C++11 or later)
Design, develop, maintain and refactor build systems, primarily with CMake.
Perform deep system debugging to resolve crashes and memory leaks.
Perform resolution of linker warnings and errors, including symbol conflicts.
Enforce and ensure code quality standards.
Develop and execute comprehensive unit tests.
Create and maintain technical documentation for application programming interface, system architectures, and build processes.
Design, develop, maintain, and execute Python and shell scripts for automation, validations, and testing.
Ensure all third-party dependencies are available offline, vetted for security vulnerabilities, comply with federal software supply chain security standards, generating and maintaining a Software Bill of Materials.
Perform periodic performance profiling and resource usage analysis to ensure C++ applications meet the latency requirements required for efficient use of federal systems.
Perform code reviews on contributed code. Respond to code review issues received.
Minimum Requirements:
Computer Software Engineer:
Minimum Education: Bachelor's degree from accredited college or university in Computer Science.
Minimum Experience:
- 10 years of professional software engineering, at least five years of which is dedicated to C++ development including modernizing legacy C/C++, CMake, and experience across multi-platform environments (linux, Windows, macOS).
- At least five years of experience in scripting languages, Git source code management, and software development tools for debugging, code quality, and trouble shooting.