©2017 ProObject
Senior Level Software Engineer- Ruby

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 a 15 person team use AGILE methodology with 3 week sprints.

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:

  • Implement recommendations for improving documentation and software development process standards
  • Coordinate with software system installation and monitor equipment functioning to ensure operational specifications are met
  • Confer with system engineers and hardware engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements and interfaces
  • Design or implement complex algorithms requiring adherence to strict timing, system resource, or interface constraints; Perform quality control on team products
  • Oversees one or more software development teams and ensures the work is being completed in accordance with the constraints of the software development process being used on any particular project
  • 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

Technical Skills Required:

  • At least 5 years Ruby experience
  • Experience with JAVA
  • Linux Experience
  • Experience with streaming frameworks (IBM Steams, Apache Spark, Storm, etc.)
  • Understanding of network & time protocols
  • Experience with scripting languages
  • Familiarity with Data Transport formats: JSON, XML
  • Familiarity with ELK stack would be a nice-to-have (ElasticSearch, LogStash, Kibana)
  • Version Control Software Experience such as GIT
  • Experience integrating and testing components, including unit tests, integration tests, and continuous integration systems

Special Technical Skills Desired:

  • Experience in C++
  • Experience with the Atlassian Suite software development tools
  • Experience with No-SQL and SQL databases
  • Exposure to Agile and SCRUM methodology a plus

Minimum Experience Required:

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

Previous Job Next Job