
Software Engineer - Python - Container Images
- Role
- DevOps
- Experience
- Mid
- Company size
- Enterprise
Open to Anywhere in EMEA. Set where you work from to check your eligibility.
No BS summary
Software engineer for Ubuntu-based container images, with Python, container image building, CI/CD, Linux administration, and container orchestration experience. Remote role for EMEA, from graduate to mid-senior level, with up to 15% global travel.
Core skills
Required skills
The Open Container Initiative (OCI) is a lightweight, open governance structure (project), formed under the auspices of the Linux Foundation, for the express purpose of creating open industry standards around container formats and runtimes. The OCI was launched on June 22nd 2015 by Docker, CoreOS and other leaders in the container industry.
The OCI currently contains three specifications: the Runtime Specification (runtime-spec), the Image Specification (image-spec) and the Distribution Specification (distribution-spec). The Runtime Specification outlines how to run a “filesystem bundle” that is unpacked on disk. At a high-level an OCI implementation would download an OCI Image then unpack that image into an OCI Runtime filesystem bundle. At this point the OCI Runtime Bundle would be run by an OCI Runtime.
This entire workflow should support the UX that users have come to expect from container engines like Docker and rkt: primarily, the ability to run an image with no additional arguments:
- docker run example.com/org/app:v1.0.0
- rkt run example.com/org/app,version=v1.0.0
To support this UX the OCI Image Format contains sufficient information to launch the application on the target platform (e.g. command, arguments, environment variables, etc). This specification defines how to create an OCI Image, which will generally be done by a build system, and output an image manifest, a filesystem (layer) serialization, and an image configuration. At a high level the image manifest contains metadata about the contents and dependencies of the image including the content-addressable identity of one or more filesystem serialization archives that will be unpacked to make up the final runnable filesystem. The image configuration includes information such as application arguments, environments, etc. The combination of the image manifest, image configuration, and one or more filesystem serializations is called the OCI Image.
Docker is donating its container format and runtime, runC, to the OCI to serve as the cornerstone of this new effort.
The distribution specification reached v1.0 in May 2020 and was introduced to OCI as an effort to standardize the API to distribute container images. However, the specification is designed generically enough to be leveraged as a distribution mechanism for any type of content.
The Open Container Initiative is an open governance structure for the express purpose of creating open industry standards around containers.opencontainers.org/community.
What you'll do
- Build robust, scalable, leading-edge container images
- Work on automated CI/CD processes for building, testing and publishing our container images
- Write tools and tests for assessing security compliance and cloud-native compatibility
- Participate in strong engineering process through code and architectural review
- Contribute, both as a user and developer, to the improvement of our Python- and Go-based container-building tools
- Provide technical feedback for the team’s decision-making process
- Engage with the open-source community as a subject-matter expert
- Grow our knowledge base and write documentation
- Work in a collaborative, agile and globally distributed environment
- Mentor and help hiring
- Work from home with global travel up to 15% for internal and external events
What they require
- You are knowledgeable and passionate about software development
- You are a team player and have experience in collaborative development
- You have worked with CI/CD systems (e.g. Jenkins, GitHub Actions, Concourse CI, etc.)
- You are familiar with GitOps principles and workflows
- You have a track record of delivering timely, high-quality software
- You have experience building container images
- You master at least one container management/orchestration tool (e.g. Docker, Kubernetes, etc.)
- You have experience with Python
- You are experienced with Linux systems administration and package management
- You have strong written and verbal communication skills to convey technical concepts
- You bring clarity to technical and engineering discussions
- You are someone who strongly believes that sharing is caring, and knowledge is power
- Your skills range from those of a Graduate to a mid-senior Software Engineer
- You have a Bachelor’s or equivalent in Computer Science, STEM or a similar degree
Benefits
- Distributed work environment with twice-yearly team sprints in person
- Personal learning and development budget of USD 2,000 per year
- Annual compensation review
- Recognition rewards
- Annual holiday leave
- Maternity and paternity leave
- Team Member Assistance Program & Wellness Platform
- Opportunity to travel to new locations to meet colleagues
- Priority Pass and travel upgrades for long-haul company events
- Performance-driven annual bonus or commission
London-based software company, developer of Ubuntu
What people say about this company
3.6/ 5
- Employees appreciate the company's commitment to open-source software and its impact on the tech community.
- Many enjoy the flexibility of remote work and the work-life balance offered.
- Some reviews mention a lack of clear career progression and development opportunities.