Computer Technologies Consultants, Inc. (CTC, Inc.) is seeking a Computer Software Engineer to support the
National Institute of Standards and Technology (NIST) in Gaithersburg, MD.
Position Title: Computer Software Engineer
Position Location: This position on-site in Gaithersburg, MD.
Daily Responsibilities:- 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.
Required Years of Experience (min):
- Ten years of relevant experience
Required Degree:
- Bachelor's degree from accredited college or university in Computer Science
Required 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.
Required Clearance:
Pay InformationTBD
Please note: This range is based on our market pay structures. However, individual salaries are determined by a variety of factors including, but not limited to: business considerations, local market conditions, and internal equity, as well as candidate qualifications, such as skills, education, and experience.