Semiconductor device engineers are faced by a number of non-trivial tasks that can be solved efficiently using software. These tasks include, amongst others, data analysis, visualization and processing, as well as interfacing various circuit and Technology-Computer-Aided-Design (TCAD) simulators. In practice, custom 'home-made' scripts of varying quality are employed to solve these tasks. It is often found that fundamental software engineering concepts, such as Test-Driven-Development (Shull et al., 2010), or the use of state-of-the-art version control tools (e.g. Git) and practices (e.g. continuous integration, CI), are not utilized by these scripts.