Deployment & Cloud

Deployment & Cloud

Building end-to-end data solutions means choosing the right deployment strategy. Every project has unique requirements, sometimes you need the flexibility and control of self-deploying on a VPS, while other times the convenience and scalability of a cloud provider like AWS makes a difference. I'm comfortable with both approaches and know when to use each to maximize efficiency, simplify deployments, and ensure security.

  • Flexible Deployments: Let business requirements dictate the deployment strategy, balancing control, cost, and scalability. Whether self-hosting on a VPS for flexibility or on cloud services for managed infrastructure.
  • Centralized Infrastructure: For small and medium businesses (SMEs) and small teams, I found that keeping services consolidated makes deployment and maintenance more straightforward, reducing overhead.
  • Containerized Development: Developing and deploying applications in Docker containers to maintain consistency across environments and simplify management.
  • Security Focus: Prioritize secure deployments and continuously find improvements to every part of the system.

Tech Stack

I prefer the predictability and simplicity of self-hosted solutions on VPS, but I've also constantly use AWS as it speeds up more complex deployments, especially regarding network configuration. Independently of environment, I'm confident in deploying containerized solutions that are easy to manage.

  • Self Hosting: Extensive experience deploying software on VPS from early in my career to my latest projects. Heavy usage of nginx for deployments as a web server, load balancer and reverse proxy.
  • Linux Systems: Proficient in managing Debian/Ubuntu-based Linux environments, which I've also used for many years as my personal desktop.
  • Containerization & CI/CD: Utilizing Docker and Docker Compose for consistent deployments, paired with GitHub Actions for efficient CI/CD workflows.
  • Cloud Solutions: Familiar with AWS for deploying data-related solutions in both professional and personal projects, with occasional use of GCP.
  • Monitoring: Relying on Grafana, Prometheus, or CloudWatch to keep track of system performance and ensure stability.