Build Engineering
Codethink has been contributing and innovating in advanced software build engineering projects for over a decade. We understand the challenges of maintaining, constructing, testing and releasing complex software at scale.
Our work involves maximising throughput and productivity by reducing cycle times, increasing reliability and cutting wasted time and effort through better organisation, processes and tooling. We have particular expertise in CICD setup and operation, source mirroring, local and remote artifact caching, build sandboxing and operational scaling via remote execution.
Build Engineering Projects
Bazel Deployments At Scale
Engagements with a series of Fortune 500 technology companies to adapt their software build instructions to work with Bazel remote cache and build capabilities, dramatically increasing overall throughput and productivity, by reducing build and test times. Design and maintenance of distributed build and test backends to work with the build instructions, using a variety of technologies including Kubernetes, Redis and Amazon S3.
BuildGrid and BuildBox
Original development of BuildGrid and BuildBox. These projects provide sandboxing, runner and caching services and Python-based remote execution engine which comply with and implement Google’s Remote Workers API and Remote Execution API specifications for parallelized software build and other workloads at scale.
Chromium Embedded Framework
Implementation of the Chromium Embedded Framework package (libcef) for Buildroot, simplifying web browser integration to in-vehicle infotainment across multiple platforms for a leading automotive company.
Freedesktop-SDK
Design and maintenance of freedesktop-sdk. The freedesktop-sdk project provides a neutral Linux platform which can build flatpak runtimes, snaps, containers and images.
SOTA Integration
Integration of software over-the-air update platform (Mender) to smart waste management fleet based on NVIDIA Jetson TX2 using Yocto. Including fleet management demonstration, image creation, partition management and U-Boot changes.
CI/CD as a Service
Work to deliver a unified technology stack with CI/CDaaS for an international service-provider client, to be offered as a value-added solution to their customer base.
CMake Project Improvements
Improved build processes for a cross-compiled embedded Linux system and implemented artifact caching using client’s preferred technologies (CMake, Buildroot, Artifactory)
Jenkins Infrastructure Improvements
Support for various international-scale organizations to improve their build and integration processes, optimizing Jenkins-based systems to improve reliability, throughput and build times.
Supply Chain Source Mirroring
Implementation of a custom solution to provide multi-cloud, multi-region source code mirroring for an international-scale company. This re-used techniques from established open source projects combined our client's in-house CI/CD infrastructure to provide whole-of-life source code supply chain forensics capability on critical projects.
Software Integration Tooling
Creation of a minimalist open source software integration tool written in Python to construct embedded Linux-based operating system images for a range of applications including OpenStack and in-vehicle infotainment.