Engineering Ubuntu For The Next 20 Years

I’ve been a VP Engineering at Canonical for 3 years now, building Juju and our catalog of charms. In the last week of January, I was appointed the VP Engineering for Ubuntu at Canonical, where I will now oversee the Ubuntu Foundations, Server and Desktop teams.

Over the past 20 years, Ubuntu has become synonymous with “Linux” to many people. I fondly remember receiving my first Ubuntu CD in the post, shortly after my own Linux journey began in 2003 with booting Knoppix on a school computer. Throughout my career, Linux and open source have been prominent features that I’m very proud of. In the past few years I’ve made contributions to Ubuntu, Arch Linux, and more recently NixOS.

Ubuntu’s recent 20 year milestone is a timely reminder to pause and reflect on what made Ubuntu so exciting, so successful and so captivating to the Linux community. In 2004, the idea of releasing an operating system every six months was laughed off by many, but has now become the norm. Ubuntu builds upon Debian, aiming to bring the latest and very best open source had to offer to the masses. In the past 10 years, we’ve seen huge shifts in the way software is delivered - the success of large-scale cloud based operations necessitated a shift towards more automated testing, releasing and monitoring, and as the open source community around these projects grew, we had to evolve our ways of thinking, designing and communicating about software.

Four Key Themes

As I step into this new role, I’ve reflected on how we can steer the engineering efforts behind Ubuntu. I’ve anchored this vision around four themes: Communication, Automation, Process and Modernisation.

Communication

Communication is a central component of a distributed workforce - whether that workforce is employed by Canonical, members of our community or contributors from our partners. Ubuntu has relied for many years on mailing lists and IRC. These platforms enabled global teams to collaborate for years, and have been invaluable to the community. In 2025 we’re fortunate to have a wealth of communications platforms at our disposal, but we must use these tools strategically to avoid fragmentation.

On Jan 29 2025, the Ubuntu developer mailing list announced that the primary means of communication for Ubuntu developers will be the Ubuntu Community Matrix server. Matrix provides a rich, modern communications medium that is familiar to the next generation of engineers and tinkerers, who will be central to the continued progression of Ubuntu and open source. We’re in good company on Matrix, with many other Linux distributions and projects maintaining a presence on the platform. The recent migration of Ubuntu Forums to the Ubuntu Discourse, further consolidates the range of platforms we use to connect with one another.

To effect much of the change I’m describing in this post, we will need community support. I’ll be encouraging the leads of our internal teams in Ubuntu Foundations, Server and Desktop to be more forthcoming and regular with public updates that will serve two purposes: to share our intentions, progress and dreams for Ubuntu, but also to collaborate on refining our vision, ensuring we deliver a platform that is not just exciting, but relevant for many years to come.

Documentation is a critical form of communication. Our documentation enables our current users, but also illuminates the path for new contributors. Such documentation does exist, but much of it is fragmented across different platforms, duplicated and/or contradictory or simply difficult to find. As a company, and as a community, we must focus on ensuring both existing and potential contributors have access to the information they need on conventions, tools and processes. A good example of where this has already happened is the SRU documentation which was recently rebuilt in line with our documentation practices.

Automation

Delivering a Linux distribution is a monumental task. With tens of thousands of packages across multiple architectures, the workload can be overwhelming - leaving little room for innovation until the foundational work is done. We’re fortunate to benefit from the diligent work done by the Debian community, yet there is a huge amount of work that goes into each Ubuntu release. One of our primary tasks as a distribution is package maintenance. While some may see this as menial or repetitive, it remains critical to the future of Ubuntu, and is a valuable specialist skill in its own right.

Software packaging is a complex and constantly evolving topic. Ubuntu relies heavily on a blend of Debian packages, and our own Snap packaging format. Debian packaging was revolutionary - responsible for huge advancements in the way we thought about delivering software, but as things have moved on some of those tools and practices are beginning to show their age.

I’d like to focus on enriching our build process with modern ideals and processes for automating the version bumps, testing, performance benchmarking and releasing of packages in the archive. High complexity tasks are error-prone and, without sufficient automation, risk becoming overly dependent on a few skilled individuals. We have the same challenge with Snaps, but they benefit from significantly more modern tooling as a consequence of the observations made about Debian packaging over many years.

The goal of this theme is not just to automate as much as possible (thereby increasing our collective capacity), but also to simplify processes where we can. Much of Ubuntu’s build process *is* automated, but those systems are disparate and often opaque to all but our most experienced contributors.

I’ve been inspired by how the NixOS community manages packaging. Every single package for the distro is represented as text files, in a single Git repository, with a universally observable continuous integration and integration testing pipeline (Hydra) that performs version bumps and simple maintenance tasks semi-autonomously. While this model carries its own challenges, there is something alluring about the transparency and accessibility of the systems that assemble, test and deliver software to their users.

Universal Blue, and by extension Project Bluefin, are recent additions to the Linux ecosystem that benefited from thinking hard about the tooling they use to build their distribution. They’ve centered their process around tools with which their cloud-native audience are already familiar.

My suggestion is not to imitate these projects, rather that the open source community is at its strongest when we collaborate and learn from one another. I think we can take inspiration from those surrounding us, and use that to inform our plans for Ubuntu’s future.

Process

Process is closely tied to automation, but is frequently viewed negatively in software engineering, carrying connotations of bureaucracy and slowdowns. In my experience, a well-designed process empowers people to enact changes with confidence.

Ubuntu is built by all of us, in many countries and across all timezones. Concise, well-defined, lightweight processes promote autonomy and reduce uncertainty - enabling people to unblock themselves. Ubuntu is no stranger to process: the Main Inclusion Review (MIR), the aforementioned Stable Release Updates (SRU) process, the process for Snap store requests and many more have contributed to the success of Ubuntu, setting clear guardrails for contributors and ensuring we work to common standards.

My goal over the coming months is to work with you, the people behind Ubuntu, to identify which of these processes still serve us, and which need revising to simplify our work while maintaining our dedication to stability. I’ll consolidate the definitions of these processes, make them searchable, peer-reviewable, and more discoverable. Examples of where this has worked well are the Go proposal process, and the Ethereum Improvement Proposal process - both of which make it trivial to create, track and discuss proposals across the breadth of their respective projects.

If you submit an MIR, or work on an SRU, it should be trivial to understand the status of that request, and to communicate with the team executing that process where needed. If you’re interested in joining our community, it should be simple to get a sense of what is changing across the project, and where you might be able to help.

I’d like to tackle these problems and make these processes as transparent as possible.

Modernisation

The world of computing has evolved dramatically in the last 20 years, and I’m proud that Ubuntu has continually adapted and thrived. In Linux alone there have been huge changes to what is considered “normal” for a Linux machine. Whether it be the introduction of `systemd`, the advent of languages with a focus on memory safety, the huge growth in virtualisation and containerisation technology, or even the introduction of Rust into the Linux kernel itself - the foundations of our distribution must be constantly assessed against the needs of our users.

I was proud to see the announcement last year that the Ubuntu Kernel team committed to shipping the very latest kernels in new versions of Ubuntu, wherever they possibly can. Even if that means shipping a kernel that’s in the release candidate phase, the team will stand by that kernel and continue to support it through the Ubuntu release’s life. While this could appear cavalier at a glance, what it represents is a willingness to rise to the challenge of shipping the very best of open source to our users. I’d like to see more of this. Ubuntu is a flagship Linux distribution and a starting point for many; we must ensure that our users are presented with the very best our community has to offer - even if that means a bit more hustle in the early days of a given release. This is of particular importance for our Long Term Support releases, which are relied upon by governments, financial institutions, educational establishments, nonprofits and many others for years after the initial release date.

We should look deeply at the tools we ship with Ubuntu by default - selecting for tools that have resilience, performance and maintainability at their core. There are countless examples in the open source community of tools being re-engineered, and re-imagined using tools and practices that have only relatively recently become available. Some of my personal favourites include command-line utilities such as eza, bat, and helix, the new ghostty terminal emulator, and more foundational projects such as the uutils rewrite of coreutils in Rust. Each of these projects are at varying levels of maturity, but have demonstrated a vision for a more modern Unix-like experience that emphasises resilience, performance and usability.

Another example of this is our work on TPM-backed full disk encryption, a project which promises encryption of our users’ data with no degradation to their user experience. This feature relies upon cryptographic hardware and techniques that have only recently become available to us, but enable us to deliver the potent combination of security and usability to our users.

Delivering Features

What I’ve shared so far is a high-level overview, and many of the points under the four themes will take time to implement, with most appearing as a series of gradual improvements. You might be wondering whether we’ll focus on the latest trends and features, or prioritise that bug you reported.

While focusing on the latest trends or a single breakthrough feature can yield short-term progress, embracing these principles will create the space for sustained, impactful innovation.

That said, I’ve also been working on a list of incremental features and improvements that we can deliver in the coming months to enhance the Ubuntu experience. You’ll hear more from me and the team leads regularly as we share updates and progress.

Summary

I’m incredibly excited to embark on this journey, and consider it a privilege to serve in this role. Together with the Ubuntu community, Canonical engineers, and our partners, we will build an open-source platform that enables the next 20 years of innovation in computing.

If you have ideas for the future of Ubuntu, or something in this post has resonated with you and you want to be involved either as a community member, or perhaps a future employee of Canonical, I’d love to hear from you.

Jon

49 Likes

Hi, I’m the first comment since no one dared to write one.

Now you won’t feel lonely.

I wish Ubuntu took the idea you mention from NixOS and made it part of its system. But with something simpler than nix as language.

Also, congratulations :partying_face:

8 Likes

I’ll write the second comment, so both of you don’t feel lonely.

A lot of what you said stuff is too smart for me, but I think flathub has something similar to what Nix has, I know flatpak isn’t in the design vision canonical has for Ubuntu, but reading what you said about hydra reminds me of what the flathub bot does with updating dependencies for apps. Again its just something you could take inspiration from.

2 Likes

Congrats!
Taking inspirations from arch/nixos-unstable/guix, are we considering to switch to rolling release model? (That could be an option once we’ve used up all the adjective/animal names:)) Would it even be possible to give support commitments using such release model?

1 Like

Hey! Our release process is definitely on my radar. I am forming some plans here which we’ll speak here as they evolve.

In reality, it’s unlikely we’ll be “switching” to a rolling release model, but there might be some easier ways for you to keep your machine current over time if that’s something you’re looking for.

You can, of course, have your machine track the latest archive today - which essentially gets you to a “rolling Ubuntu” - but note that this is not a recommended model for machines you depend on every day!

7 Likes

On that note I’d like to point out that we already have a rolling release distro :wink:

It is called Ubuntu Core and with 26.04 we’ll hopefully have the Ubuntu Core Desktop version ready so you can enjoy rolling (and self healing !!) packages even on your desktop by then …

10 Likes

6 posts were split to a new topic: Supporting and issue reporting for snaps

The 'on-topic" part is retained here:

Congrats @jnsgruk !
I love all the themes in your plan. The plan is refreshing and provides the proper amount of modernization I feel Ubuntu needs as a first step forward.

Good luck in the new endeavor, can’t wait to see what the future holds for Ubuntu!

2 Likes

Huge congratulations. Looking forward to seeing how you shape Ubuntu.

1 Like

Love to see the openness about future plans and the Nix/NixOS ideas coming into the fold as well!

4 Likes

I enjoy using NixOS which provides great dev experience. Bring the Pros of Nix to Ubuntu would be fantastic!

Keep improving and adapting is a must, otherwise Ubuntu might just like Java (used to be quite popular but only live in the legacy environment that get left far behind).

I don’t know if we have a clear aim or not, but if we are introducing the “nix-like” features, I think it is better to provide a general propose language SDK (just like what pulumi does).

I hope we can provide a not only simple but also ‘no-hidden-workflow’ way to package stuffs, so the community can easily get involved.

3 Likes

The future looks bright and exciting, I myself came from the Ubuntu Forums and I love being here, the collaboration is awesome and we need the community and the documentation becoming non-fractured, we can accomplish everything together.

I look forward to seeing all these new changes.

5 Likes

Jon - Congratulations on your appointment. A linux user since going back to full-time uni at the age of 50 in 1998 (networking and system admin) graduating in 2001, I have been using various Ubuntu flavours now for many years after abandoning Mandrake for Ubuntu many years ago. Currently using Kubuntu I find it smooth and the best linux experience to date. Unfortunately every time I have tried the snap ecosystem I have had bad experiences and so the first thing I do on install is to completely remove snaps. I know I am not alone in my negative experiences, hence the many posts online in how to completely remove them. If the snap ecosytem can overcome the well documented issues such as non-usability by multiple users and slow starting of apps then I for one will be really impressed.

1 Like

Congratulations on your new position! I love the way Canonical is heading, which is supporting software for as long as possible (12 is just crazy) while also not being stuck in the past.

You mentioned automation to make maintaining packages for Ubuntu easier, to which I would like to add, wouldn’t it make sense to get rid some of the traditional .deb packages in favour of already existing snaps?

I feel like snaps are really powerful and can do anything traditional packages can. If there’s no other option but to use the snap, it will have to get better and its remaining issues ironed out.

2 Likes

Cinnamon is the right direction (e.g. I wouldn’t consider Ubuntu w/o Cinnamon).
Especially good to catch former Windows users (much easier to switch from Windows comparing to other DE).
Hope Cinnamon 6.4 will be brought soon to 24.04.

3 posts were split to a new topic: Snaps versus Debian packages

My own personal belief is that i wish (and it is just that) that xMir would’ve been finished through AI engineering; letting Artificial Intelligence go through problems and posting possible solutions.

And i hope that Artificial Intelligence is NOT incorporated into the standard ISO system in any way as it is just a bug-solving tool that can be used through apps (non-native).

The fact that there is an international safety committee on A.I. means that it could get the better of us and therefore I philosophically disagree with A.I. being part of the standard system.

Ubuntu must remain neutral.

Artificial intelligence could work through add-on apps make it possible for Ubuntu Unity to be finished, and beavon knows that would make ‘Ubuntu on desktop’ a winner, if work was re-applied and re-engineered

I feel sorry that we don’t have a modern Ubuntu netbook edition.

As a possible extension to the system I believe ‘watches’ were the next step, although like Ubuntu TV there was a cpu-resource problem yet to be resolved.

Ubuntu is a good system and I wish you the best.

Would be cool if Rhino Linux becomes an official flavor :wink:

Rhino Linux depends on an external repository (pacstall), which immediately disqualifies it from official flavor status as no external repositories are allowed by default in official flavors.

4 Likes