©2019 ProObject
Interested in matching your career to your job? Want to mix cutting-edge technology with challenging and rewarding work assignments?
ProObject’s culture is one of continual employee investment—we know that happy employees are engaged employees. Click to learn more
NIST Cybersecurity Compliance is not an option - it's a requirement! ProObject’s certified staff follow our unique CYBRX process to ensure that you are on the right track to cybersecurity compliance in just a few short weeks. - Contact us to get compliant!
Principal Software Engineer (Python, Ruby)

Position Description:

  • Software development role with a background that could support the following responsibilities:
    • Candidate will be part of a team responsible for implementing a continuous integration environment in support of large-scale integration mission processing systems.
    • Candidate will work as part of a team of engineers analyzing system functionality, gathering testing requirements, developing automated testing and reporting, and integrate these features into the existing systems.
    • Will also be responsible for debugging application software and systems; analyzing scripts, system logs, interfaces, and data flows; attending meetings, briefings, demonstrations and reporting all findings to management and Government leadership


Labor Requirements:

  • Analyze user requirements to derive software design and performance requirements;
  • Design and code new software or modifies existing software to add new features;
  • Debug existing software and corrects defects;
  • Integrate existing software into now 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;
  • Develop or implement algorithms to meet or exceed system performance and functional standards;
  • Assist with developing and executing test procedures for software components;
  • Write or review software and system documentation;
  • 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;
  • Serve as team lead at the level appropriate to the software development process being used on any particular project;
  • Modify existing software to correct errors, to adapt to new hardware, or to improve its performance;
  • Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design;
  • Design or implement complex database or data repository interfaces/queries;
  • Oversees one or more software development teams and ensures the work is completed in accordance with the constraints of the software development process being used on any particular project;
  • Design or implement complex algorithms requiring adherence to strict timing, system resource, or interface constraints;
  • Perform quality control on team products;
  • Confer with system engineers and hardware engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements and interfaces;
  • Coordinate software system installation and monitor equipment functioning to ensure operational specifications are met;
  • Implement recommendations for improving documentation and software development process standards;
  • Serve as the technical lead of multiple software development teams;
  • Select the software development process in coordination with the customer and system engineering;
  • Recommend new technologies and processes for complex software projects;
  • Ensure quality control of all developed and modified software;
  • Delegate programming and testing responsibilities to one or more teams and monitor their performance


Technical Skills Required:

  • Minimum 20 years’ experience as a Software Engineer supporting the full system development lifecycle in a Linux environment
  • Experience with scripting (Python, Ruby, Ruby on Rails, rspec)
  • Experience with automation applications or technologies
  • Experience with test automation frameworks
  • Experience with Jenkins/Hudson


Special Technical Skills Desired:

  • Familiarity with software design patterns
  • Experience with JIRA
  • Experience in Agile Software Development Life Cycle
  • Experience using various virtualization techniques and environments – ESX, VMWare, Docker
  • Experience with at least 4 of the following is highly desired:
    • Performance / load / stress testing
    • System optimization techniques
    • Data interface testing
    • Regression testing
    • Formal requirements verification testing
    • Systems integration testing
    • Data flow testing and analysis
    • Web server, OS, and MongoDB database setup and administration
    • Webservices (SOAP, REST, JSON) testing


Minimum Experience Required:

  • Twenty (20) years’ experience as a software engineer 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
  • TS/SCI with Polygraph Require
Previous Job Next Job