A look at the tools and technologies I use day-to-day for development, infrastructure work, and getting things done.

Editor & IDE

  • VS Code — My go-to editor for most projects, thanks to its extension ecosystem and built-in terminal/debugging support.
  • Zed Editor — A fast, lightweight, GPU-accelerated editor I reach for when I want a snappier experience.
  • Vim — For quick edits directly on servers and inside containers over SSH.

Terminal & Shell

  • Bash — My default shell for scripting and day-to-day command-line work.
  • GNOME Terminal — The terminal emulator I use on my Linux desktop.

OS & Distro

  • Ubuntu — My main desktop OS for development.
  • Debian — Preferred for stable, long-running servers.
  • Fedora — Used for testing on a more cutting-edge package set.
  • Alpine — My default base image for lightweight Docker containers.
  • Pop!_OS — Used for a clean, developer-friendly desktop experience.

Browser

  • Chrome — Primary browser for development and DevTools.
  • Brave — Privacy-focused browsing for everyday use.
  • Firefox — Used for cross-browser testing.

Languages

  • PHP — Used for backend development, mainly with Laravel.
  • JavaScript — For frontend interactivity and Node.js backends.
  • Go — My preferred language for building CLIs and backend services.
  • C — For low-level programming and understanding how things work under the hood.
  • Rust — Exploring it for systems programming and performance-critical tools.

Frameworks & Runtimes

  • Laravel — My main PHP framework for building backend applications.
  • Composer — Dependency manager for PHP and Laravel projects.
  • Node.js — JavaScript runtime for backend services and tooling.
  • Vue.js — Frontend framework for building UIs.
  • React — Frontend framework for building UIs.

Web Servers

  • Nginx — My go-to web server and reverse proxy for serving applications.
  • Apache/Httpd — Used for hosting PHP applications, especially with .htaccess-based configs.
  • PHP-FPM — FastCGI process manager for running PHP behind Nginx.

Databases

  • MySQL — Primary relational database for most projects.
  • MongoDB — Used for projects needing a flexible, document-based store.
  • SQLite — For lightweight, file-based storage in smaller projects and tools.

Cloud & DevOps

  • Docker — For containerising and running applications locally and in production.
  • Docker Compose — For running and orchestrating local multi-container setups, like this site’s dev environment.
  • Podman — A daemonless alternative to Docker, useful for rootless containers.
  • Portainer — Web UI for managing Docker containers, images, and stacks.
  • Docker Hub — Default registry for pulling and pushing container images.
  • Ansible — Configuration management and automated server provisioning.
  • Dokploy — Self-hosted PaaS for quickly deploying apps and databases to my own servers.
  • Hetzner — My preferred cloud provider for affordable VPS and dedicated servers.
  • AWS — Used for EC2, S3, IAM, and CloudFront on cloud-native projects.

Kubernetes Ecosystem

  • Kubernetes — Orchestrating containerised workloads.
  • K3s — Lightweight Kubernetes distribution for my home lab and small clusters.
  • Kubeadm — For bootstrapping standard Kubernetes clusters.
  • Talos — Immutable, API-driven OS for running Kubernetes securely.
  • K9s — Terminal UI for interacting with and managing Kubernetes clusters.
  • Helm — Packaging and deploying applications on Kubernetes.
  • ArgoCD — GitOps continuous delivery for Kubernetes.
  • KRO — Kube Resource Orchestrator, for composing custom Kubernetes APIs.
  • Harbor — Self-hosted container registry for storing and scanning images.
  • ArtifactHub — Finding and distributing Helm charts and other Kubernetes packages.

AI / ML

  • Ollama — Running open-source LLMs locally for experimentation.
  • PyTorch — For exploring and building machine learning models.
  • Hugging Face — Source for open models, datasets, and ML tooling.
  • LiteLLM — Unified proxy/SDK for calling different LLM providers with one API.
  • OpenRouter — Routing requests across multiple LLM providers through a single API.
  • Gemma — Google’s open-weight model I run locally via Ollama.
  • Llama — Meta’s open-weight model I run locally via Ollama.

Version Control & CI/CD

  • Git — Version control for everything I work on.
  • Sublime Merge — My go-to Git GUI for reviewing diffs, staging, and resolving conflicts.
  • GitHub — Hosting for personal and open-source projects.
  • GitLab — Used for private repos and self-hosted CI/CD pipelines.
  • GitHub Actions — CI/CD for GitHub-hosted projects.
  • GitLab CI — CI/CD pipelines for GitLab-hosted projects.
  • Jenkins — Self-hosted automation server for CI/CD pipelines.

Static Site Generators

  • Hugo — The static site generator that powers this site.
  • PaperMod — The Hugo theme this site is built on.