The Software Deployment Engineer would be responsible for having an in-depth knowledge of installation, problem solving, application security, software lifecycle, and custom package builds. This position will work with the KDI team and research users to deliver and maintain software. As a Software Deployment Engineer, you should be comfortable around RPM builds, native scripting languages (shell), Puppet/Ansible, basic web server design/functionality, source code version control (Git), software repository management, and infrastructure segmentation.
Primary duties include:
- Support deployment, monitoring, and management of software.
- Ensure the availability, performance, scalability and security of production systems.
- Manage the end-to-end life cycle of software and applications used by researchers.
- Troubleshooting and problem solving on Linux systems.
- Continuous process improvements.
- Embrace continuous integration and continuous delivery (CI/CD) processes.
- Work closely with customers to design solutions based on industry best practices and security requirements.
- Collaborate with research teams to ensure new environments meet requirements.
- Identify and document IT best practices that will improve the systems deployment function.
- Ability to present and communicate complex technical concepts to small to medium groups of scientists and engineers.
- Ensure the secure and effective operation of computing systems through compliance with ORNL procedures and IT Internal Operating Procedures.
- Troubleshoot system problems quickly and effectively.
- Work with other systems engineers and vendors to resolve hardware and software issues.
- Optimize systems performance.
- Install and configure software, both commercial packages and various open source packages.
- Maintain documentation/notes on software builds and installs.
- Keeping current with industry trends and developments that can be applied to company needs.
- Bachelor's degree in Computer Science or related technical subject, along with five years of experience, or equivalent combination of education and experience
- A minimum of three years Linux/Unix support
- Basic understanding of patch management, source code versioning, and software lifecycle management
- Basic understanding of server hardware and storage
- Basic understanding of virtualization technologies
- Strong interpersonal and communication skills
- Bachelor's degree in Computer Science with five years of experience in Software Engineering
- A minimum of three years of experience managing container infrastructure
- Experience with configuring and managing Puppet/Ansible, GitLab, Apache web servers, and system monitoring tools
- Experience with performance and diagnostic tools for benchmarking, analysis and tuning of applications
- Previous experience working in a government, scientific, or other highly technical environment
- Excellent interpersonal skills suitable for user support and ability to work well with peer system administrators
- Excellent written and verbal communication skills
- Ability to work independently and demonstrated analytical and problem-solving skills
- Demonstrated ability to balance complex research and security requirements