Qualcomm Cambridge are recruiting for a DevOps Engineer to continue our DevOps function with our Test Infrastructure division. We are ideally looking for experience with Puppet, Chef or Chocolatey for configuration; and also someone with tools development skills in Python ideally (other development languages considered also).
Qualcomm is a pioneering designer and developer of silicon and software for the consumer electronics market and a global leader in wireless technology. This position is within the Internet of Things business unit that focuses on accessories based on Bluetooth like headsets and sound bars. The same technology is used for automotive infotainment systems.
The group's primary purpose is to develop test infrastructure for in-house testing of Qualcomms deliverables. The role of a Senior Engineer, Test System Integration is to work with technology experts to pull together all the elements that make up a test infrastructure (e.g. hardware, software, drivers, test frameworks, etc) to build a working, reliable, manageable test framework. In addition to the above, test solutions need to be rolled out and managed globally. This includes building and maintaining network solutions and machines using Chef and building and maintaining test system configuration packages using Jenkins. Another important aspect is customer support (Internal customers). When a test framework is rolled-out, the end customer will typically integrate it into their test environment and create scripts to configure and manage the test runs. During this period test system integration support is required. Ongoing support is also provided for the life of the test solution. This is a unique role with opportunity to do software development as well as DevOps. The successful candidate is also expected to be a key contributor to system architecting and testing of new test infrastructure solutions.
- To deliver and subsequently maintain hardware and software systems for driving and reporting on Qualcomms deliverables Integrate executable components, device drivers, scripts and hardware Manage and maintain hundreds of rack-mounted computers in an automated manner through a configuration management system such as Chef Develop and maintain management applications for end users (e.g. web-based dashboards, HTTP REST APIs)
- To stay abreast of developments in the field, and therefore ensure the most fitting solutions to the end users Support other teams to utilise the system and to enhance it where appropriate based on user requests Gathering, triaging, prioritising and marshalling requirements, so ensuing development is best suited to the needs of the business
- To identify optimal solutions that address seemingly-disparate and competing requirements by spotting similarities and designing or adopting tools that address these requirements sensibly and with long term maintainability
- To be able to contribute to the technical direction and have sufficient communication skills to influence the software and system architecture
- To follow quality processes, and where those processes are deficient, to be able to implement processes for usability, security, disaster recovery, etc.
- To leverage existing technologies towards new applications in a reusable and sustainable manner, while being proactive evaluating alternative and new technologies
- Proven experience of Linux systems (Ubuntu in particular) drivers, shells scripts, boot management, system administration and bash scripts Keen to develop for scripting language, mainly Ruby and Python Proven experience with web development (Rails) and implementation of HTTP-based APIs Proven experience of TCP/IP and the OSI network protocol stack
- Proven experience with configuration management systems Chef/Puppet/Ansible
- Good knowledge of Debian packaging
- The experience to identify and assess new technologies and evaluate their applicability
- Experienced in gathering, triaging and prioritize requirements
- Experienced in planning and scheduling work
- Excellent analytical and problem solving abilities and attention to detail
- Experience working with infrastructure monitoring solutions
- Understanding of key technologies in applications, including:
- Perforce / Source Code Management systems
- Configuration Management
- Continuous Integration
- Service Oriented Architectures Preferred Qualifications C/C++ language skill
- Degree in Electrical Engineering, Computer Science or related discipline