ashkmb:~$
> whoami
Ashkan Kamyab
> title
Senior DevOps & Infrastructure Engineer
> location
Berlin, Germany
> stack
cat << EOF
k8s | docker | podman | helm | istio | registry
cloud --provider={aws,azure,gcp} --type={public,hybrid,private}
terraform && ansible | packer | vault
gitlab-ci | github-actions | argocd | mlflow
echo $LANG | grep -E "python|go|bash"
EOF
█

I build and maintain scalable infrastructure, automate everything that can be automated, and help teams ship faster with confidence. Passionate about cloud-native architecture, developer experience, and open source.

$ cat GITLAB .md
· 7 min read

The Registry Answered in 45 Milliseconds. The Build Took Two Minutes Longer.

After a server migration, builds against a self-hosted package registry got two minutes slower and every report pointed at the move. Every failing request was a 500 in 45 milliseconds; the entire regression was npm's retry backoff. The root cause was one row out of 63,000 still pointing at an object store that no longer existed, and the check written to catch exactly that iterated a hand-written list of tables and missed it.

gitlab debugging migration reliability observability
$ cat GIT .md
· 7 min read

84 Repositories Vanished. The Fix Was mkdir.

S3 has no empty directories, and in a fully packed git repository the refs directories are exactly that: empty. A file-by-file sync carried every object intact and dropped the two directories git requires to call something a repository, so 84 of 517 came back unreadable while the database still said they had commits. The migration's health checks stayed green the whole time, because none of them ever open a repository.

git aws s3 gitlab mechanism
Kubernetes
Docker
AWS
Azure
Terraform
GitLab
Go
Python
PostgreSQL
MongoDB
Redis
Kafka
Istio
SonarQube
QDR Qdrant
ArgoCD
NiFi NiFi
SNZ SigNoz

Looking for a DevOps engineer or infrastructure consultant? Let's talk.

> hire_me