HP Cloud Services (HPCS) is creating and operating HP’s global-scale public cloud. We are seeking a talented, experienced senior software developer to join our Compute Service engineering team. This is a superb opportunity to be part of building and scaling HP’s public cloud business, working with leading-edge technologies at large scale, and with a great team in a fast-paced environment.
The HPCS Compute Service delivers virtual machines in the cloud, on a large-scale, pay-as-you-go basis. The service is built on the OpenStack open source cloud management platform, and the HPCS team plays a full and growing part in the OpenStack community.
Strong candidates will be innovative, knowledgeable and highly productive software engineers with a track record of successful software/service development projects and high-quality deliverables. They will be great team players with good interpersonal skills. They will be expected to take direct ownership for developing service features and seeing them through from design to deployment, including guiding the work of other developers on the team. They will be expected to engage with and contribute to the OpenStack community, blending this work with the specific requirements of the HPCS service.
Primary Responsibilities Include
- Software design and development through the complete software lifecycle
- Leading/owning the design, development, documentation and delivery of complete service features, enhancements and defect fixes for the Compute service, including guiding the work of other developers
- Participation in our agile development process: collaborative development of user stories/requirements, sprint planning, sprint execution and process improvement
- Participation in providing team-wide 24x7 on-call service support, providing an escalation path for Compute service issues that cannot be resolved by first and second line support
- Active participation in the OpenStack open source community in order to contribute to the evolution of OpenStack and to engage in discussions, designs, code, reviews, tests, and in creating documentation and other relevant artifacts
- Education and Experience
- Bachelor's degree in a directly relevant technical discipline such as computer science or software engineering, or equivalent experience. Advanced degree an advantage.
- Proven track record of software development in fast-paced, challenging environments.
Knowledge and Skills
- Software development experience spanning the complete software lifecycle, including successful delivery of products or services
- Good theoretical and strong practical knowledge of computer science and software engineering fundamentals
- Strong software design and implementation skills, the ability to think widely about problems and to consider all aspects and consequences of proposed solutions
- Excellent written and oral communication skills, good presentation skills
- Excellent interpersonal skills and the ability to integrate well into a positive, energetic development team
- Experience with some or all of the following technologies and technology areas: distributed systems, programmatic use of databases, large-scale systems, OpenStack, Python, Linux software development and system administration, KVM/virtualization, message-oriented systems, RESTful APIs, system security, designing for high-availability, Chef (or other automated configuration technologies), Unix shell scripting, git, virtual networking, building ‘no-downtime’ or recovery-oriented systems
- Experience with some or all of the following methodologies: agile development, test-driven development, continuous integration, automated testing, automated deployment
- Experience of technical leadership for small teams
- Experience of building, operating and supporting large-scale, 24x7 internet-facing services
- Experience of working with open source communities