Productivity tools and services I use
Optimizing productivity vs doing the work
After more than a decade customising tools, I have a few criteria when choosing tools.
It is too easy to spend time optimizing the tools instead of doing the work. To find I balance I suggest:
- Using the defaults, when possible Having the ability to customize the tool is good but the defaults should be good enough to save time managing the tool.
- Prefer things that can run offline and cross-platform, and without lock-in It is 2021, and I expect tools to run on Linux.
- Being flexible and open to change
It took me too long to try certain services (Figma, Airtable) and I regret it. I try to:
- Keep an open mind
- Dedicate a bit of time — 30 minutes — to evaluate
- Do not look for the cheapest A lot of options open when you are willing to pay — as opposed to insisting in something without costs.
Paid software and Saas subscriptions
Todoist
I find Todoist to have the right balance between features and simplicity. I wrote more about how I use Todoist.
Intellij
My preferred IDE
- has a decent vim mode (my preferred way to edit)
- Rolling licensing terms make sense:
- Now and then I buy the new version. Sometimes I stay on the last version — without paying extra — until new features appear. Then I update.
- Same license allows to use (non-simultaneously) in a laptop as well — for my small portable Lenovo E495.
Fastmail
I like the idea of not having everything hosted at Google services. Or any other provider, for that matter. Email is such an important piece of your digital tools, I feel comfortable having a bit of redundancy between providers.
Useful features:
- custom emails and unlimited (?) aliases
- Decent app for ipad/iphone to check on the go
Dropbox
I resisted Dropbox for a long time. In the past I got the business plan and used it only a bit. Then my Macbook Hard disk died. I could recover only a few things.
- There are Problems with Dropbox and symlinks, so I arranged all my workspace inside the
~/Dropbox
folder. Then, symlinks like~/code/
point to~/Dropbox/code
.
Advantages:
- Piece of mind
- Facilitates work with several machines
- I take the ipad to retouch a screenshot I took on the computer (synced)
- A photo taken with my phone can be used from desktop
- etc.
I tried Google Drive a few years ago, but after one week it would not have synced the whole computer. I found it worked for small amounts of files only.
Linode
I host most of my projects there.
- For years without big problems
- Offered improvements upgrades in the underlying hardware without asking
- Not disruptive, and stable
- very reasonable prices — cheapest Linode is around 5$/month.
ssh
access- Backups of the whole instance as an add-on cost — again, peace of mind.
AWS
At the moment I use AWS for specific things, not as a default for all my project. For instance, I use the transcribe api.
You hear a lot of horror stories about not well-protected accounts getting bills for tens of thousands of dollars
My nightmare is somebody breaks into my AWS account and mines bitcoin on it, and I wake up to a 30,000 euro invoice — Me
So I make sure to:
- set 2 Factor Authentication and very strong passwords
- use correct IAM roles and permissions — only the miminum needed per task.
- set up Budget alarms to alert me when the spend goes over a certain number.
Procreate
Very good to create content on the iPad.
Illustrations
I used procreate for my Spanish learning newsletter
Twitter threads
Procreate is also very useful to create social media content, like I did in this twitter thread about the book 10x marketing
Affinity designer/Affinity photo
The Affinity suite has replaced for me Adobe tools.
Affinity photo replaces Adobe Photoshop to retouch photos — for very simple cropping , etc. I use Gimp. Affinity designer has great vector tools — it replaces Illustrator for me.
I use both these apps in their iPad versions. I do not need them that often and Affinity does not support Linux
Figma
I resisted Figma for too long.
Features:
- Performant
- works on Linux (browser based)
- Generous free tier for one person
- Speeds up custom website design While tailwind and similar are useful, custom design is still important.
Non-paid software
Operating Systems: Ubuntu current LTS
As a main Operating System I use whatever happens to the the latest Long-Term-Support version of Ubuntu. To me, this gives me the right balance between features and stability. And I do not need to update too often, which is always disruptive.
Operating Systems: Mac OS
I have a Macbook Air lying around to test and compile, for instance, electron apps, or anything involving Xcode.
Operating Systems: Windows
I use Windows in a Virtual Machine if necessary (rarely)
Vim
I like Vim and the modal editing paradigm. After messing with every plugin and config file I could find, I now mostly stick to the defaults.
- Most of the time I use Vim mode in Intellij, but also often I might quickly edit a file or keep some notes in vim (command-line or gvim).
Obsidian
I am writing this article right now in Obsidian.
I am fond of obsidian. It is a free and offline version of Roam research, basically. It allows for quick text input and links between different documents, with a simple syntax 1.
Features:
- Quick to brainstorm, map thoughts and take notes and plan
- fully offline. Can be backed up on Dropbox for redundancy.
- has a vim mode!
- easy to interoperate with
jekyll
, since it is markdown as well
Blender
Blender is amazing. It is not just a free version of professional 3d packages. It i, in my opinion, better than a few professional ones. I have been following Blender since they were not Open source. Remember the Blender Game Engine? I coded two hobby games in that. The progress this project has done is outstanding. But enough complimenting.
Features (too long to list in detail):
- Solid modelling
- Sculpting
- Video composition
- Animation (2d and 3d)
- Python scripting
Infrastructure
Git
- While I have a github account I use git, mostly self-hosted, via ssh
- Github Teams to share code for the course
Ansible
I use Ansible to automate deployment on own servers While I understand it has some problems with state, depending on the order of operations, in practice it is not a big issue for my use cases.
To me it is the right balance between writing a script manually — or using Fabric2 — and Kubernetes. To guarantee a clean state in Linode I often
- reformat the Linode instance
- Rerun Ansible scripts
This solves any problems with state.
Hardware
Lenovo E495
- cheaply bought during Black Friday (around 400 euros)
- Used to run Intellij (same license is allowed) and Obsidian, mostly
- Paper notebook Mostly promotional notebooks from companies, or a reasonable cheap one.
iPad
- To record explanations for courses
- to use Todoist, email, calendar
- to showcase demos or content to other people (not online)
Visual mechanical timer
I have been using one of those Pomodoro timers. It provides visual feedback of the time left. This avoids checking the phone — and being distracted — to check how much time is left3. I find single-purpose devices help to stay in the zone.
I use it:
- To time-box a problem I am stuck with I give it 30 more minutes or leave it for tomorrow/ask for help
- For motivation during a boring task 20 more minutes and I will move to exciting_task
- To quickly set any timer Turning a knob is sometimes quicker than unlocking the phone
Logitech C920s Webcam
I am happy with it. I use it often to record my Full-stack programming courses
I tried to use my Mirror-less camera as a Webcam — which seems to be a hot topic — but the model is not supported.
📢 P.S. When not blogging, I create full-stack video courses for experienced developers.
Thanks for reading
-
Obsidian, Roam remind me of Memex. I feel they share some of that spirit. ↩
-
Fabric changes the api completely between Python 2 and Python 3 Fabric. This is when I started looking more into Ansible, since I needed to rewrite it anyway. Now I am glad I did. ↩
-
We could say It is push instead of pull, as an analogy. ↩