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.