Job Description: – Design and develop high-performance application frameworks and software for high-speed protocol identification and other processing applications using C++, Java, Python and Perl in a Linux/Unix environment.
- Define and implement data formatting and interface specifications.
- Participate in all phases of development including requirements definition, software design, software development, source code configuration, managing and tracking sour code changes, defining and managing software system configurations and deployment support.
- Develop scripts to support coding, unit testing, configuration, remote installations and maintenance needs in Perl, Shell (C, Bash).
- Develop and execute unit testing using CPPUnit and Junit and develop automated build and test scripts and applications.
- Define and execute end-to-end software systems tests.
- Coordinate application updates/installation with appropriate security, dataset and system administrators, and remote site POCs.
- Help plan and conduct development, integration and unit testing; and support end-to-end system testing.
- Monitor production system to verify operations and modify as needed.
- Develop and maintain project related documentation, to include development of software design diagrams in standard software design notation such as UML and completing source code documentation.
- Participate in design and code reviews.
- Document, analyze and resolve software discrepancies.
- Define and configure development environment.
- Perform installation and maintenance of fielded systems and support backup services to deployed system and data.
- Provide technical support to customers and coordinate with cross organizational stakeholders.
Special Technical Skills
In addition to the minimum required capabilities and qualifications specified in the SOW for the selected labor category, the following special technical skills are also REQUIRED:
3+ years of experience working with or developing software in a LINUX environment
3+ years of experience with C++ and/or Java programming languages
Experience in network programming to include socket development and/or IP based applications
2+ years of experience developing and performing automated system builds and testing on distributed and multiple platform systems
Experience with Git or Subversion version control systems
Experience with Make or Ant build environments
Experience with NetBeans, Eclipse or other IDEs
In addition to the minimum required capabilities and qualifications specified in the SOW for the selected labor category, the following special technical skills are also DESIRED:
Experience with Jenkins, Bamboo or other automated build systems
Experience with Red Hat Package Manager modules
1+ years of experience with one or more open sources database and related database languages, such as MySQL, PostgresSQL or SQLite
Knowledge of signal protocol processing
Experience with CSDF and SOTF data formatting
Experience with Ruby
Experience with Agile development approaches
Experience in applying robust software configuration management procedures within software development lifecycle
Experience with Docker
Experience with JBoss and Wildfly
Experience with on-line collaboration tools such as: Confluence