A personal blog from a hobbist developer.

My Development Environment

An overview of the hardware and software I use to program software with.

Posted by David Rodriguez

My development environment isn’t anything too special. I’m usually always on the move and I prefer laptops to desktops. So naturally, I will be using a laptop. I will be using my Lenovo Thinkpad X220 laptop. It has 16GB of RAM, one (1) 2.5” SSD @ 240GB of storage, and an additional msata SSD @ 240GB of storage. Both drives are LUKS encrypted.

My Operating System

My operating system of choice for this venture will be Elementary OS Juno. My reasons for choosing this OS vary, but to keep it simple and short, the entire desktop environment and all of its app are built using Vala, GTK+, Granite, and a number of other free and open libraries.

To keep it really simple, elementary OS gives you a clear path to developing your native desktop apps for Linux while making it easy and fun! This makes for a for a perfect environment for both experienced and inexperienced developers alike. Their elementary-sdk takes all the hard work out of getting the proper tools installed and setup for you to begin developing your next app.

Install elementary-sdk with this command:

sudo apt install elementary-sdk

The Code Editor

My code editor of choice is Atom (available at Many people have tried hard to convince me to use Visual Studio Code, but I just can’t seem to leave Atom. It’s the text/code editor that I am most comfortable using.

With atom, I use just a few plugins to ease my development (by that, I mean the amount of typing one has to do) with Vala. I use language-vala-modern for auto-completion and syntax highlighting. I also use terminal-tab to not have to worry about leaving my code editor when I make small changes and need to compile and run the code. These small plugins are not a hard requirement, but they do make development easier for me.

Install Atom with this command:

sudo apt install atom


Documentation is very important! Whenever I am developing with Vala and GTK+ I always keep the quickDocs application open (you can get the Flatpack here if you’re not on elementary OS). If you prefer to just use, that is also an option.

Version Control

For version control, I am of course using Git. To host my code, I use both GitLab and GitHub. I prefer the command line when managing my Git repositories, but I do make sure to keep GitKraken installed for the rare times that I do want to use a GUI.

sudo apt install git gitkraken


That’s about it! There really isn’t too much that’s needed to get going and start developing native Linux desktop applications other than that. To keep it simple, install everything with one command:

sudo apt install git elementary-sdk atom gitkraken com.github.mdh34.quickdocs