Apprentice Software Engineer (Linux, C, C++)
- This position require the candidate to work as a software developer, software integrator, test, and data analyst as part of a team that applies disciplined processes, techniques, and tools to transform a software design into functional software. The candidate placed in this position also supports problem resolution and analysis of schema-based validation flows. Specific job duties includes:
- Provide TIER3 Level support to include initial system analysis and recommendation for system errors.
- Performing software development, integration, test, and analysis support to deploy systems to meet requirements.
- Developing documentation as required
- Integrating software into a data flow environment, with the ability to optimize processing capability while minimizing impacts to processing flow, ensuring overall stability and performance.
- Developing software as necessary to integrate components to maintain code.
- Adhering to accepted standard for development in a continuous integration environment, including writing unit test which provide a high percentage of code coverage, participating in peer code reviews, conducting design reviews, and generating test plans to ensure maximum stability and quality of code.
- Working with development, test and configuration management tools.
- Collaborating with customer development and test team organizations and personnel to plan and execute integrated activities.
- Candidates must have good interpersonal, organizational, and communication skills
- Design and code new software or modifies existing software to add new features
- Analyze user requirements to derive software design and performance requirements
- Integrate existing software into new or modified systems or operating environments
- Develop simple data queries for existing or proposed databases or data repositories
- Make recommendations for improving documentation and software development process standards
- Debug existing software and corrects defects
Technical Skills Required:
- Minimal 2 years’ experience
- Proficiency in Linux
- Ability to perform level 1 System Administration diagnostics
- Programming skills in C, C++
- Knowledge in understanding schemas (XML, XSD), network and telecommunications protocols, data streaming, databases, and data servers
- Knowledge of software design patterns, algorithms, and commonly recognized good coding practices
- Familiarity with code development, test, and configuration management tools such as ClearQuest, JIRA, Hudson/Jenkins, GIT or SVN.
- Familiarity with system software build/release framework (make-based)
Special Technical Skills Desired:
- Experience with RSPEC
- Experience with Agile Methodologies
Minimum Experience Required:
- Minimal 2 years’ experience
- 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.
- TS/SCI with Polygraph Required