Description
The Sheridan Libraries at Johns Hopkins University is seeking a Sr. Cloud Engineer skilled in designing, developing, and operating cloud-based IT infrastructure to support the deployment, administration, and management of the library’s software application systems and datasets.
The Sr. Cloud Engineer will design, create, and support the infrastructure necessary to effectively and efficiently deploy software into scalable, reliable, and secure application environments in AWS. They will collaborate with cross-functional teams to provide experienced leadership in the design and development of infrastructure to support requirements analysis, design, development, testing, deployment, and maintenance of software systems. They will also develop processes and infrastructure for the management, preservation, and sharing of data.
The Sr. Cloud Engineer will work closely with software engineers, following DevOps practices, to create tools and automation to simplify the transition of software from development environments into production deployment architectures. They will also monitor and administer software applications in cloud environments and assist in the transition of software, data, and processes to AWS.
This is a remote position in the Digital Research & Curation Center, a fully remote (and fun) team.
Environment & Technologies
- The Sheridan Libraries currently manages software in on-campus datacenters (using VMWare) as well as in AWS. This role will require the creation and management of AWS resources and participation in the analysis and transition of applications from on-campus systems into AWS.
- While toolsets are subject to change, these are the tools and technologies currently in use, so experience with these is a plus.
- AWS: EC2, S3, VPC, IAM, ECS, EKS, RDS, SNS, SQS, Route53, Cloudwatch, Lambda
- Containers: Docker, ECS, Kubernetes
- Infrastructure Automation: Terraform, Ansible
- OS: Linux (Amazon Linux, CentOS, Ubuntu)
- Code Management: Git, GitHub
- CI/CD: GitHub Actions
- Languages: Java, Python, Javascript/Node
- DB: PostgreSQL
- Search: Solr, ElasticSearch
- Administration/Communication: JIRA, Confluence, GitHub Issues/Project, Slack
Specific Duties & Responsibilities
- Design, build, configure, document, deploy, and administer IT infrastructure in AWS necessary to deploy, manage, and scale software applications.
- Following DevOps practices, collaborate with software teams to define and build tooling and automation that simplifies and supports software development, encourages best practices, and smooths the transition between development and deployment environments.
- Propose, scope, design, and build system infrastructure based on application, scaling, cost, and security requirements.
- Provide leadership, guidance, and mentorship in the selection and use of cloud systems.
- Work with system stakeholders to collect requirements for the design and planning of cloud infrastructure.
- Create and maintain infrastructure to support the storage, maintenance, and preservation of data, following preservation best practices for distribution across geography and administration.
- Analyze software applications to understand their functional and operational requirements in order to create hosting infrastructure that matches application capabilities.
- Create and execute transition plans for moving applications to AWS.
- Monitor and report on cloud costs and develop strategies to mitigate unnecessary spending.
- Build infrastructure as code to ensure consistent and reliable management of application environments.
- Design, build, and support efficient CI/CD pipelines.
- Integrate cloud-based resources and networks with local and distributed infrastructure.
- Maintain system stability while facilitating a steady flow of software updates and feature deployments.
- Coordinate with others on the systems and operations team to ensure support coverage for all library applications, regardless of deployment environment.
- Coordinate with central IT on AWS security implementation and cost strategy.
- Build and manage log and metric capture and analysis systems.
- Optimize system deployments to balance performance, cost, and security concerns.
- Develop system monitoring and alerting capabilities.
- Manage and monitor system access controls and authorization mechanisms.
- Perform systems administration to ensure operating systems, tools, and software remain up-to-date, functional, and secure.
- Troubleshoot and resolve system alerts, failures, and operational inefficiencies.
- Support system and software testing and debugging.
- Provide support and mentoring for engineering staff in the use of DevOps tools and practices.
- Administer software applications utilized as part of the software development process or provided as a Library resource.
- Manage day-to-day system operations.
Special Knowledge, Skills & Abilities
- Excellent analytical and problem-solving skills.
- Excellent written and verbal communication skills.
Minimum Qualifications
- Bachelor's Degree in Computer Science or related field or equivalent experience
- Six years related experience (Direct programming experience while pursuing education may count towards related experience. Significant undergraduate programming coursework or independent project can be considered as related experience.)
- Additional education may substitute for required experience and additional related experience may substitute for required education, to the extent permitted by the JHU equivalency formula.
Preferred Qualifications
- Experience in Systems Engineering, Systems Administration, DevOps, Cloud Engineering or similar role utilizing AWS resources.
- AWS certification in one or more disciplines (e.g. Solutions Architect, SysOps, DevOps, Networking, Security)
- Experience building and managing production systems with a broad portfolio of AWS tools and services.
- Engineering team lead or mentorship experience.
- Experience provisioning and managing cloud infrastructure with Terraform.
- Experience with DevOps practices.
- Experience building and maintaining Docker containers and managing the deployment of applications using Docker containers.
- Experience utilizing Kubernetes for Docker deployments.
- Expertise in at least one high-level programming language.
- Expertise in the use of system automation tools and techniques.
- Experience managing Java-based application environments.
- Experience utilizing monitoring, reporting, and alerting tools to maintain system awareness.
- Experience in Linux systems administration.
- Experience managing relational and NoSQL databases.
- Experience developing with Python.
- Experience with agile methodologies.
- Experience working on open-source software project teams.
- Experience working with open-source tools and technologies.
- Experience working on a fully remote team.
- Experience working in an academic or university setting.
How to apply
Metadata
Submitted by: bbranan@jhu.edu
Published: Friday, July 7, 2023 00:36 UTC
Last updated: Friday, July 7, 2023 00:36 UTC