- - VA-Charlottesville
- Charlottesville, VA, USA
- Full Time
The Software DevOps Engineer position at Signature Science will support numerous research and development projects related to public safety, defense and national security and will develop intuitive GUIs and associated applications to enable non-technical users to control a wide range of scientific systems, from analytical instruments, distributed sensor networks and perform automated analysis of complex datasets to provide actionable information to end users. An integral part of the position is the interpretation, integration, transformation, loading, documentation and reporting of data sets and data elements from multiple sources according to specific project requirements as well as computer science support to the research, development, and test and evaluation of tools or algorithms that support rapid, accurate and automated analysis and reporting of complex biological, chemical or other data sets. The successful candidate may also be expected to develop, research, design, implement, test, and evaluate software and systems in conjunction with hardware product development, that enable hardware and instrumentation to perform their applications, applying principles and techniques of computer science and mathematical analysis. The successful candidate is innovative and a proven contributor on other database design and software tool development projects and enjoys working side by side on diverse teams of other engineers, data scientist and subject matter experts.
Essential Duties and Responsibilities:
- Perform development efforts and work with teammates on assigned projects. Responsibilities include working with stakeholders to understand requirements, leading technical development, collaborating with designers to translate wireframes into applications, and integrating with back-end layers/hardware interfaces.
- Implement and automate build and delivery systems for production/test/dev environments.
- Implement and automate security controls and monitoring systems.
- Support CI/CD tools integration, operations, change management, and maintenance. Stay up-to-date with modern CI/CD technologies. Configure/implement build and deployment status reports/displays.
- Convert project specifications, using flowcharts and diagrams, into sequence of detailed instructions and logical steps; and write computer scripts, applying best practices of computer programming techniques and computer languages.
- Apply analytical, diagnostic/debugging/troubleshooting, and problem-solving skills for integrating applications, systems, and hardware.
- Configure applications on Linux variants implemented on x64 based architectures to support custom boards designed for unique applications and markets.
- Document the program development process and subsequent revisions. Develop installation manuals and operating procedures for software tools as required.
- Assist users in solving operational problems.
- Develop intuitive Graphical User Interfaces (GUIs) using Qt
- Design and development of Web-Based UI.
Required Knowledge, Skills & Abilities:
- Proficient in object-oriented programming (OOP) languages (e.g. C++, Java, Python, etc.)
- Proficient with the Agile or Waterfall development methodology
- Proficient in software development and development operations, CI/CD pipeline (e.g. Jenkins), and container platforms (e.g. Docker, AWS CodeBuild, Azure DevOps)
- Proficient with source code version control systems for software development and repository tools (e.g. GIT, JIRA, etc.)
- Proficient in deploying and managing solutions in AWS, GCE or Azure
- Proficient in Debian-based Linux and device driver development
- Proficient with API development
- Experience in graphical data rendering and plotting using WebGL, D3.js or similar technology
- Experience with platform level concerns, such as configuration management, and network request routing
- Knowledge of Qt framework or .NET development environment
- Knowledge of database types (SQL, NoSQL)
- Knowledge of data formats (e.g. XML, JSON)
- Bachelor Degree (or higher) in Computer Science, Math, Information Systems, Engineering, or other related fields
- 3+ years of Software Engineering experience
- Thorough understanding of the software development cycle, software architecture and product development
- A high level of energy, motivation, initiative, commitment, and professionalism
- Ability to obtain a U.S. DoD SECRET Security Clearance.
Certificates and Licenses:
Candidate must be able to obtain a Secret level security clearance.
Working Conditions/ Equipment:
- Ability to work in varying conditions to include: traditional office environments with sedentary extended periods required for voluminous data analysis via office automation;