Writing your own software