The success of the Ubuntu Project depends on a wide community of talented, passionate developers. Anyone with the right technical skills can contribute. If you’re new to the process, you can find people online within the development team to help you along.

There are lots of tools to support your efforts. You can find information about how Ubuntu is built in the developer documentation. It explains how the development team is structured, provides technical information about building Ubuntu, and indexes other useful resources for current and prospective Ubuntu contributors.

Non-technical users

Translation and localisation

If your first language is not English but you have strong English skills, you can make a huge contribution by helping to translate Ubuntu applications into your first language. Even if you just translate a few lines you can make a difference to someone in your own country who is learning about computers and free software.


When you find a solution to a problem, you can help others by writing about your experience. Some of the most constructive ways to get involved in the Ubuntu documentation community might be:

  • Take notes as you puzzle through a problem. If documentation already exists, you can extend or improve it. If it doesn’t, go ahead and add a page in the help wiki, and write up the answer making it available to everyone. You can read the Wiki Guide for help with this.
  • Join the Ubuntu documentation team. Visit the documentation team website for hints and tips on how to get started.


If you can, consider donating to the Ubuntu Community Donations fund on the Ubuntu website. With its funds we help LoCos with events, fly people to conferences and do all kinds of other great things. Find more information on the fund page.

Technical users

Diagnosing and recognizing problems is an excellent way to contribute – Test pre-release versions of Ubuntu to help find bugs before the final release. Test early and often! – Report bugs you find, and help the development team to analyse them. This is most effective if you run the development branch.

Engaging in technical discussions and providing feedback

  • Join a discussion list on the Ubuntu Mailing Lists.
  • Chat with others on IRC. You can make a major contribution to the Ubuntu project by helping others use Ubuntu
  • Join an email support list or discussion list on the Ubuntu Mailing Lists. The primary support list is ubuntu-users.
  • Join the forums and respond to requests for help.
  • Join the Ubuntu support IRC channel: #ubuntu on
  • Answering unanswered questions on Ask Ubuntu, and reviewing existing FAQ and the greatest hits for quality and freshness

Would it be a good idea for you to make a course that can teach brand new people who want to learn to help and learn how to do what the developers do. Like a path that starts you out with simple tasks and gradually keep going to a full blown developer. Theres got to be a good way to make a course which will teach you to do what the developers do like how you would start with A+ and move up but for this you start with Linux beginner and up to Advanced developer.


I agree, I still think Ubuntu lack some software like video editing. Blender is a good choice but way to big. I think the major of users nowdays want to use youtube and be able to upload videos with ubuntu. I also think Linux foundation is way to expensive and hard to connect with. An official udemy course from ubuntu would be great.

Apologies if this is in the wrong place, but it seems a topic that I might finally put some of the odd bits I do to help with challenges I see in the OS.

I am from the solaris work, but been in ubuntu for a number of years now. Due to this, I use zfs and multiple servers at home

I recently upgraded a drive, and waiting for a full backup (rsync) of a home directory taking hours for 2G due to many thousands of chromium and mozilla cache files resulted in setting up a tmpfs filesystem for the .cache directory

Firstly, I added the create of the filesystem in /etc/fstab, ala
tmpfs /usercache tmpfs rw,size=1g 0 0

Next, as I am somewhat security conscious, and recognised that I did not want all users dumping in a share directory, I created a small script to set up specific directories for users at boot. First the script (to be refined, error checking and smarts added)
sudo cat /usr/local/bin/ <<
: ‘This script sets up tmpfs caches for users’
umask 077

mount /usercache
mkdir /usercache/pupilx
chmod 700 /usercache/pupilx
chown pupilx /usercache/pupilx

End of file
Script needs to be tweaked for your users

Set permissions
sudo chmod a+x /usr/local/bin/

Next, I created a service file to run at boot time:
sudo cat /etc/systemd/system/usercache.service <<
Description=usercache script

ExecStart=/bin/sh /usr/local/bin/


End of file

Next, I started the service (runs at boot, remember)
sudo systemctl enable usercache

one can either reboot or mount the file system and run the script.

Next, in the home directory of said user
rm -rf .cache
ln -s /usercache/pupilx .cache

Then on login, the .cache directory will point to a temporary directory on tmpfs, which is recreated on reboot.

As yet, still working out how to get this to work with snap (which also wants thousands of chromium cache files - sigh)