Automating tasks
There are plenty of jokes about software engineering along the lines of “You know you are a software engineer when you spend 5 hours automating a task that would take 5 minutes”. Most of the time the joke points out how often engineers over engineer the solution of a problem.
While there is some truth to it and I can definitely relate, I think there’a a difference between
- Automating a task for your personal entertainment using fun technologies – I know some of you in my network do fun stuff in rust, lisp or haskell
- Investing in your setup and your personal growth
While it may be the case that you won’t save time for the tasks you just automated, there are other potentially significant benefits
- You have improved your knowledge and your ability to execute – not only you will need less time to automate your next tedious task, the scope of what you would automate is bigger. If you don’t do this work, you’ll never improve in the first place
- You made your job less tedious – these little scripts go a long way to make you feel happier and improve your mental health
- Your work is likely more correct – especially if you automated a tedious and repetitive task. It’s very easy to make typos or copy/paste errors when manually reproducing a multi-step task.
- These automations are also often called through alias – this allows you to execute these repetitive tasks through shortcuts using only muscle memory. So you end up with more brain power left to think about what matters more.
I personally used to dread having to write bash scripts when I just started my career – now I’ll happily write a short bash (or python) script to automate a bunch of boring or repetitive tasks. This is one of the reasons why I’m a fairly efficient software engineer – or at least why I don’t shy away from fixing mechanical issues that require hundreds of pull requests.
So keep automating your work as long as it makes you more efficient in the long term (and not just for the given task).