Update: check out my new post on the tools I use for thinking, specifically.


I use a few tools in my day to day work as a Web developer. Here they are, in case you need some inspiration or ideas:

The OS

I use Windows. 10. Pro.

But I used to use macOS. I was using Macs since 2007, when I think the version was Mac OS X Tiger. It was the perfect thing. Actually, I think the perfect thing came with Snow Leopard. From then, it just kept moving in a direction I didn't like. With skeuomorphisms, among other things.

But since 2016 I am excited about deep learning (for CNN, more specifically) so I built a machine just for that, with Windows as the main OS. But I never actually used the CUDAs in my GeForce. Yet.

The software

Text editor

I'm a bit odd. I really have a thing for Vim, but my vim settings kindof stalled since about 2015. Now, I'm using Pathogen to manage my plugins, in a vimrc that comes with a dotfiles git repo I clone and initialize on all the machines I work on.

So Vim it is, for most of my code. Not GnuVim the UI app. Vim through an SSH session on the servers I work on. (Told you I'm odd!)

This is why I didn't customized much of my vim environment, except for syntax highlighting the programming languages I work on.

The programming languages

For Frontend stuff

  • JavaScript/ES6. With no preprocessor. Except for when I worked on React projects, but it's less the case now since I've gone back to my comfortable habit of using jQuery and keeping it simple on the frontend.
  • TypeScript, for a client project. I inherited that codebase. It's not bad. But it's certainly not a good idea for the use case I'm working on, which is a website (i.e. not a web app).

For backend stuff

  • PHP
  • Ruby (with a lot of Rails)
  • Go
  • Node.js

(in that order)

Databases

  • When I can choose, it's PostgreSQL.
  • When I cannot choose, it doesn't matter most of the time, because WordPress only works on MySQL-like DBs.

Devops

  • Ubuntu or Debian distributions for the servers I develop on and deploy to. Developing through SSH on remote servers means 2 things:
    1. when I'm on the go, I can use a dumb netbook and connect through my blackberry-enabled wifi, fire a terminal and not worry about any kind of setup.
    2. It's always the same computer. With a real Linux installation (which in many respects is better than WSL).
  • Docker + Docker Compose. I haven't checked on Kubernetes yet, but something is telling me I don't need that kind of heavy tooling just yet. So it's pretty simple.
  • Heroku when possible, for the hosting. I know it's expensive, but so is my time.
  • AWS can come handy for things like S3, lambda, and other things that one would need for (often prematurely) scaling.

GUI apps

  • fman as a File Explorer alternative
  • foobar2000 for playing my MP3s (no, I don't have a subscription to a music service. I prefer buying my mysic whenever possible)
  • "git bash" for the Terminal
  • Chrome, with Lastpass for managing passwords
  • Affinity {Designer,Photo,Publisher}, by Serif, for graphic stuff. This is an awesome and cheap alternative to Adobe's dominance in that field.
  • Office 365 subscription for Excel, Word and other things. I'm not so proud about that one, but it works well on Windows. And OneDrive comes with 1TB of storage, which is nice.
  • Kdenlive for video editing.
  • OBS Studio for video capturing.

Web apps

  • Kinopio.club for linking ideas together.
  • Pinboard.in for storing and managing my bookmarks.
  • Airtable for playing with data and creating useful things with them.
  • Todoist for keeping track of my todos.
  • Brain.fm as my surefire way to get in the zone.

Misc

  • Blackberry KeyOne. It's pretty good. I like the physical keyboard that only Blackberry seems to be doing these days. Again, I come from an Apple world, so I was used to having iPhones, but when I no longer needed to work on Macs, I gave it another thought. And the fact that it is on Android makes it just like any other phone in terms of capabilities.

A word about leaving Google

Like many people, I am concerned about the extent of Google's knowledge of my personal life, so I've taken steps to counter that:

  • I use DuckDuckGo as my default search engine, even if quite a few times I need to prepend my searches with !g to get better results.
  • I am using a mix of Proton Mail, Fastmail and Zoho Mail for more and more of my needs and subscriptions. But I've yet to completely get rid of my gmail. And it probably won't ever happen for many reasons.
  • I am using Amazon Photo on my phone, instead of Google Photos for storing photos I take, to the cloud. Having a Prime subscription helps with that.
  • I began using F-Droid as an alternative to Google Play store.

Things I still am looking for:

  • A good alternative to Google Music for purchasing my music.

I am aware that I'm using solutions from big, and arguably equally monopolistic players as alternatives, but I think it's more practical this way, and there is still value in diversifying.

Postface

I wrote this blog post in Vim, through an SSH session on the Dreamhost server that is hosting this website. My "blogging engine" uses Markdown.