---
title: "DevTips - Quick Developer Tips and Best Practices"
lang: "en"
author: "Mohammad Abu Mattar"
canonical: https://mkabumattar.com/devtips/page/3
---

# DevTips

One tip per page, each small enough to try before your coffee cools. Mostly the fixes and flags I wish someone had told me sooner.

[All Tips22](/devtips)[Devops devsecops5](/devtips/categories/devops--devsecops)[Kubernetes containers4](/devtips/categories/kubernetes--containers)[Aws1](/devtips/categories/aws)[Networking1](/devtips/categories/networking)[Cloud1](/devtips/categories/cloud)[Cloud infrastructure automation4](/devtips/categories/cloud--infrastructure-automation)[Containers docker1](/devtips/categories/containers--docker)[Developer tools productivity1](/devtips/categories/developer-tools--productivity)[View All…](/devtips/categories)

CategoryAllDevOps & DevSecOps (5)Cloud & Infrastructure Automation (4)Kubernetes & Containers (4)Aws (1)Ci cd (1)Cloud (1)Containers & Docker (1)Developer Tools & Productivity (1)Devops (1)DevOps & Kubernetes (1)DevOps & Observability (1)Kubernetes & Cloud Native (1)Kubernetes & DevOps (1)Networking (1)Observability & Monitoring (1)Productivity (1)TagAllDevOps (7)Kubernetes (7)Terraform (6)IaC (4)CI/CD (3)DevSecOps (3)Docker (3)Infrastructure as Code (3)Microservices (3)Aws (2)Cloud Automation (2)Cloud Infrastructure (2)Cloud Native (2)Deployment (2)GitHub Actions (2)GitOps (2)Helm (2)Infrastructure (2)Monitoring (2)Observability (2)Security (2)Terragrunt (2)AI Agents (1)AI Tools (1)ArgoCD (1)Automation (1)AWS ALB (1)AWS EBS (1)AWS EFS (1)Bash (1)BuildKit (1)Caching (1)CDKTF (1)Cert manager (1)Ci cd (1)CICD Security (1)Cloud Security (1)ClusterIP (1)Command Line (1)Compliance (1)Container Image (1)Container Orchestration (1)Container Security (1)Containerization (1)Containers (1)Continuous Delivery (1)Credentials (1)CSI Driver (1)Developer Productivity (1)Developer Tools (1)Distributed Tracing (1)Distroless (1)Docker Cleanup (1)DRY Principle (1)Elasticsearch (1)ELK Stack (1)Environment Variables (1)Environments (1)GitHub Copilot (1)Governance (1)HashiCorp (1)Home Lab (1)IAM Roles (1)IDE Extensions (1)Image Optimization (1)Infrastructure Maintenance (1)Ingress controller (1)K8s Services (1)Kibana (1)Least Privilege (1)LimitRange (1)Linux (1)LoadBalancer (1)Logging (1)Modules (1)Monorepo (1)Multi Stage Build (1)Multi Tenancy (1)Namespaces (1)Networking (1)NetworkPolicy (1)Nginx (1)NodePort (1)OIDC (1)OPA/Rego (1)OpenTelemetry (1)OpenTofu (1)Parallelism (1)PersistentVolume (1)PersistentVolumeClaim (1)Pipeline Security (1)Platform Engineering (1)Policy as Code (1)Productivity (1)PruneMate (1)Pulumi (1)RBAC (1)Remote state (1)ResourceQuota (1)Secrets (1)Security groups (1)Shell Scripting (1)StatefulSet (1)Storage Management (1)StorageClass (1)Subnets (1)Supply Chain Security (1)Terminal (1)TLS (1)Traefik (1)Trivy (1)Vpc (1)VS Code (1)Vulnerability Scanning (1)Workspaces (1)SortNewest firstOldest firstA to ZShortest read first

[![Understanding Kubernetes Services: ClusterIP vs NodePort vs LoadBalancer](/_astro/hero.DBNjupL__148EQW.webp)](/devtips/post/kubernetes-services-clusterip-nodeport-loadbalancer)

## [Understanding Kubernetes Services: ClusterIP vs NodePort vs LoadBalancer](/devtips/post/kubernetes-services-clusterip-nodeport-loadbalancer)

-   [DevOps & Kubernetes](/devtips/categories/devops--kubernetes)
-   23 Dec 2025
-   04 Mins read

If you're working with Kubernetes, you've probably noticed that Pods come and go, and their IP addresses keep changing. That's where Services come in. They give you a stable way to keep your apps acce

[#Kubernetes](/devtips/tags/kubernetes)[#K8s Services](/devtips/tags/k8s-services)[#ClusterIP](/devtips/tags/clusterip)+5 tags

[Read Tip](/devtips/post/kubernetes-services-clusterip-nodeport-loadbalancer)

[![Managing Terraform at Scale with Terragrunt](/_astro/hero.DUZZoi07_ZRPUOh.webp)](/devtips/post/terraform-terragrunt-wrappers)

## [Managing Terraform at Scale with Terragrunt](/devtips/post/terraform-terragrunt-wrappers)

-   [Cloud & Infrastructure Automation](/devtips/categories/cloud--infrastructure-automation)
-   21 Dec 2025
-   03 Mins read

The problem with Terraform at scale Duplicated code across environments If you're managing infrastructure with Terraform across several environments or projects, you've probably hit the point

[#Terraform](/devtips/tags/terraform)[#Terragrunt](/devtips/tags/terragrunt)[#Infrastructure as Code](/devtips/tags/infrastructure-as-code)+4 tags

[Read Tip](/devtips/post/terraform-terragrunt-wrappers)

[![HashiCorp Pulls the Plug on CDKTF](/_astro/hero.BBIsBB2t_Z22hNwP.webp)](/devtips/post/cdktf-deprecation-hashicorp-terraform)

## [HashiCorp Pulls the Plug on CDKTF](/devtips/post/cdktf-deprecation-hashicorp-terraform)

-   [Cloud & Infrastructure Automation](/devtips/categories/cloud--infrastructure-automation)
-   15 Dec 2025
-   03 Mins read

CDKTF is officially deprecated The deprecation announcement Well, it finally happened. HashiCorp (now owned by IBM) officially deprecated the Cloud Development Kit for Terraform (CDKTF)

[#Terraform](/devtips/tags/terraform)[#CDKTF](/devtips/tags/cdktf)[#HashiCorp](/devtips/tags/hashicorp)+6 tags

[Read Tip](/devtips/post/cdktf-deprecation-hashicorp-terraform)

[![Tracing Microservices with OpenTelemetry](/_astro/hero.BOHz8WyH_Z1IEpz3.webp)](/devtips/post/tracing-microservices-opentelemetry)

## [Tracing Microservices with OpenTelemetry](/devtips/post/tracing-microservices-opentelemetry)

-   [Observability & Monitoring](/devtips/categories/observability--monitoring)
-   23 Jun 2025
-   03 Mins read

Why monitor your microservices? The complexity of distributed systems If you're juggling multiple services, it's hard to track how they work together. OpenTelemetry lets you follow one reques

[#OpenTelemetry](/devtips/tags/opentelemetry)[#Microservices](/devtips/tags/microservices)[#Distributed Tracing](/devtips/tags/distributed-tracing)+4 tags

[Read Tip](/devtips/post/tracing-microservices-opentelemetry)

[![Organizing Terraform with Modules](/_astro/hero.5dVJEd3X_Z16rLJ8.webp)](/devtips/post/organizing-terraform-modules)

## [Organizing Terraform with Modules](/devtips/post/organizing-terraform-modules)

-   [Cloud & Infrastructure Automation](/devtips/categories/cloud--infrastructure-automation)
-   16 Jun 2025
-   03 Mins read

Why organize your Terraform code? Where the complexity comes from If you're using Terraform to build out your infrastructure, you know how quickly things get complicated. Every new environmen

[#Terraform](/devtips/tags/terraform)[#Infrastructure as Code](/devtips/tags/infrastructure-as-code)[#Modules](/devtips/tags/modules)+4 tags

[Read Tip](/devtips/post/organizing-terraform-modules)

[![Securing CI/CD with IAM Roles](/_astro/hero.Bl9B2DZz_ZDIuXQ.webp)](/devtips/post/securing-cicd-with-iam-roles)

## [Securing CI/CD with IAM Roles](/devtips/post/securing-cicd-with-iam-roles)

-   [DevOps & DevSecOps](/devtips/categories/devops--devsecops)
-   09 Jun 2025
-   03 Mins read

Why secure your CI/CD pipeline? Why pipeline security matters Your pipeline holds credentials for every environment you deploy to, which makes it one of the most valuable targets you own. A s

[#CICD Security](/devtips/tags/cicd-security)[#IAM Roles](/devtips/tags/iam-roles)[#Least Privilege](/devtips/tags/least-privilege)+4 tags

[Read Tip](/devtips/post/securing-cicd-with-iam-roles)

[](/devtips/page/2)

[1](/devtips)[2](/devtips/page/2)[3](/devtips/page/3)

Page 3 of 3

### [Categories](/devtips/categories)

-   [Devops devsecops5](/devtips/categories/devops--devsecops)
-   [Kubernetes containers4](/devtips/categories/kubernetes--containers)
-   [Aws1](/devtips/categories/aws)
-   [Networking1](/devtips/categories/networking)
-   [Cloud1](/devtips/categories/cloud)
-   [Cloud infrastructure automation4](/devtips/categories/cloud--infrastructure-automation)
-   [Containers docker1](/devtips/categories/containers--docker)
-   [Developer tools productivity1](/devtips/categories/developer-tools--productivity)
-   [Kubernetes devops1](/devtips/categories/kubernetes--devops)
-   [Kubernetes cloud native1](/devtips/categories/kubernetes--cloud-native)
-   [Devops kubernetes1](/devtips/categories/devops--kubernetes)
-   [Devops1](/devtips/categories/devops)
-   [Ci cd1](/devtips/categories/ci-cd)
-   [Productivity1](/devtips/categories/productivity)
-   [Devops observability1](/devtips/categories/devops--observability)
-   [Observability monitoring1](/devtips/categories/observability--monitoring)

### [Tags](/devtips/tags)

[#Linux1](/devtips/tags/linux)[#Terminal1](/devtips/tags/terminal)[#Command line1](/devtips/tags/command-line)[#Bash1](/devtips/tags/bash)[#Shell scripting1](/devtips/tags/shell-scripting)[#Developer tools1](/devtips/tags/developer-tools)[#Productivity1](/devtips/tags/productivity)[#Argocd1](/devtips/tags/argocd)[#Gitops2](/devtips/tags/gitops)[#Kubernetes7](/devtips/tags/kubernetes)[#Continuous delivery1](/devtips/tags/continuous-delivery)[#Helm2](/devtips/tags/helm)[#Cicd3](/devtips/tags/cicd)[#Deployment2](/devtips/tags/deployment)[#Aws2](/devtips/tags/aws)[#Vpc1](/devtips/tags/vpc)[#Networking1](/devtips/tags/networking)[#Subnets1](/devtips/tags/subnets)[#Security groups1](/devtips/tags/security-groups)[#Terraform6](/devtips/tags/terraform)[#Cdktf1](/devtips/tags/cdktf)[#Hashicorp1](/devtips/tags/hashicorp)[#Infrastructure as code3](/devtips/tags/infrastructure-as-code)[#Devops7](/devtips/tags/devops)[#Pulumi1](/devtips/tags/pulumi)[#Opentofu1](/devtips/tags/opentofu)[#Iac4](/devtips/tags/iac)[#Cloud infrastructure2](/devtips/tags/cloud-infrastructure)[#Container security1](/devtips/tags/container-security)[#Vulnerability scanning1](/devtips/tags/vulnerability-scanning)[#Trivy1](/devtips/tags/trivy)[#Docker3](/devtips/tags/docker)[#Supply chain security1](/devtips/tags/supply-chain-security)[#Devsecops3](/devtips/tags/devsecops)[#Containers1](/devtips/tags/containers)[#Home lab1](/devtips/tags/home-lab)[#Storage management1](/devtips/tags/storage-management)[#Prunemate1](/devtips/tags/prunemate)[#Docker cleanup1](/devtips/tags/docker-cleanup)[#Infrastructure maintenance1](/devtips/tags/infrastructure-maintenance)[#Multi stage build1](/devtips/tags/multi-stage-build)[#Container image1](/devtips/tags/container-image)[#Distroless1](/devtips/tags/distroless)[#Buildkit1](/devtips/tags/buildkit)[#Security2](/devtips/tags/security)[#Image optimization1](/devtips/tags/image-optimization)[#Github actions2](/devtips/tags/github-actions)[#Secrets1](/devtips/tags/secrets)[#Environment variables1](/devtips/tags/environment-variables)[#Oidc1](/devtips/tags/oidc)[#Credentials1](/devtips/tags/credentials)[#Github copilot1](/devtips/tags/github-copilot)[#Ai tools1](/devtips/tags/ai-tools)[#Vs code1](/devtips/tags/vs-code)[#Developer productivity1](/devtips/tags/developer-productivity)[#Ai agents1](/devtips/tags/ai-agents)[#Automation1](/devtips/tags/automation)[#Ide extensions1](/devtips/tags/ide-extensions)[#Containerization1](/devtips/tags/containerization)[#Microservices3](/devtips/tags/microservices)[#Infrastructure2](/devtips/tags/infrastructure)[#Ingress controller1](/devtips/tags/ingress-controller)[#Nginx1](/devtips/tags/nginx)[#Traefik1](/devtips/tags/traefik)[#Aws alb1](/devtips/tags/aws-alb)[#Tls1](/devtips/tags/tls)[#Cert manager1](/devtips/tags/cert-manager)[#Namespaces1](/devtips/tags/namespaces)[#Multi tenancy1](/devtips/tags/multi-tenancy)[#Rbac1](/devtips/tags/rbac)[#Networkpolicy1](/devtips/tags/networkpolicy)[#Resourcequota1](/devtips/tags/resourcequota)[#Limitrange1](/devtips/tags/limitrange)[#Platform engineering1](/devtips/tags/platform-engineering)[#Persistentvolume1](/devtips/tags/persistentvolume)[#Persistentvolumeclaim1](/devtips/tags/persistentvolumeclaim)[#Storageclass1](/devtips/tags/storageclass)[#Statefulset1](/devtips/tags/statefulset)[#Aws ebs1](/devtips/tags/aws-ebs)[#Aws efs1](/devtips/tags/aws-efs)[#Csi driver1](/devtips/tags/csi-driver)[#K8s services1](/devtips/tags/k8s-services)[#Clusterip1](/devtips/tags/clusterip)[#Nodeport1](/devtips/tags/nodeport)[#Loadbalancer1](/devtips/tags/loadbalancer)[#Container orchestration1](/devtips/tags/container-orchestration)[#Cloud native2](/devtips/tags/cloud-native)[#Modules1](/devtips/tags/modules)[#Cloud automation2](/devtips/tags/cloud-automation)[#Policy as code1](/devtips/tags/policy-as-code)[#Oparego1](/devtips/tags/oparego)[#Compliance1](/devtips/tags/compliance)[#Governance1](/devtips/tags/governance)[#Cicd security1](/devtips/tags/cicd-security)[#Iam roles1](/devtips/tags/iam-roles)[#Least privilege1](/devtips/tags/least-privilege)[#Cloud security1](/devtips/tags/cloud-security)[#Pipeline security1](/devtips/tags/pipeline-security)[#Ci cd1](/devtips/tags/ci-cd)[#Caching1](/devtips/tags/caching)[#Parallelism1](/devtips/tags/parallelism)[#Monorepo1](/devtips/tags/monorepo)[#Logging1](/devtips/tags/logging)[#Elk stack1](/devtips/tags/elk-stack)[#Elasticsearch1](/devtips/tags/elasticsearch)[#Kibana1](/devtips/tags/kibana)[#Observability2](/devtips/tags/observability)[#Monitoring2](/devtips/tags/monitoring)[#Terragrunt2](/devtips/tags/terragrunt)[#Dry principle1](/devtips/tags/dry-principle)[#Workspaces1](/devtips/tags/workspaces)[#Environments1](/devtips/tags/environments)[#Remote state1](/devtips/tags/remote-state)[#Opentelemetry1](/devtips/tags/opentelemetry)[#Distributed tracing1](/devtips/tags/distributed-tracing)
