Application - Ubuntu Contributing Developer - Mitchell Augustin
I, Mitchell Augustin, apply for Ubuntu Contributing Developer. I am applying because:
- I’d like to formally certify my membership and involvement in the Ubuntu community
- I’d like to denote my progress incrementally as I work towards Ubuntu upload rights
- Name:
Mitchell Augustin - Launchpad Page:
https://launchpad.net/~mitchellaugustin/
Who I am
I am a software engineer based in St. Louis, Missouri with a focus on operating system development. Computers and technology have been my passion for as long as I can remember. I began learning about web design and scripting when I was seven, and I quickly moved on to writing desktop software with Java around age ten. During my teenage years and into adulthood, I created and maintained a plethora of different applications for various platforms, which collectively acquired several thousand users, and allowed me to gain some experience as the leader of my own app/project communities. Many of these applications were developed or hosted on Ubuntu systems. Prior to joining Canonical, I was a student at Purdue University, where I received my B.S. and M.S. in Computer Science in '22 and '23 (also focused mainly on operating system development and research).
Outside of technology, I am also an avid rock climber. ![]()
My Ubuntu story
I’ve been an Ubuntu user since around 2014, when I first installed Trusty on an old computer that I wanted to repurpose into a server. From around 2014-2019, I continued to daily drive Ubuntu as my server operating system of choice, and from 2019 onward, I became a more active user of various Linux desktops, eventually resulting in all of my devices running Ubuntu as their primary OS after a bit of distro-hopping.
In 2024, I joined Canonical as a software engineer on our Nvidia DGX squad in Partner Engineering, where I am now the technical lead.
Community-wise, I am also a member of ubuntu-bugcontrol.
Examples of my work / Things I’m most proud of
- OVMF/edk2 - Eliminated 5+ minutes per boot of extra boot time in VMs with large GPUs
- Bluez improvements:
- Bug #2119741 “Bluetooth device does not reconnect after being pa...” : Noble (24.04) : Bugs : bluez package : Ubuntu
- I contributed to testing / root causing this issue internally, and also contributed to the SRU justification and verification. This SRU was considered critical from Nvidia’s standpoint, and our work in resolving it helped unblock a platform release.
- Bug #2119741 “Bluetooth device does not reconnect after being pa...” : Noble (24.04) : Bugs : bluez package : Ubuntu
- MAAS: Fixed bug that caused MOK enrollment process initiated by DKMS driver installations to result in unbootable systems: Bug #2111335 “MOK enrollment flow is disrupted on (at least) DUT...” : Bugs : MAAS
- gnome-shell / Ubuntu Desktop:
- gnome-shell patches:
- Fixed broken WPA enterprise connection menu: Bug #2120331 “[SRU] status/network: Fix connecting to WPA[2] Ent...” : Bugs : gnome-shell package : Ubuntu
- Improved icon update speed on adapter disconnection: Bug #2120734 “Update Wi-Fi icons between disconnect and adapter ...” : Bugs : gnome-shell package : Ubuntu
- I’ve also verified and written several gnome-shell test plans for other users’ patches:
- Bug #2120734 “Update Wi-Fi icons between disconnect and adapter ...” : Bugs : gnome-shell package : Ubuntu
- Bug #2121786 “Using a custom theme leaks 10-15 MB per hour” : Bugs : gnome-shell package : Ubuntu
- Bug #2106813 “VPN toggle button not working in gnome shell” : Bugs : gnome-shell package : Ubuntu
- Bug #2115948 “Accessibility issues in Gnome Shell/GDM/Unlock” : Bugs : gnome-shell package : Ubuntu
- gnome-remote-desktop verifications:
- gnome-shell patches:
- NetworkManager and wpa_supplicant bug fixes:
- wpasupplicant: Fixed a bug that caused not all APs to be displayed in high-density areas: Bug #2117180 “wpa_supplicant DEFAULT_BSS_MAX_COUNT is too low fo...” : Bugs : wpa package : Ubuntu
- wpasupplicant: Found root cause / fixed an issue that prevents the password re-entry prompt from appearing on WPA3 networks*: Bug #2125203 “wpa_supplicant does not specify disconnection reas...” : Bugs : wpa package : Ubuntu
- *still awaiting final hostap upstream sign-off before merging to stable releases, since we want their feedback to ensure stability
- Wi-Fi hotspot doesn’t work with UFW or Docker*: Bug #2128668 “Wi-Fi hotspot startup does not configure firewall ...” : Bugs : network-manager package : Ubuntu
- *Patch works, but is still awaiting sponsorship
- ubuntu-drivers: I have been leading a major rework of ubuntu-drivers for the past cycle (mostly for future development releases of Ubuntu):
- Several changes I’ve made have landed in the upstream repo for the next devel release:
- Fixes for Noble’s autopkgtests, which were broken: Bug #2071829 “ubuntu-drivers-common/1:0.9.7.6ubuntu3 ADT test fa...” : Bugs : ubuntu-drivers-common package : Ubuntu
- Fixes for undefined behavior caused by allowing invalid command flag ordering: Remove flags before commands by MitchellAugustin · Pull Request #134 · canonical/ubuntu-drivers-common · GitHub
- gpgpu flag documentation updates / help text: Update gpgpu help text in Noble by MitchellAugustin · Pull Request #130 · canonical/ubuntu-drivers-common · GitHub / Bug #2115537 “[SRU] gpgpu help text is unclear” : Bugs : ubuntu-drivers-common package : Ubuntu
- Unused component removal / refactoring: Remove unused NvidiaDetector components and deprecated 'autoinstall' command by MitchellAugustin · Pull Request #127 · canonical/ubuntu-drivers-common · GitHub / Bug #2120588 “Remove unused NvidiaDetector module” : Bugs : ubuntu-drivers-common package : Ubuntu
- Fix to ensure that conflicting nvidia-driver branch versions are never coinstalled : Prevent attempts to coinstall conflicting nvidia-driver-* packages (LP: #2125156) by MitchellAugustin · Pull Request #138 · canonical/ubuntu-drivers-common · GitHub
- Several have been developed and submitted, but are still under review:
- Enhancement to add a welcome page that displays current status of u-d-c installed drivers and any recommendations if unexpected (essentially your suggestion about an “ubuntu-drivers verify” feature): Add new ubuntu-drivers welcome page by MitchellAugustin · Pull Request #133 · canonical/ubuntu-drivers-common · GitHub
- Enhancement to add kernel version and MOK status checks that should prevent unintended behavior with SB-enabled systems: Implement kernel version and secure boot warnings and fix test cases by MitchellAugustin · Pull Request #126 · canonical/ubuntu-drivers-common · GitHub
- Refactor to move all driver detection functionality into correct part of codebase: Consolidate GPGPU apt filtering functionality into detect.py by MitchellAugustin · Pull Request #128 · canonical/ubuntu-drivers-common · GitHub
- Several changes I’ve made have landed in the upstream repo for the next devel release:
- Curtin & DKMS: Fixed issue that caused installer hang on high core count systems: Bug #2037682 “curtin in-target issues if process uses /proc and ...” : Bugs : curtin
- LXD: Proposed improvement to eliminate unintuitive extra steps required for GPU passthrough*: Improve VM GPU passthrough support by enabling automatic OVMF MMIO window sizing when attaching device · Issue #15872 · canonical/lxd · GitHub
- *Root cause and fix identified, pending inclusion in 26.04
- screen-resolution-extra: Fixed bug with “save settings” functionality: Bug #2090974 “nvidia-polkit not executable” : Bugs : screen-resolution-extra package : Ubuntu
- ipmitool: SRU’d support for new sensors on DGX hardware: Bug #2076173 “cannot display sensor name when its owner is lun1” : Bugs : ipmitool package : Ubuntu
- Maintainer of anytree python library (via Debian):
- linux-firmware SRUs:
- Fixed broken Asus ROG Zephyrus keyboard backlight control on Oracular: Bug #2089113 “Keyboard backlight controls do not work on Asus RO...” : Bugs : linux package : Ubuntu
- Commentary and analysis related to ubuntu-release-upgrader bugs: Bug #2126679 “FTBFS due to removal of nvidiadetection from ubunt...” : Bugs : ubuntu-release-upgrader package : Ubuntu
- “Non-archive” work:
- Gaming enablement: Improving ease-of-use of FEX & Steam for arm64 users: Tutorial: Running Steam games on arm64 with FEX - #2 by mitchellaugustin
- Bug Reports: Was the first user to report a missing audio issue with the discord snap, which was promptly resolved: [Bug]: Audio not working in voice chat on 0.0.90 rev 235 · Issue #274 · snapcrafters/discord · GitHub
Areas of work
Working on the DGX PE squad, most of my work is focused on fixing bugs and implementing enhancements that impact users of Nvidia’s DGX server hardware (and more recently, the DGX Spark).
Individually, I am also deeply interested in improving the state of the Ubuntu desktop and gaming stories, which has aligned well with our priorities of improving the Ubuntu desktop experience on DGX Spark.
Things I could do better
Sometimes, I’ll forget to update the version code correctly on a development release upload that has just recently become a stable release.
I think I can continue to work on double- and triple-checking the version codes for my PRs for cases like this.
Every once in a while, I’ll also run into some edge case with the SRU process that I didn’t realize was documented somewhere - so I’m always making sure to add that to my personal knowledge doc to create less unnecessary back-and-forth.
Plans for the future
General
- I’m working heavily with other arm64 developers in Canonical to improve arm64 game/application compatibility in the distro
- I plan to continue implementing my remaining plans for ubuntu-drivers over the coming cycle:
- Specific driver version selection should be adjusted so the format matches the apt package format.
- Integrate unit tests into GitHub Actions
- Enable mypy lint checking / static typing
- Driver selection ability
- I’d like to get back to fixing the version of asusctl that I packaged originally for Oracular, since the end goal was for this to be part of a larger effort to improve accessibility of hardware control applications for various OEMs. (However, this has taken a backseat to my other priorities, since it requires some significant reworks that weren’t present when were initially building in a PPA).
What I like least in Ubuntu
As a developer: I don’t like that, while Launchpad is meant to be our central source of truth for the source in Ubuntu, there is no clear indication on Launchpad itself for some major subsystems whose maintainers have different source management preferences. (ex: some maintainers prefer individual bug fixes per upload, some prefer multiple, some have source trees / patch ingress in different locations than LP itself). It would be good if LP had a place on the main landing page for a project (ex: Ubuntu in Launchpad) where maintainers could put their maintenance instructions, and if there was a widespread directive for that to actually be documented there.
Endorsements and Comments
Ask your sponsors and people that closely worked with you to use the template below, and reply to your application with their packaging endorsement (sponsors) or comments (anyone including sponsors).
## 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?
Finally - Application Announcement
Once ready:
- Check the agenda
- Select a meeting date and add your name, what you apply for and a link to the page you created from this template
- Announce your application and selected meeting date by writing an email to the devel-permissions@ list.