©2017 ProObject
Junior Level Software Engineer (C++)

Position Description:

Work with team lead to understand tasking and deliver system to required specifications. Work with stakeholders to understand and implement system components. Participate as a member of the SCRUM team in daily stand ups.

Specific duties include:

  • Interface with sub-system software and systems engineers; responsible for gathering user requirements, assisting with implementation, and support to system integration & test
  • Programming to include new development, bug fixes, and enhancements, as well as installation, monitoring and configuration programs and scripts
  • Software testing, installation, configuration and upgrading
  • Perform coding and unit test of new system components as they are defined
  • Documentation of all software developed; documentation to include application and interface documentation, Version Description Documents (VDD), User’s Manuals, and Trouble Shooting guides

Labor Requirements:

  • Design or implement complex database or data repository interfaces/queries
  • Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design
  • Modify existing software to correct errors, to adapt to new hardware, or to improve its performance
  • Serve as team lead at the level appropriate to the software development process being used on any particular project
  • Develop software solutions by analyzing system performance standards, conferring with users or system engineers; analyzing systems flow, data usage and work processes; and investigating problem areas
  • Write or review software and system documentation
  • Assist with developing and executing test procedures for software components
  • Develop or implement algorithms to meet or exceed system performance and functional standards
  • Make recommendations for improving documentation and software development process standards
  • Develop simple data queries for existing or proposed databases or repositories
  • Debug existing software and corrects defects
  • Design and code new software or modifies existing software to add new features
  • Analyze user requirements to derive software design and performance requirements

Technical Skills Required:

  • C++ experience (5+ years)
  • Experience with streaming frameworks (IBM Streams, Apache Spark, Storm, etc.)
  • Understanding of network & time protocols
  • Ruby, Python, and scripting languages
  • Familiarity with Data Transport formats: JSON, XML
  • Familiarity with ELK stack (ElasticSearch, LogStash, Kibana)
  • Linux Experience
  • Version Control Software Experience (GIT)

Special Technical Skills Desired:

  • Experience with the Atlassian Suite software development tools
  • Experience in some applicable programming language such as the following:
  • C++
  • JAVA
  • Ruby/Python
  • Experience with No-SQL and SQL databases
  • Experience integrating and testing components, including unit tests, integration tests, and continuous integration systems
  • Exposure to Agile and SCRUM methodology a plus

Minimum Experience Required:

Seven (7) years of experience in programs and contracts of similar scope, type, and complexity is required.

Bachelor’s degree in Computer Science or related discipline from an accredited college or university is required. Four (4) years of additional software engineering experience on projects with similar software processes may be substituted for a bachelor’s degree.

Previous Job Next Job