Software & Tech I Use

The following is a running list of the software I use in my work and personal life, including languages, frameworks, open source packages, freeware, or premium software. Plus, brief descriptions of what I use them for and why.

Jump to Web Development & Programming for info on my tech stack or Personal & Business for other software I use.

Why I don’t self-host Link to this heading

I used to self-host a fair amount as a privacy measure. However, I moved away from doing this for several reasons:

  1. It’s extremely time-consuming to maintain.
  2. You get very little in return except a feeling of more privacy and control (and tech knowledge).
  3. We’re being monitored anyway, so why inconvenience yourself?
  4. The Apple ecosystem is too convenient to pass up on certain luxuries like iCloud Drive.

If a self-hosted tool is the best one for the job, I’ll use it. Otherwise, take my data I guess.

Web Development & Programming Link to this heading

The tech stack I use for my web projects and command line tools.

Backend Development Link to this heading

  • Python - My backend language of choice.
  • Django - Backend web framework with all the bells and whistles.
  • Django REST Framework - For scaffolding APIs in Django.
  • PostgreSQL - Relational databases.
  • Postico - PostgreSQL RDBMS client for macOS.
  • Celery - Asynchronous task queue.
  • Redis - Caching and celery broker.
  • Sentry - Application monitoring and error reporting.
  • Python packaging and testing:
    • pip / venv / setuptools - Python package and dependency management. I gave Poetry and Pipenv a shot but found them to be too slow and overcomplicated.
    • pytest - Testing framework.
    • pytest-cov (coverage.py) - Test coverage tool.
    • flake8 - PEP8 linting.
    • black - Code auto-formatting.
    • isort - Imports sorting.
    • pre-commit - Pre-commit hooks for the above.
    • And many more…

Frontend Development Link to this heading

  • HTML / CSS - Self-explanatory.
  • SCSS - I recently started learning SCSS to improve how my CSS is structured and organized.
  • Bootstrap - CSS framework for quick MVPs.
  • Vanilla JS - I try to stick with vanilla JS and avoid frameworks unless necessary.
  • Vue.js - I’ve played around with Vue in the past but my JS skills weren’t good enough at the time. I may give it another spin once I feel more comfortable with vanilla JS.
  • Hugo - My static site generator of choice. An excellent choice for static sites of all shapes and sizes.
  • Markdown - Static markup language for blogging.
  • npm - Package management.
  • Webpack - Module bundling.
  • Babel - JavaScript compilation.
  • PostCSS - Mostly for autoprefixing, etc.

DevOps & Deployment Link to this heading

  • Docker - I’m relatively new to containerization, but I’ve been using Docker in all my new Django projects.
  • GitHub Actions - Also new to this but it seems like a good introduction to CI/CD.
  • nginx - Production web server.
  • gunicorn - WSGI / application server for Python.
  • Ubuntu - User-friendly Linux OS for web app deployments.
  • Digital Ocean - VPS hosting for web apps.
  • Heroku - PaaS hosting for quick web app MVPs or staging sites.
  • Netlify - Static site hosting. Completely free for small sites with low traffic.
  • git / Github - Version control.
  • VSCode - Code Editor / IDE. Switched from Sublime Text and never looked back.
  • Cloudflare - DNS provider and CDN.
  • Amazon SES - Transactional email. I used Mailgun until they scrapped their generous free tier.
  • Amazon S3 - Static and media file storage. Better than serving the files locally with nginx.

Personal & Business Link to this heading

The software I use to run my personal life and business.

General Link to this heading

  • macOS Monterey - Used to be a Windows guy until I started programming. Never looked back.
  • Apple Mail - Email client. Way more user-friendly than Gmail once you get used to it.
  • Google Chrome - The plugin ecosystem is just better than Firefox. Plus, DevTools and Lighthouse.
  • Chrome Plugins:

Productivity Link to this heading

Previously, I used Notion for everything related to productivity. Over time, I found that using multiple tools, each with a specific purpose offers a bit more flexibility and usability improvements.

  • Trello - Project management and one-off to-dos.
  • Obsidian - Note-taking, lists, and knowledge management.
  • Airtable - Keeping track of data in a structured manner. This is where I organize my goals, projects, the domains I’ve bought, the software I use, etc.
  • Google Tasks - Recurring tasks and reminders. Switched from Todoist due to GC integration.
  • Google Calendar - I tried going native with Apple Calendar but the UI just isn’t as nice and it doesn’t integrate with Google Tasks.

Marketing Link to this heading

Business Operations Link to this heading

Design Link to this heading

Music Link to this heading

Other Link to this heading