Design and develop high-performance application frameworks and software for high-speed protocol identification and other process 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 source code changes, defining and managing software system configurations and deployment support. Develop scripts to support coding, unit testing, software/system configuration, remote installations and maintenance needs in Perl, Shell (C, Bash). Develop and execute unit testing using CPPUnit and Junit; develop automated build and test scripts and applications. Define and execute end-to-end software system tests. Coordinate application updates/installation with appropriate security, database 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 software design diagrams in standard software design notation (such as UML) and other source code documentation. Participate in software 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 systems and data. Provide technical support to customers and coordinate with cross organizational stakeholders.
Technical Skills Required:
- 3+ years of experience working with or developing software in a LINUX environment
- 3+ years of experience with C++ and Java programming languages
- Experience in network programming to include socket development and/or IP base applications
- 2+ years of experience developing and performing automated system builds and testing on distributed and multiple platform systems using tools such as GIT, Ant, or Subversion
- Experience with NetBeans and/or Eclipse
- Experience with Red Hat Package Manager modules
Special Technical Skills Desired:
- 1+ years of experience with one or more open source databases and related database languages, such as: MySQL, PostgresSQL or SQLite
- Knowledge of signal protocol processing
- Experience with Ruby
- Experience Docker, JBoss and Wildfly
- Experience with Agile development approaches
- Experience with web based development collaboration tools such as: Atlassian Suite – Confluence, Jira etc.
- Experience in applying robust software configuration management procedures within the software development lifecycle
Minimum Experience Required:
No demonstrated experience is required. Bachelor’s degree in Computer Science or related discipline from an accredited college or university is required. Four (4) years of software engineering experience on projects with similar software processes may be substituted for a bachelor’s degree.