Spectrum Systems  
Home Send email
 
Company Customers Capabilities Partners Careers Contacts
 
 

Openings

Please send your resumes (in MS Word format) to:

info@spectrsys.com

Please send your general inquiries to:

info@spectrsys.com

1. Job title: Software Engineer

Job location: MANASSAS, VA

Job Description:

Participate in all phases of SDLC (Software Development Life Cycle), including requirements gathering, analysis, design, programming, testing, maintenance, documentation, and troubleshooting/resolution; design and develop optimized and reliable code to specification; perform cross-platform development, based on deep understanding of micro-service-based architecture in C++ for a variety of Linux and Unix platforms, including RHEL, HP-UX, and AIX; use OO methodologies for design and development of components of software applications using C++ and STL on UNIX system and Oracle 11g database; use Unified Modelling Language (UML) methodologies to describe and communicate software system architecture with the rest of the development team; design and develop multi-process and multi-threaded applications using threading libraries such as POSIX PThread and Boost; use different Inter-process Communication methods to enable communication between processes of multi-process application; implement Asynchronous Input/ Output solutions and lock-free algorithms to develop the most efficient distributed back-end applications; develop, maintain and support a large size C++ code base using a variety of C++ standards, including C++ 11, C++ 14, and C++17; design applications using standard design patterns available for organized and efficient code base; use tools such as MS Visio to document designs; reverse engineer existing code for impact-analysis, before incrementally adding new software features to the applications; work with C++ debuggers available on Unix platforms like GDB; use embedded SQL in C++ for application(s) interfacing with database; use OCCI for interaction between C++ application and Oracle Database; design logical and physical relational data model for RDBMS using tools such as SQL Developer and Toad; optimize SQL queries for performance in a RDBMS by restructuring existing queries, by using Oracle Query Hints, and/or by using best practices when implementing new queries; develop and maintain Oracle triggers and procedures, including the use of PL/SQL; conduct unit test and profile software applications using available tools, or by writing automated unit test unix scripts in Unix shells, Python and PERL; perform code and design reviews with peer software developers; use Clearcase to interact with multiple code bases in a collaborative environment; use JIRA and HP Quality Center for defect tracking; mentor junior team members and handle project delivery; develop and maintain UNIX Shell, Python, and Perl scripts designed to transfer data, clean data and check for data inconsistencies; develop solutions for automating software development lifecycle, using CMake, git, ClearCase, Conan, Jenkins, and jFrog Artifactory; analyse and resolve binary-level dependencies that exist in multi-platform deployment steps; implement automated incremental software delivery solutions using Groovy (for Jenkins), Ansible and configurable Ansible Tower; work specifically on projects involving complex distributed data processing utilizing mathematics skills for implementation and optimization of data encoding and data compression algorithms; use different encryption algorithms and PKI methods to secure the data transfer; utilize TLS/SSL certification chains, common certificate formats and crypto algorithms and Open SSL; implement data transfer applications for wide-area networks utilizing a variety of message formats, including Google Protobuf, YAML, JSON and XML formats

 

               Job Requirements:

 

Bachelor’s degree in Computer Science or foreign equivalent plus 4 years of experience to include participating in all phases of SDLC (Software Development Life Cycle), including requirements gathering, analysis, design, programming, testing, maintenance, documentation, and troubleshooting/resolution; designing and developing optimized and reliable code to specification; performing cross-platform development, based on deep understanding of micro-service-based architecture in C++ for a variety of Linux and Unix platforms, including RHEL, HP-UX, and AIX; using OO methodologies for design and development of components of software applications using C++ and STL on UNIX system and Oracle 11g database; using Unified Modelling Language (UML) methodologies to describe and communicate software system architecture with the rest of the development team; designing and developing multi-process and multi-threaded applications using threading libraries such as POSIX PThread and Boost; using different Inter-process Communication methods to enable communication between processes of multi-process application; implementing Asynchronous Input/Output solutions and lock-free algorithms to develop the most efficient distributed back-end applications; developing, maintaining and supporting a large size C++ code base using a variety of C++ standards, including C++ 11, C++ 14, and C++17; designing applications using standard design patterns available for organized and efficient code base; using tools such as MS Visio to document designs; reversing engineer existing code for impact-analysis, before incrementally adding new software features to the applications; working with C++ debuggers available on Unix platforms like GDB; using embedded SQL in C++ for application(s) interfacing with database; using OCCI for interaction between C++ application and Oracle Database; designing logical and physical relational data model for RDBMS using tools such as SQL Developer and Toad; optimizing SQL queries for performance in a RDBMS by restructuring existing queries, by using Oracle Query Hints, and/or by using best practices when implementing new queries; developing and maintaining Oracle triggers and procedures, including the use of PL/SQL; conducting unit test and profiling software applications using available tools, or by writing automated unit test unix scripts in Unix shells, Python and PERL; performing code and design reviews with peer software developers; using Clearcase to interact with multiple code bases in a collaborative environment; using JIRA and HP Quality Center for defect tracking; mentoring junior team members and handling project delivery; developing and maintaining UNIX Shell, Python, and Perl scripts designed to transfer data, clean data and check for data inconsistencies; developing solutions for automating software development lifecycle, using CMake, git, ClearCase, Conan, Jenkins, and jFrog Artifactory; analysing and resolving binary-level dependencies that exist in multi-platform deployment steps; implementing automated incremental software delivery solutions using Groovy (for Jenkins), Ansible and configurable Ansible Tower; working specifically on projects involving complex distributed data processing utilizing mathematics skills for implementation and optimization of data encoding and data compression algorithms; using different encryption algorithms and PKI methods to secure the data transfer; utilizing TLS/SSL certification chains, common certificate formats and crypto algorithms and Open SSL; implementing data transfer applications for wide-area networks utilizing a variety of message formats, including Google Protobuf, YAML, JSON and XML formats.

Apply for this positionng>

 
Home | Privacy Policy | Contacts © 2009 Spectrum Systems, Inc.