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

# DevTips

Discover practical developer tips, best practices, productivity hacks, and quick solutions for common development challenges. Learn efficient workflows and time-saving techniques.

[All Tips16](/devtips)[Devops devsecops4](/devtips/categories/devops--devsecops)[Kubernetes containers2](/devtips/categories/kubernetes--containers)[Cloud infrastructure automation3](/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)[View All…](/devtips/categories)

[![7 Reasons Learning the Linux Terminal is Worth It (Even for Beginners)](/_astro/hero.Ci9C_A6W_1AKnQ0.webp)](/devtips/post/7-reasons-learning-linux-terminal-worth-it-beginners)

## [7 Reasons Learning the Linux Terminal is Worth It (Even for Beginners)](/devtips/post/7-reasons-learning-linux-terminal-worth-it-beginners)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [DevOps & DevSecOps](/devtips/categories/devops--devsecops)
-   Published: 05 Jan, 2026

Why Learn the Linux Terminal? The Terminal's Enduring Value Is the Linux terminal still relevant in 2026? You bet it is. Even with all the fancy graphical interfaces and AI assistants ou

[#Linux](/devtips/tags/linux)[#Terminal](/devtips/tags/terminal)[#Command Line](/devtips/tags/command-line)+4 tags

[Read More](/devtips/post/7-reasons-learning-linux-terminal-worth-it-beginners)

[![Docker Is Eating Your Disk Space (And How PruneMate Fixes It)](/_astro/hero.BD8-gtdG_26qrXW.webp)](/devtips/post/docker-disk-space-prunemate)

## [Docker Is Eating Your Disk Space (And How PruneMate Fixes It)](/devtips/post/docker-disk-space-prunemate)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [Containers & Docker](/devtips/categories/containers--docker)
-   Published: 02 Jan, 2026

The Problem: Docker Is Eating Your Disk Space Symptoms of Docker Disk Space Issues Your Docker host is running out of space. Again. You've been spinning up containers, testing new servic

[#Docker](/devtips/tags/docker)[#Containers](/devtips/tags/containers)[#Home Lab](/devtips/tags/home-lab)+5 tags

[Read More](/devtips/post/docker-disk-space-prunemate)

[![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)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [DevOps & Kubernetes](/devtips/categories/devops--kubernetes)
-   Published: 23 Dec, 2025

Hey, trying to figure out how to expose your Kubernetes apps? If you're working with Kubernetes, you've probably noticed that Pods come and go, and their IP addresses keep changing. That's where

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

[Read More](/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)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [Cloud & Infrastructure Automation](/devtips/categories/cloud--infrastructure-automation)
-   Published: 21 Dec, 2025

The Problem with Terraform at Scale Code Duplication Across Environments Tired of copying Terraform code across every environment? If you're managing infrastructure with Terraform across

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

[Read More](/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)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [Cloud & Infrastructure Automation](/devtips/categories/cloud--infrastructure-automation)
-   Published: 15 Dec, 2025

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 More](/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)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [Observability & Monitoring](/devtips/categories/observability--monitoring)
-   Published: 23 Jun, 2025

Why Monitor Your Microservices? The Complexity of Distributed Systems Hey, want to know what’s going on in your microservices? If you’re juggling multiple services, it’s hard to track ho

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

[Read More](/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)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [Cloud & Infrastructure Automation](/devtips/categories/cloud--infrastructure-automation)
-   Published: 16 Jun, 2025

Why Organize Your Terraform Code? The Growing Complexity Challenge Hey there! Is your Terraform code starting to look a bit wild? If you're using Terraform to build out your infrastructu

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

[Read More](/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)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [DevOps & DevSecOps](/devtips/categories/devops--devsecops)
-   Published: 09 Jun, 2025

Why Secure Your CI/CD Pipeline? The Importance of Pipeline Security Hey, want to keep your CI/CD pipeline safe? If you’re working on software, locking down your pipeline is a must. Using

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

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

[](/devtips)

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

Page 2 of 2

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

-   [Devops devsecops4](/devtips/categories/devops--devsecops)
-   [Kubernetes containers2](/devtips/categories/kubernetes--containers)
-   [Cloud infrastructure automation3](/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)
-   [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)[#Kubernetes5](/devtips/tags/kubernetes)[#Continuous delivery1](/devtips/tags/continuous-delivery)[#Helm2](/devtips/tags/helm)[#Cicd2](/devtips/tags/cicd)[#Deployment2](/devtips/tags/deployment)[#Terraform4](/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)[#Iac3](/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)[#Security1](/devtips/tags/security)[#Image optimization1](/devtips/tags/image-optimization)[#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)[#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)[#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)[#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)[#Terragrunt1](/devtips/tags/terragrunt)[#Dry principle1](/devtips/tags/dry-principle)[#Opentelemetry1](/devtips/tags/opentelemetry)[#Distributed tracing1](/devtips/tags/distributed-tracing)
