Contact Information:
| Name | Charles |
| Launchpad Page | https://launchpad.net/~charles05 |
| Matrix username | @charles05:ubuntu.com |
I am applying for a PPU to,
gstreamer1.0gst-plugins-bad1.0gst-plugins-base1.0gst-plugins-good1.0gst-plugins-ugly1.0gst-python1.0gst-rtsp-server1.0gstreamer-editing-services1.0gst-libav1.0pipewirewireplumbergst-thumbnailersalsa-libalsa-ucm-confalsa-utils
because,
- I’d like to eliminate delays in getting my work sponsored.
- I’d like to reduce the burden on my sponsors.
- I’d like to be able to sponsor work of others
Who I am
I’m Charles, a software engineer at Canonical focused on the multimedia stack for Ubuntu Desktop. My day-to-day involves maintaining GStreamer, PipeWire, WirePlumber, and related packages, as well as triaging and fixing audio/video bugs across the stack. Before joining Canonical I spent most of my career building software on top of Ubuntu, so I came in as a heavy user of the distribution before becoming a contributor to it.
My Ubuntu Story
I first installed Ubuntu somewhere around 2008 from a CD stuck to a magazine. I’ve distro-hopped a fair bit since out of curiosity, but Ubuntu has been the base for most of my professional work. I joined Canonical last year and have been contributing directly to the distribution since.
Examples of my work
- Sponsored upload list
- Uploaded packages
- I’ve been looking after the Ubuntu deltas for gst-plugins-good and gst-plugins-bad since joining Canonical. The delta for -good has recently been eliminated thanks to these recent efforts.
- GStreamer is adopting Rust in recent years. I’ve learned about the Debian Rust packaging process and made contributions, including,
- I’ve also taken care, with the help of my wonderful sponsors, the Pipewire merges
- I’ve developed a new module for Wireplumber to support Canonical’s permission prompting roadmap for Microphone prompting (see here)
- In addition to packaging, I have done a lot of triaging in the GStreamer and Pipewire Launchpad projects, and continue to monitor things there.
- I’ve also contributed a few fixes upstream GStreamer and Wireplumber,
- I participated in the early development of GNOME’s new thumbnailers and worked to get them in Ubuntu quickly. MRs here.
- I’ve done some SRU’s,
- I’ve done some MIR’s
Areas of work
I’ve mostly worked on multimedia related packages as seen above. I’ve also helped with GNOME packaging, specifically GNOME Remote Desktop, Nautilus (GNOME Files) and LocalSearch (formerly Tracker Miners). I’m very grateful to the sponsors who have helped me with the uploader journey, and colleagues that have reviewed by work, in particular,
- Sebastien Bacher
- Alessandro Astone
- Jeremy Bícha
- Mate Kukri
- Didier Roche-Tolomelli
- Ken VanDine
- Daniel Van Vugt
- Marco Trevisan
Things I could do better
I could do better building out my understanding of Bluetooth and the kernel audio stack, since these are sore spots in the user experience today. I should get more involved in Debian contributions, making sure my Ubuntu-focused fixes are shared there. While I consider the core changes I’ve made have been accurate, I feel I’ve made too many mistakes handling the “metadata”; things like changelogs, LP bug references, and the like. I’ve been working to improve my local workflow to address this.
Plans for the future
General
I plan to continue maintenance and triage of the multimedia components I’ve applied for PPU privileges here. I’d also like to improve our Desktop UI for audio configuration once I build more experience there. There are many useful features in PipeWire/WirePlumber that are hard for users and contributors to discover; the documentation is sparse and the configuration language is tricky. I’d like to help improve that situation.
What I like least in Ubuntu
I joined when the new documentation effort was underway. My initial struggle was a lack of consistency in packaging workflows across different components, and a “choose your own adventure” approach to tooling that was difficult to navigate even as a Canonical employee with direct access to experts. For community contributors the barrier is process difficulty rather than technical complexity, which I suspect costs us contributions. The new documentation is a big step forward and I hope on-boarding is easier today than when I started. I’d like to contribute to that effort where I can.
I also find Launchpad can be awkward to use compared to forges like GitLab and GitHub, and the workflows they’ve standardised in the wider community.
Endorsements and Comments
Please leave your endorsements and comments following the template below, it is much much appreciated!
## Sponsoring feedback
* Please fill us in on your shared experience.
* How many packages did you sponsor? A list of sponsored packages can generated [via UDD here](https://udd.debian.org/cgi-bin/ubuntu-sponsorships.cgi)
* How would you judge the quality?
* How would you describe the improvements?
* Do you trust the applicant?
## Specific experiences of working together
*Please add good examples of your work together, but also cases that could have handled better.*
## Areas of improvement and next steps
What is the journey you see ahead of the applicant, the next steps they should take, the next things they likely have to learn and the next mountains to climb?