Productivity tools

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:

  1. 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.
  2. Prefer things that can run offline and cross-platform, and without lock-in It is 2021, and I expect tools to run on Linux.
  3. 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
  4. 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

Todoist

I find Todoist to have the right balance between features and simplicity. I wrote more about how I use Todoist.


Intellij

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

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

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.

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

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

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

Procreate Very good to create content on the iPad.

Illustrations

I used procreate for my Spanish learning newsletter

Procreate illustration Procreate illustration Procreate illustration

Some examples of illustrations for Learningcastellano.com

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

Affinity Design The Affinity suite has replaced for me Adobe tools.

Affinity Photo 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

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

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

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 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.

Mechanical timer

A simple mechanical timer.

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

Logitech 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

  1. Obsidian, Roam remind me of Memex. I feel they share some of that spirit. 

  2. 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. 

  3. We could say It is push instead of pull, as an analogy.