October 10, 2016

Creating automatic backup in Solus

This morning I accidentally (well, I was not aware that I was not in the correct folder) all my project files today.

Lesson learned - recovery for (rm -rf *) is almost impossible.

The good thing is that I worked on the project over the weekend, so some stuff are still fresh in my mind. But first, I am going to create back up and automate it for every 2 hours because I am paranoid like that. I am going to leave the backup on my desktop.

 In Solus, cron is not installed by default and they use systemd/Timers (https://wiki.archlinux.org/index.php/Systemd/Timers) instead for replacement.

Create a file named as backup-workspace.service in /etc/systemd/system

cd /etc/systemd/system
sudo touch backup-workspace.service
Add in the following  using your favorite text editor:

# Systemd
# Service (/etc/systemd/system/backup-workspace.service)
[Unit]
Description=automatically backup workspace 

[Service]
ExecStart=tar -cvpzf /home/raf/Desktop/Workspace-backup.tar.gz /home/raf/Workspace 

# Timer (/etc/systemd/system/backup-workspace.timer)
[Unit]
Description=Runs backup-workspace service every hour

[Timer]
# Time to wait after booting before we run first time
OnBootSec=1min
# Time between running each consecutive time
OnUnitActiveSec=1h
Unit=backup-workspace.service

[Install]
WantedBy=multi-user.target

I created an alias/shortcut key to do the backup manually too by editing my ~/.bashrc file.

alias backup="tar -cvpzf /home/raf/Desktop/Workspace-backup.tar.gz /home/raf/Workspace"

October 5, 2016

Getting a software developer job

Ask yourself :


  • Your past projects/coding style
  • You technical knowledge on your stated skills
  • Your personality
  • Your workflow - do you have a clear thought process behind what you do and why you do it
  • Ability to take constructive criticism
  • A love of coding - because there will be constant learning throughout your career and if you aren’t prepared to do that, you will seem like a poor long term investment
  • An excellent understanding of the tools you use: frameworks, IDE, language, task-runner, version control, graphics software.