# Jon Seager > Personal blog and portfolio of Jon Seager, VP Engineering for Ubuntu at Canonical. > Writing about Ubuntu, Linux, open source, Nix, software engineering, and leadership. Jon is a technical leader and software engineer working for Canonical as VP Engineering. His primary focus is leading the development of Ubuntu and Juju. In his own time, he's a keen open source software advocate with a long history of tinkering with the Linux desktop. This site is built with Go, Hugo, and Nix. The source is available on GitHub: https://github.com/jnsgruk/jnsgr.uk ## Pages - [Curriculum Vitae](https://jnsgr.uk/cv/index.md): Jon's professional experience, career history, education, and contact details ## Blog Posts - [Investing in automated C to Rust translation](https://jnsgr.uk/2026/08/automating-c-to-rust-translation/index.md): Canonical is funding a 3-year PhD at the University of Bristol to investigate whether large, mature C codebases can be translated into safe, correct and maintainable Rust. - [Try the `upki` preview for Ubuntu](https://jnsgr.uk/2026/07/upki-preview-for-ubuntu/index.md): Development of the `upki` project, which aims to bring browser-grade cryptography primitives to low-level Linux system utilities, continues at pace. As of now, users of Ubuntu 26.04 LTS and the Ubuntu 26.10 development branch can try out the `upki` client in a preview provided through a PPA. - [Ubuntu Summit 26.04: Personal Highlights](https://jnsgr.uk/2026/06/ubuntu-summit-26/index.md): I recently attended Ubuntu Summit 26.04, a twice-yearly showcase for innovative and ambitious work across Ubuntu, open source, and the wider technology ecosystem. This post covers some personal highlights, from the launch of Canonical Workshop to talks on Puter, bootc, Gleam, Collabora Office, Arm Performix, and upki. - [The future of AI in Ubuntu](https://jnsgr.uk/2026/04/ai-in-ubuntu/index.md): AI tools are becoming ubiquitous. Adoption across the tech industry has been mixed, both in terms of which projects are embracing "AI" technologies, and in how companies are structuring their adoption This post details how AI will play a part in both Canonical and Ubuntu's future, my framework for classifying AI features in the OS, and how Canonical is currently approaching adoption internally. - [ntpd-rs: it's about time!](https://jnsgr.uk/2026/03/ntpd-rs-its-about-time/index.md): Ubuntu is transitioning to the Rust-based ntpd-rs as its default time synchronization utility, replacing chrony, linuxptp, and gpsd to deliver a unified, memory-safe solution for NTP, NTS, and PTP. This move, in partnership with the Trifecta Tech Foundation, strengthens Ubuntu’s resilience goals, with full adoption planned across the Ubuntu 26.10 and 27.04 releases. - [Brewlog: Coffee & Agents](https://jnsgr.uk/2026/03/brewlog-coffee-and-agents/index.md): I built a self-hosted coffee logging platform with Rust, Axum, SQLite and Datastar. The project was my most complex agentic coding effort to date, with Claude Code acting as my long‑lived pair‑programmer for almost all of the implementation. This post covers the motivation, design decisions, and what I learned about building non-trivial software with AI assistance, as well as some patterns I've adopted for agentic coding. - [An update on upki](https://jnsgr.uk/2026/02/upki-update/index.md): This post provides an update on the Canonical-supported upki project, which brings browser-grade Public Key Infrastructure to Linux through the efficient CRLite data format, with the core revocation engine now functional and available to test. Beyond current progress, this post explores broader integration, performance, and future capabilities like Certificate Transparency enforcement and Merkle Tree Certificates. - [Developing with AI on Ubuntu](https://jnsgr.uk/2026/01/developing-with-ai-on-ubuntu/index.md): AI-assisted tooling is becoming more and more common in the workflows of engineers at all experience levels. As I see it, our challenge is one of consideration, enablement and constraint. We must enable those who opt-in to safely and responsibly harness the power of these tools, while respecting those who do not wish to have their platform defined or overwhelmed by this class of software. - [Addressing Linux's Missing PKI Infrastructure](https://jnsgr.uk/2025/12/addressing-linuxs-missing-pki-infra/index.md): Announcing work on `upki`, a universal tool for Linux and other Unix-like operating systems for handling X.509 certificate revocation lists in system utilities. - [Ubuntu Summit 25.10: Personal Highlights](https://jnsgr.uk/2025/11/ubuntu-summit-25/index.md): I recently had the privilege of attending the Ubuntu Summit 25.10 - an event hosted by Canonical to celebrate the release of Ubuntu 25.10, and provide a platform for open source projects from around the globe to showcase their work. This post includes some personal highlights and a brief summary of some of the talks. - [Ubuntu Engineering in 2025: A Retrospective](https://jnsgr.uk/2025/10/ubuntu-25/index.md): In February this year, I posted a manifesto to to modernise the design, build and release of Ubuntu. This week, we released Ubuntu 25.10 Questing Quokka, which was the first full engineering cycle under this new manifesto, This post is a look back at the progress made since that original post. - [The Immutable Linux Paradox](https://jnsgr.uk/2025/09/immutable-linux-paradox/index.md): Immutable Linux distributions are gaining popularity due to their resilience and security, with mainstream operating systems adopting similar principles. This post explores how different Linux distributions achieve immutability, the trade-offs, and why you should give it a try! - [Crafting Your Software](https://jnsgr.uk/2025/07/crafting-your-software/index.md): Packaging software is notoriously tricky. Every language, framework, and build system has its quirks, and the variety of artifact types — from Debian packages to OCI images and cloud images — only adds to the complexity. This blog is a deep-dive on Canonical's "craft" tools, how they evolved, and how to use them to simplify package maintenance. - [Introducing Debcrafters](https://jnsgr.uk/2025/06/introducing-debcrafters/index.md): Introducing Canonical's new Debcrafters team, dedicated to maintaining the health of the Ubuntu Archive, but also to fostering collaboration among Linux distributions, including paid time to contribute elsewhere in the open source ecosystem. - [From NixOS to Ubuntu](https://jnsgr.uk/2025/06/from-nixos-to-ubuntu/index.md): This year, I moved from NixOS to Ubuntu. This post outlines my experience through that process, as well as a new philosophy for how I manage my machine and configuration which embraces the defaults and more contemporary applications. - [Supercharging Ubuntu Releases: Monthly Snapshots & Automation](https://jnsgr.uk/2025/05/supercharging-ubuntu-releases/index.md): We're building a new, automated release system for Ubuntu to make releases more reliable, observable, and testable. To better inform the design of that process, we're introducing monthly snapshot releases. - [Adopting sudo-rs By Default in Ubuntu 25.10](https://jnsgr.uk/2025/05/adopting-sudo-rs-by-default-in-ubuntu/index.md): A follow up to "Carefully But Purposefully Oxidising Ubuntu" in which I describe the plan to migrate to sudo-rs by default in Ubuntu 25.10. Additionally, I cover some updates on the progress with uutils coreutils, and future plans for SequoiaPGP in APT and Ubuntu. - [Revitalising Ubuntu Project Documentation](https://jnsgr.uk/2025/04/revitalising-ubuntu-project-documentation/index.md): An article outlining my plan to revamp Ubuntu's 'project documentation', illuminating the path for new contributors and enabling better distributed decision making. - [Carefully But Purposefully Oxidising Ubuntu](https://jnsgr.uk/2025/03/carefully-but-purposefully-oxidising-ubuntu/index.md): This post explores modern equivalents of foundational system utilities such as coreutils and sudo, introduces an experimental utility for testing them, and maps out a path to their widespread adoption in Ubuntu. - [Own Your Calendar](https://jnsgr.uk/2025/03/own-your-calendar/index.md): Managing your time can be hard, particularly when occupying leadership positions. This is exacerbated by remote work, where the importance of owning your calendar is paramount both for you, and the people working with you. A departure from my usual technical content, this post covers my lessons learned in managing my time, and my calendar while working remotely at Canonical over the past 4 years. - [Engineering Ubuntu For The Next 20 Years](https://jnsgr.uk/2025/02/engineering-ubuntu-for-the-next-20-years/index.md): In the last week of January 2025, I was appointed VP Engineering for Ubuntu at Canonical, meaning I'll oversee the Ubuntu Foundations, Server and Desktop teams going forward. This post outlines my vision for that role, and how I hope to evolve the distribution, the engineering practices behind it, and the community over the coming years. - [Packaging the Multipass Flutter GUI for NixOS](https://jnsgr.uk/2025/01/packaging-multipass-flutter-app-for-nix/index.md): Multipass' GUI application recently got a huge rework. Implemented in Flutter, the GUI provides a much improved way to manage VMs. This post outlines the work I did to update the Multipass package in nixpkgs to build and include the Flutter application, which should serve as a useful reference for anyone looking to package a native Linux Flutter application in with Nix. - [Experimenting with Rust, Nix, K6 and Parca](https://jnsgr.uk/2024/12/experiments-with-rust-nix-k6-parca/index.md): A post outlining my journey into Rust, and how I reimplemented the server that powers this very website in Rust, then benchmarked both the old and new implementation with K6, investigated a performance issue with Parca and then automated the whole lot using Nix! - [Hot Tub Monitoring with Home Assistant and ESPHome](https://jnsgr.uk/2024/11/hot-tub-monitoring-with-esphome/index.md): A short blog post explaining how I replaced a proprietary wireless temperature monitor for my hot tub, with a simple ESP32 based micro-controller and a cheap bluetooth pool thermometer, all linked up with Home Assistant. - [Writing a Home Assistant Core Integration: Part 2](https://jnsgr.uk/2024/10/writing-a-home-assistant-integration/index.md): Part 2 of a micro-series of blog posts that outlines my journey toward authoring a Home Assistant Core integration for the Roth Touchline SL heating system. This post covers the actual build and upstream contribution of the Home Assistant Core integration. - [Writing a Home Assistant Core Integration: Part 1](https://jnsgr.uk/2024/09/pytouchlinesl/index.md): Part 1 of a micro-series of blog posts that outlines my journey toward authoring a Home Assistant Core integration for the Roth Touchline SL heating system. This first post covers the design and build of a Python API client for Roth's upstream API that controls the underfloor heating systems. - [Libations: Tailscale on the Rocks](https://jnsgr.uk/2024/08/tailscale-on-the-rocks/index.md): A deep dive into my home grown cocktail recipe app which speaks Tailscale natively using `tsnet`, and serves up delicious drinks direct to your tailnet. Libations is built with Go, Nix and Vanilla Framework. - [How I Computer in 2024](https://jnsgr.uk/2024/07/how-i-computer-in-2024/index.md): An extended "uses" post that outlines the hardware I'm currently using, the software and tools that I use to get things done, and how I configure things. - [Workstation VMs with LXD & Multipass](https://jnsgr.uk/2024/06/desktop-vms-lxd-multipass/index.md): An overview of Multipass and LXD, and how I use them for creating, managing and enjoying virtual machines on my workstations and servers. I use Multipass for creating 'headless' development machines, and I break out to LXD for more complex scenarios like booting and testing desktop distributions. - [Tracking Releases & CI Across Software Teams and Forges](https://jnsgr.uk/2024/05/tracking-software-across-teams/index.md): A walkthrough of a simple release & CI tracking system I built for keeping track of the various teams I manage at Canonical using a small Go application, Hugo and Github Actions - [Secure Boot & TPM-backed Full Disk Encryption on NixOS](https://jnsgr.uk/2024/04/nixos-secure-boot-tpm-fde/index.md): An explanation of how to enable secure boot on NixOS, using a community project named 'Lanzaboote', and further how to automatically unlock a LUKS-encrypted disk using a TPM with systemd-cryptenroll. - [Simplifying Test & Release of Snapped GUI Apps](https://jnsgr.uk/2024/03/simplifying-snap-gui-testing/index.md): The community-led organisation Snapcrafters maintains hundreds of Snap packages, with hundreds of thousands of users. This post looks at an upgraded test/release process with automated screenshotting of GUI apps, and a new Github Actions based workflow. - [A homelab dashboard for NixOS](https://jnsgr.uk/2024/03/a-homelab-dashboard-for-nixos/index.md): The `homepage-dashboard` NixOS service previously enabled the deployment of the wonderful `homepage` dashboard, but its configuration was not handled natively in Nix by the module. This post shows how I added support for native configuration, and how you can migrate. - [Contributing Scrutiny to nixpkgs](https://jnsgr.uk/2024/02/contributing-scrutiny-to-nixpkgs/index.md): A follow on from my last post, outlining the process of upstreaming Scrutiny to nixpkgs to make it easier to consume, and have it included in future NixOS releases. - [Packaging Scrutiny for NixOS](https://jnsgr.uk/2024/02/packaging-scrutiny-for-nixos/index.md): A detailed walkthrough how I packaged Scrutiny, a S.M.A.R.T disk monitoring tool, for NixOS. Includes details of creating a NixOS module and using the NixOS testing framework to validate its functionality. - [Integration testing with NixOS in Github Actions](https://jnsgr.uk/2024/02/nixos-vms-in-github-actions/index.md): A write up of how I boot KVM accelerated NixOS VMs on Github Actions runners in order to run end-to-end tests for my packages. - [Building a blog with Go, Nix and Hugo](https://jnsgr.uk/2024/01/building-a-blog-with-go-nix-hugo/index.md): Documenting how I render, serve, build and deploy my personal website and blog using a combination of Go, Hugo, Nix and Fly.io. - [Continuous Profiling for Juju with Parca](https://jnsgr.uk/2022/08/continuous-profiling-juju/index.md): (Repost) A write-up of my adventures with Parca, and building a Snap package, as well as a set of charms for driving Parca and profiling applications run with Juju on machines and Kubernetes. - [Zero-Trust SSH on Microsoft Azure](https://jnsgr.uk/2020/10/zero-trust-ssh-azure/index.md): (Repost) Building a zero-trust, serverless authentication system for SSH on Microsoft Azure, complete with custom ssh-agent and serverless certificate authority.