- Role Type
- Full time, Permanent
- Closing Date
The infrastructure developer will work with the various Ricardo Software development teams to support, maintain and enhance their build, test, and CRM systems. They will be responsible for both the development and IT administration aspects, and will work with Ricardo’s corporate IT department where necessary to deliver key infrastructure goals as business requirements dictate. Responsibilities may include working on the build system, test system & clusters, bug tracker, CRM system, license infrastructure, installer and external web site infrastructure. The successful applicant for this role will benefit from a deep breadth of experience across a variety of areas covering system administration, scripting, automation, deployment and maintenance. Additionally, the infrastructure developer should be self-motivated and will be comfortable with independently maintaining, developing, and refactoring software written in Python and PHP, using modern object-oriented design techniques. They should also possess the ability to identify areas of improvement in existing systems.
- Good working knowledge of Python scripting.
- Familiarity with relational databases; including writing, understanding, and debugging SQL queries (e.g. MySQL, Postgres).
- Experience developing server-side web applications in PHP or a similar language.
- Good knowledge of basic Linux and Windows system administration.
- Working knowledge of TCP/IP networking.
- Understanding of build systems (e.g. CMake, Autotools, Meson).
- Understanding of object-oriented software design, and basic design patterns.
- Familiar with the use of source control systems and bug trackers.
- At least basic knowledge of shell scripting and windows batch files.
- Good written English skills, and ability to write well-structured technical documentation.
- Familiar with configuration management tools such as Puppet or Ansible.
- Familiar with continuous integration workflows.
- Expertise in analysing and debugging performance problems on Linux & Windows systems. Use of tools to analyse application behaviour and network traffic, e.g. Wireshark, tcpdump, strace, sysprof, oprofile.
- C/C++ development experience.
- Experience with High Performance Computing (e.g. Infiniband, MPI).
- Knowledge of high-performance filesystems (e.g. Ceph, Lustre).
- Knowledge of configuration of web, database, LDAP/Kerberos, NIS, NFS, and Samba/SMB servers.
- Knowledge of Docker/OpenStack/Kubernetes/AWS/Azure.