dev notes

software development craftsmanship


Before you start creating software, you need a solid working environment.

Nowadays many of the software out there is running on linux based systems. Your software should be developed on the target plattform. It is important, to get used to the system you are targeting over time.

Know your tools. No matter if you yet programm for some time, or you have just started to programm, you need a running environment. Depending on your projects you are working on, you have a more or less complex stack.

When you develop software, you want as less complexity as possible. So if you are aware of your working environment , you can focus on your developing work.


Linux is an operation system, released on September 17, 1991 by Linus Torvalds. If you want to install linux, you can choose a distribution , which fits your needs. When you are working for a company, it is often the case, that you can't change the operation system. So I will focus on the commands, which are most commonly present on every installation, or which can be easily installed by a package manager. This will lead to a distribution independent environment.


GNU coreutils

The GNU coreutils consists of a set of commands, which can be found on every GNU operating system. You may not need all of the commands, but some of them are used on a daily basis. Within the shell you can combine them to get your work done.



The heart of every developers toolchain is the editor. As your editor is the heart of your environment, you should be aware about its capabilities.

You can choose, what ever you like. When you are developing a java or .net based system, you may be better of using a full blown IDE. But this is not neccessary every time. I want to show you, how far you can get, using vim as you primary editor.



After packages are installed you can configure a package on system level within the /etc folder. Many packages provide a local profile, which can be configured on a user basis. These called dotfiles should be configured in one place. This is how we do it .