We are looking for a Senior Software Packaging Engineer to join our client’s team on subcontract basis.
Briefly about the project:
The task is to produce and maintain packaging for MySQL. The candidate must be able to get the code from GitHub repository and provide working and tested packages of the product(s) which can be shipped to the customer. This work will include implementing, fixing and maintaining build scripts for all the supported Linux and FreeBSD platforms and integrating them with CI pipeline in Jenkins.
Automated tests for packaging and basic cluster operations (install the product and related packages, configuring, starting and stopping the cluster) must be implemented and/or improved.The candidate must be able to resolve problems which arise during testing from issues in build scripts (cmake, scons, make), packaging scripts (deb tools, spec files, FreeBSD Ports), scripts in the installed packages (sysv, systemd, shell scripts, selinux profiles, firewall settings, etc.), and submit patches fixing the problems via GitHub pull requests.
The implementation of the build system does not happen from scratch. There is already a working build pipeline which uses Jenkins, Groovy, Docker, Vagrant, Bash scripts and platform specific build tools to do the job. However, the scripts need maintenance and improvements to be more reliable and to adapt to newly added platforms.
Currently implemented package testing is rudimentary, and should be improved.
The goal is to have working CI/CD system which will produce package repository with tested packages, ready to be shipped to the customer.
Below is a list of required skills. Not all skills are expected from the candidate, things can be learned along the way, but any major gaps in expertise will be a showstopper for executing the task. Prior experience in building MySQL, MariaDB or Percona Server from source is highly appreciated. At least Upper-Intermediate level of spoken English is a must.
- Fluent with Git (usual workflow includes commits, branching, merging, rebasing)
- Prior experience with GitHub or similar service appreciated
Scripting and Automation
- One of the following or similar automation tools is a plus: Ansible/Chef/Puppet
- Debian based distros (Debian, Ubuntu)
- Deb packaging tools (dpkg-buildpackage etc.)
- Debian package build scripts (control, rules, etc.)
- RedHad based distros (RedHat, CentOS)
- RPM packaging tools (rpmbuild etc.)
- Spec files
- SuSE distros (OpenSUSE, SLES)
- RPM packaging tools (rpmbuild)
- Spec files
- The FreeBSD Ports system
- Init systems
- Basic TCP/IP, TCP/IPv6 skills
Package management systems
- Debian based: dpkg, apt-get
- RedHad based: rpm, yum
- Suse based: rpm, zypper
- FreeBSD: The FreeBSD Ports
- Full-time workload on remote basis
- Project starts on November 1, 2019
- Long-term assignment (at least 6-12 months on full-time, then part-time support for few years)
- Worthy reward based on your skills and experience
If this sounds like you, we'd welcome your application!