All posts
Certified Kubernetes Security Specialist (CKS) #1: The Exam Environment — CKA prerequisite, tools, time management
The opening post of the Certified Kubernetes Security Specialist (CKS) series. We lay out the structure of the 2-hour hands-on security exam that assumes you already hold CKA, the weight of the six domains, the 67% passing line, and the testing environment — then map out the big picture of the security tools the exam covers (kube-bench, AppArmor, seccomp, OPA/Gatekeeper, Falco, Trivy, cosign) and a strategy for using the docs. This 20-part series targets a CKS pass, wrapping up with a hands-on mock exam in #20.
MIT vs. GPL vs. Apache: Open-Source Licenses Made Simple
This post explains, without any code, that "free" in open source comes with conditions. It covers how the leading licenses — MIT, Apache, and GPL — differ on commercial use and the duty to publish your source, and what to check when you bring one into a product, at a non-developer's level.
Python Automation #5: Reporting Results — Email, Slack, and Discord Notifications
The last piece of automation is reporting. Send Slack and Discord notifications with a single httpx POST, email Excel attachments with smtplib, and keep tokens out of your code with a .env file.
AWS Certified Solutions Architect - Associate (SAA-C03) #9 Domain 3-1 High-Performing Architectures — Choosing Compute
The first post of the SAA-C03 high-performing domain. It covers how to choose the compute that fits a workload: EC2 instance families (general , compute , memory , storage , accelerated) and selection criteria, the performance and cost trade-offs of purchasing options (On-Demand , Reserved , Savings Plans , Spot , Dedicated), and when to pick serverless compute (Lambda , Fargate).
Certified Kubernetes Administrator (CKA) #7: etcd Backup and Restore — etcdctl snapshot save/restore
The seventh post of the Certified Kubernetes Administrator (CKA) series. It lays out the procedure for backing up and restoring etcd — which holds the entire state of your cluster — with etcdctl. You will get the flow into your hands: find the data-dir and certificate paths in the static Pod manifest, take a snapshot with snapshot save, restore it to a new data-dir with snapshot restore, and then bring etcd back up.
Certified Kubernetes Application Developer (CKAD) #2 Pod and Container Lifecycle — Restart Policy and Container States
The second post in the Certified Kubernetes Application Developer (CKAD) series. We build it all by hand: the Pod lifecycle (Pending, Running, Succeeded, Failed, Unknown) and how restartPolicy (Always, OnFailure, Never) shapes workload behavior, container states (Waiting, Running, Terminated) and reasons like CrashLoopBackOff, ImagePullBackOff, and OOMKilled, how to read exit codes, and the troubleshooting sequence the exam loves to test.
Python Automation #4: Web Scraping Part 2 — Dynamic Pages with Playwright
Handle JavaScript-rendered pages that return empty HTML to requests by driving a real browser with Playwright. From install and a first script to wait_for_selector, login automation, infinite scroll, and saving to CSV — all in one pass.
AWS Certified Solutions Architect - Associate (SAA-C03) #8 Domain 2-3 Resilient Architectures — Backup Strategy
The final post of the SAA-C03 resilience domain. It covers incremental storage of EBS snapshots and cross-Region , cross-account copy, snapshot automation with Data Lifecycle Manager, the difference between RDS automated backups and manual snapshots plus point-in-time recovery (PITR), AWS Backup and backup plans for centrally managing multiple services, and immutable backups (Vault Lock).
Certified Kubernetes Administrator (CKA) #6 Cluster Upgrade: kubeadm upgrade plan/apply, Per-node drain
The sixth post in the Certified Kubernetes Administrator (CKA) series. We lay out the standard procedure for bumping a kubeadm cluster up one minor version, in order from the control plane to the worker nodes. We drill kubeadm upgrade plan/apply, swapping the kubelet and kubectl packages, per-node drain and uncordon, and the traps people miss most often in the exam.
Certified Kubernetes Application Developer (CKAD) #1: The Exam Environment — Mastering kubectl, dry-run, and generators
The opening post of the Certified Kubernetes Application Developer (CKAD) series. We map out the structure of the 2-hour hands-on exam, the weight of the five domains, the passing line, and the testing environment — then drill the kubectl setup (alias, dry-run, generators, vim config) that decides how your exam time runs. This 21-part series targets a CKAD pass, wrapping up with a full-scale mock exam in #21.
Python Automation #3: Web Scraping Part 1 — Static Pages with httpx and BeautifulSoup
Let code read the price, notice, and stock pages you check by hand every day. We fetch HTML with httpx, pick out just the data we need with BeautifulSoup CSS selectors, and save it to CSV — static page scraping from start to finish.
AWS Certified Solutions Architect - Associate (SAA-C03) #7 Domain 2-2 Resilient Architectures — DR Patterns
The second post of the SAA-C03 resilience domain. It covers the precise meaning of RTO and RPO, the cost and recovery-time trade-offs of the four disaster recovery (DR) strategies (Backup & Restore , Pilot Light , Warm Standby , Multi-Site Active/Active), and how to implement them with Route 53 failover routing and cross-Region replication (RDS , Aurora Global , DynamoDB global tables , S3 CRR).