Jon Seager | Membership Application

Hello all!

I’d like to apply for Ubuntu Membership :slightly_smiling_face:. Though I work for Canonical, all of my work on Snaps has been in my own time, and I’ll try to make it very clear throughout this application the things which I have done while “on the clock” for Canonical, but which I feel are in addition to my core role.

Links

Contributions

  • Terraform Snap: I took over maintenance of the Terraform snap around May 2022. At that time it was very far behind in terms of releases with around ~3000 daily active users. Today it’s up to date with over 15,000 daily active users. I implemented a bunch of automated testing and an mechanism to bump the version and automatically release so that the snap is always fresh. I recently transferred the snap to the Snapcrafters org, but will still be the primary maintainer.

  • Mattermost Desktop Snap: I started helping maintain the Mattermost Desktop snap around Sept 2021. I started with just version bumps, but have since migrated the snap from core18core20core22. I’ve also done work on bugfixes, additional interfaces, and implemented a new command-chain script which is able to migrate between versions of Mattermost’s config file to prevent a common issue upon upgrade. You can see my list of contributions in the history.

  • Signal Desktop Snap: I took on the task of converting the snap to build from source such that we could provide an arm64 build. This was done across two commits (1, 2). I’ve subsequently fixed a couple of issues that had been stale, and provided some better automation, outlined below.

  • Snapcrafters CI: I only recently joined the Snapcrafters “formally”. The first thing I tackled after the Signal Desktop arm64 work was a centralised CI setup for the Snapcrafters org that could handle automated version bumps, promotion of snaps between channels, automatic build/release across architectures, automated testing with screenshots of desktop applications and automated call for testing. The resulting repository can be found on Github. It contains 8 re-usable Github Actions that are slowly rolling out across the Snapcrafters projects (signal-desktop workflows, example release flow, automated call for testing with screenshots). I also did a full write up more recently on my blog: https://jnsgr.uk/2024/03/simplifying-snap-gui-testing/. The Snapcrafters Dashboard is based on my Charm Engineering Releases page, which I set up a couple of years ago.

  • Parca Snaps: I did the initial implementation of the Parca Snap. The upstream chose to use Goreleaser to build the snap, and I implemented their automated release/promotion mechanism, as well as some basic documentation of the snap’s configuration options. We also integrated this with their existing release flow. You can see my contributions here. Shortly after they took over maintenance and became verified publishers. I did the same for Parca Agent, you can see the contributions here. This one was actually a little more complex as I also needed to provide a patch for snapd to update an interface.

  • OpenTofu Snap: When OpenTofu was first announced I helped them add snap support as it was very close (essentially identical) to Terraform. They preferred to use Goreleaser to build, and I guided them through the process of adding an alias and having classic confinement granted. Commits seen here.

  • Zinc Charm: ZInc is a lightweight Elasticsearch alternative written in Go. When it was first announced (on Hacker News, I think) I wrote a quick charm, which has subsequently been used in various demos both inside and outside Canonical. The source code is on Github, and includes both the charm code, and a ROCK for Zinc.

  • Parca Operators: Around the time that I wrote the Parca snaps, I also wrote handful of charms to simplify the deployment across multiple clouds. I wrote a blog post about that which you can see here: https://jnsgr.uk/2022/08/continuous-profiling-juju/. Earlier this year, I transferred the charms to the Canonical Github org for maintenance by the Observability team. Links for repos: parca-operator, parca-k8s operator, parca-agent-operator, polar-signals-cloud-integrator-operator

  • Ubuntu Matrix: I was instrumental in the early decision making that kicked off our work on Matrix as a comms solution for the community, and for Canonical. Since then, all of the good work has been done by others, but I’m still frequently in touch with Mauro and the implementation team here to help steer the technical roadmap.

  • Performance Engineering in Ubuntu: Outside of my regular Canonical responsibilities, I have been involved with the re-enablement of frame pointers in Ubuntu, and been a driving force behind ensuring that we include more performance tooling by default in Ubuntu - ably assisted by those in the Kernel and Foundations team who have executed the actual implementation! I recently gave a talk on these topics at FOSDEM 2024.

  • Craft Tooling for Nix: I maintain a Nix Flake that packages Snapcraft, Rockcraft and Charmcraft with Nix, making these tools available to anyone on NixOS and enabling contributors from other ecosystems: https://github.com/jnsgruk/crafts-flake. I’m in the process of having these applications upstreamed into nixpkgs.

  • Evangelism: I have appeared on multiple podcasts over the past year including the “Ask Noah Show” (talking about Juju, Charms and the Ubuntu Summit), the “Self Hosted Show” (talking about Juju and Nix) and “Nerding out with Viktor” talking about Nix, Snaps and Ubuntu Core. I also gave talks at the first of the renewed Ubuntu Summit on Juju and the state of the Charm ecosystem

  • Broader Canonical Involvement: I’m lucky enough to work for Canonical and do what I love for a living, and even luckier to get the broad exposure to Canonical products that my role permits! My day to day role is to drive the development of Juju & Charms, but I’m frequently involved with the Desktop, Server, Foundations teams, cloud-focused teams such as LXD, Openstack and MAAS, and core product teams like snapd.

Plans

Over the coming months, I plan to:

  • Roll out updates and automation across Snapcrafters’ snaps (Dashboard)
  • Onboard and mentor new Snapcrafters, guiding them through their first contributions and beyond
  • Aim to get more first-party vendors into the store as verified publishers
  • Keep increasing the attractiveness of Ubuntu to performance engineers and SREs
  • Raise the profile on how combining Snaps, Charms & Rocks can supercharge software operations

Thank you for your consideration!

9 Likes

Whenever a new person arrives on the Snapcrafters team and brings new perspectives, careful thoughtfulness, and energy, everyone benefits. We on the Snapcrafters team get re-energised, users get fresh new software, and with the knowledge sharing Jon has done, we learn new stuff along the way.

It has been an absolute pleasure to have Jon on the Snapcrafters team. He has helped improve things with quiet but steady progress.

Once again, I’m here to thoroughly endorse Jon’s work. Thanks to Jon’s significant and sustained contributions, we are ahead of where we were a year ago. Excellent work. :heart:

I was lucky enough to be sponsored to attend the recent Ubuntu Summit in Riga. Jon is just as excellent in person as he is online.

4 Likes

launchpad link is wrong

Oops. Fixed. Thank you!

Working with Jon has been an absolute pleasure. Jon is, undoubtedly, the person I would most like to have as an Ubuntu member. He has vision, but he is also pragmatic and able to get things done quickly and efficiently. He values transparency, openness, and inspires everyone around him to be community-focused.

@jnsgruk has been extremely supportive of the Matrix project, pushing the accelerator multiple times, checking with me and everyone involved, and making sure we had all the resources we needed. With his help, and the help of @varshigupta, @gschiano, @merkata and the IS DevOps team, the Matrix server, Synapse is being charmed together with Mjolnir, and IRC bridge. This means that once the work is completed, anyone using Ubuntu and Linux will be able to benefit from an easy to deploy and maintain, scalable implementation of Matrix. And this is not all, the push for open communications with Matrix goes on in the next release cycles.

Jon is often seen at conferences, both virtual and in-person, hosting sessions, engaging with like-minded people, and giving interviews with the most positive attitude. His enthusiasm inspires me to do more for open source. I would also like to mention that @jnsgruk helped me, @aaronprisk and @nuccitheboss by spotlighting UbuCon at SCaLE.

Jon’s contributions help the Ubuntu community. My only wish, beyond his membership, is that we get more people like him involved in the Ubuntu project.

4 Likes

Hey jnsgruk

I look forward to processing your application, April 4th at 20:00.

'Til we meet again
Cheers

1 Like

I can’t endorse Jon highly enough. He’s been a great help for Snapcrafters, building a large part of our CI and taking on maintenance of a lot of snaps. He has quickly risen through the ranks and is now one of three Snapcrafters admins. He’s also helping to coach some of the more recent entrants.

In addition to the incredibly long list in his original post, Jon was also an important figure in other efforts, such as our adoption of Matrix. He connects the right people and pushes for action at pivotal points. Canonical’s internal Mjolnir stress-test, Juju’s early adoption of Matrix, and the Matrix Charms have been very valuable to get this initiative going.

I look forward to keep working with him, both on technical stuff and on improving the Ubuntu community.

3 Likes