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
I used to self-host a fair amount as a privacy measure. However, I moved away from doing this for several reasons:
- It’s extremely time-consuming to maintain.
- You get very little in return except a feeling of more privacy and control (and tech knowledge).
- We’re being monitored anyway, so why inconvenience yourself?
- 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
The tech stack I use for my web projects and command line tools.
- 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…
- 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.
- PostCSS - Mostly for autoprefixing, etc.
DevOps & Deployment
- 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
The software I use to run my personal life and business.
- 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:
- Bitwarden - Password manager that blows Lastpass out of the water.
- uBlock Origin - The only adblocker I’ll ever need.
- HTTPS Everywhere - Extra security against non-SSL requests and redirects.
- Wappalyzer - I enjoy peeking at what tech stack websites are using.
- WAVE Evaluation Tool - Web accessibility evaluation tool.
- Reddit Enhancement Suite - Quickly switching between Reddit accounts is essential.
- Feedly - For saving articles to read later.
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.
- Ahrefs - Keyword research & SEO analytics.
- Google Search Console (GSC) - SEO analytics.
- Google Analytics (GA) - Website analytics.
- Google Tag Manager (GTM) - Tag management.
- Google Workspace - Custom business email for websites.
- Mailerlite - My favorite simple email service provider (ESP). 10x easier to use than Mailchimp.
- Netlify Forms - Static site form submissions.
- Disqus - Blog comments. Looking for an alternative because it’s slow and intrusive.
- Freshbooks - Bookkeeping.
- Stripe - Billing.
- Calendly - Scheduling.
- Figma - UI/UX design. I prefer this over Adobe XD due to it being web-native.
- Adobe Photoshop - Graphic design.
- Adobe Premier - Video editing.
- Canva - Graphic design templates.
- Logic Pro X - Music production and recording.
- Spotify - Music and podcast streaming.
- Zapier - No-code automation.
- Miro - Whiteboarding and mind-mapping.
- Namecheap - Domain registration.
- Microsoft Excel - Spreadsheets.