Learn. Build. Secure. Deploy. Document.
A hands-on repository documenting my journey into DevSecOps through practical projects, experiments, and real-world software engineering practices.
DevSecOps Learning Lab is my personal engineering laboratory where I explore the technologies, principles, and workflows used to build, secure, deploy, and operate modern software systems.
Rather than simply following tutorials, this repository is organized as a collection of small hands-on projects. Each project focuses on solving a specific engineering problem while gradually building a complete understanding of modern software engineering and DevSecOps practices.
The goal is to learn each concept step by step, document what I learn, and eventually apply these skills to larger real-world projects such as SmartFlood V4, and future production-ready applications.
This repository serves as both my learning journal and a record of my growth as I transition from building applications to understanding how software is securely developed, deployed, and operated in production environments.
This repository exists to:
- Learn DevOps and DevSecOps through hands-on projects.
- Understand how modern software is built, deployed, and maintained.
- Practice containerization using Docker.
- Automate development workflows with CI/CD.
- Explore cloud deployment strategies.
- Learn secure software delivery practices.
- Document engineering concepts and lessons learned.
- Apply newly learned technologies to real-world projects.
- Linux Fundamentals
- Git & GitHub Workflow
- PNPM
- Docker Fundamentals
- Docker Images
- Docker Containers
- Docker Volumes
- Docker Networks
- Docker Compose
- Dockerfiles & Custom Images
- Multi-Container Applications
- GitHub Actions
- Automated Testing
- Continuous Integration
- Secrets Management
- Continuous Deployment
- Deployment Pipelines
- Environment Variables & Secrets Management
- Dependency Scanning
- Static Application Security Testing (SAST)
- CodeQL
- Trivy Container Scanning
- Container Security
- Secure CI/CD Pipelines
- Branch Protection
- OWASP Security Practices
- Nginx
- Reverse Proxy
- HTTPS
- SSL Certificates
- PostgreSQL in Docker
- SQL CRUD
- Docker Volumes
- Persistence
- Database Migrations (conceptually)
- Backups
- Redis
- Application Logging
- Health Checks
- Docker Health Checks
- Prometheus installation
- Metrics endpoint
- Grafana
- Dashboards
- Visualization
- Alerting fundamentals
- Grafana alerts
- Alert rules and thresholds
- Notification channels (conceptually)
- Incident response basics (conceptually)
- Kubernetes Fundamentals
- What problem Kubernetes solves
- Cluster, Node, Pod, Container
- Install kubectl
- Install Kind
- Create your first cluster
- Pods
- Create Pods
- Inspect Pods
- Delete Pods
- Deployments
- Deployment Fundamentals
- ReplicaSets
- Self-Healing
- Scaling Deployments
- Services
- Labels
- Selectors
- ClusterIP
- NodePort
- LoadBalancer
- Exposing Deployments
- Pod Networking
- ConfigMaps
- Secrets
- Helm
- AWS Fundamentals
- IAM
- EC2
- S3
- VPC Basics
- Deploy an Existing Project to AWS
- Managed Kubernetes (EKS or equivalent)
- Cloud Cost Awareness
- Billing Alerts
- Terraform Fundamentals
- Provision Infrastructure with Terraform
- Remote State
- GitOps Fundamentals
- ArgoCD or Flux
- Infrastructure as Code Best Practices
- Data Structures & Algorithms
- Arrays
- Hash Maps
- Trees
- Graphs
- Sorting
- Searching
- Big-O Analysis
- Systems Fundamentals
- Database Internals
- TCP/IP Fundamentals
- Operating Systems
- Complexity Analysis of Real Projects
- LLM API Fundamentals
- Prompt Engineering
- Structured Outputs
- Function / Tool Calling
- Retrieval-Augmented Generation (RAG)
- Embeddings & Vector Databases
- AI Coding Workflows
- AI System Reliability
- URL Shortener
- Rate Limiter
- Notification System
- Chat Application
- Scalability Fundamentals
- Database Trade-offs
- Caching Strategies
- Designing Existing Projects
DevSecOps-Learning-Lab/
01-linux/
02-git/
03-pnpm/
04-docker/
05-docker-compose/
06-github-actions/
07-ci-cd/
08-security/
09-nginx/
10-postgresql/
11-redis/
12-monitoring/
13-kubernetes/
14-cloud-engineering/
15-infrastructure-as-code/
16-computer-science/
17-ai-engineering/
18-system-design/
docs/
resources/
templates/
checkpoints/
README.md
Each directory contains small hands-on projects, experiments, notes, and documentation focused on a specific topic within the DevOps and DevSecOps roadmap.
This repository follows the same engineering process for every topic:
- Understand the problem.
- Learn the underlying concepts.
- Build a working solution.
- Validate the implementation.
- Document the lessons learned.
- Apply the knowledge to a real-world project.
The goal is not to memorize tools, but to understand the engineering principles behind them and when to apply them.
The knowledge gained from this repository will be continuously applied to larger projects, including:
- π SmartFlood V4
- π Future security-focused applications
- βοΈ Cloud-native full-stack systems
This approach ensures that every concept learned is reinforced through practical implementation rather than isolated experimentation.
Every completed checkpoint concludes with:
- The problem it solves
- Why the technology exists
- How it works internally
- When it should be used
- Challenges encountered
- Lessons learned
- Real-world applications
π Actively Learning
This repository is continuously evolving as I progress through modern DevSecOps, cloud engineering, infrastructure, and software engineering practices.
Each completed phase represents practical implementation, experimentation, and documented learning rather than theoretical study alone.
Every topic in this repository follows a standardized checkpoint workflow.
A checkpoint is only considered complete when it has been:
- π― Understood
- π¬ Implemented
- π§ͺ Tested
- π Documented
- π Reflected upon
Each checkpoint typically includes:
- Objective
- Topics Covered
- Questions Explored
- Hands-on Labs
- Key Concepts
- Reflection
- Next Steps
The goal is not to complete checklists, but to build engineering intuition through practical experience.