DevOps Engineer con más de 4 años diseñando y operando infraestructuras cloud en AWS de nivel productivo. Construyo pipelines GitOps completos — desde el commit hasta el despliegue en Kubernetes — con infraestructura como código, seguridad desde el diseño y observabilidad integrada.
Experiencia en entornos regulados (salud, finanzas). Actualmente en remoto para Nibble Tech LLC (New York). Abierto a posiciones DevOps · Cloud Engineer · SRE.
|
Cloud & IaC |
Contenedores & Orquestación |
CI/CD & Config Management |
|
Observabilidad |
Seguridad & Accesos |
Lenguajes |
gitops-stack — Pipeline GitOps en AWS EKS
Pipeline CI/CD de nivel productivo que automatiza el ciclo de vida completo del software en AWS EKS siguiendo el patrón GitOps. Git es la única fuente de verdad para código, infraestructura, configuración y accesos.
Developer → PR → merge main
│
Jenkins Pipeline
├── 1. pytest fail-fast — no builds si los tests fallan
├── 2. docker build caché de capas · tag único por BUILD_NUMBER
├── 3. push ECR registry privado · autenticación temporal
├── 4. terraform plan → aprobación humana → apply (100 recursos)
├── 5. ansible SSM hardening · firewalld · CloudWatch agent
└── 6. kubectl sts:AssumeRole → rolling update sin downtime
│
AWS EKS gitops-stack-prod
2 réplicas · self-healing · multi-AZ
Highlights técnicos
| Área | Implementación |
|---|---|
| Seguridad IAM | sts:AssumeRole → eks-admin-role — cero credenciales estáticas. EKS Access Entry apunta al rol, nunca al usuario |
| Infraestructura | 100 recursos Terraform: VPC multi-AZ, EKS 1.35, KMS, CloudWatch, CloudTrail, backend S3 |
| Identidades IAM | 5 grupos + 22 usuarios gestionados como código en users.tf — PR obligatorio para cambios |
| Config Management | Ansible via AWS SSM sin SSH — nodos en subredes privadas sin IP pública |
| Fix en producción | immediate: yes en firewalld — mantiene sesión SSM activa durante hardening |
| Auditoría | CloudTrail registra cada jenkins-deploy-{BUILD_NUMBER} con timestamp y rol |
| Branch Protection | Push directo a main bloqueado — PR + status checks obligatorios |
Cluster Kubernetes de 3 nodos montado desde cero sobre VMs Ubuntu 22.04 gestionadas con Vagrant. Sin servicios gestionados — cada componente instalado y configurado manualmente.
Vagrant (IaC local)
├── master-node 192.168.56.10 control plane
│ etcd · api-server · scheduler · controller-manager
├── worker-node1 192.168.56.11 worker
└── worker-node2 192.168.56.12 worker
│
kubeadm + Calico CNI
containerd (SystemdCgroup=true)
Kubernetes v1.31.14 · 3 nodos Ready ✅
Configuración de nodos
# Requisitos previos en los 3 nodos
sudo swapoff -a # K8s no funciona con swap activo
echo "overlay\nbr_netfilter" | sudo tee /etc/modules-load.d/k8s.conf
sudo sysctl net.ipv4.ip_forward=1 # Routing entre pods
# containerd con SystemdCgroup=true
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
# kubeadm init en el master
sudo kubeadm init \
--apiserver-advertise-address=192.168.56.10 \
--pod-network-cidr=192.168.0.0/16 # requerido por Calico
# Instalar CNI
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/calico.yamlRoadmap: aplicación multi-tier → Ingress NGINX + TLS → Persistent Volumes → RBAC → Prometheus + Grafana → HPA


