All posts

Python Testing #6: Test Design — Good Tests and How to Read Coverage
6 min read

Python Testing #6: Test Design — Good Tests and How to Read Coverage

Test design fundamentals from the AAA pattern and behavior-driven tests to test double terminology, dealing with flaky tests, and reading pytest-cov coverage numbers the right way.

AWS Certified Solutions Architect - Associate (SAA-C03) #3 Domain 1-2 Secure Architectures — KMS and Encryption
7 min read

AWS Certified Solutions Architect - Associate (SAA-C03) #3 Domain 1-2 Secure Architectures — KMS and Encryption

The second post of the SAA-C03 security domain. It covers KMS key types (AWS managed, customer managed, customer provided), how envelope encryption works, the difference between at-rest and in-transit encryption, the encryption options for S3, EBS, and RDS and how to encrypt resources that already exist, key policies and cross-account key sharing, and the difference from CloudHSM.

Certified Kubernetes Administrator (CKA) #1: The Exam Environment — alias and dry-run, vim/yq setup, time management
8 min read

Certified Kubernetes Administrator (CKA) #1: The Exam Environment — alias and dry-run, vim/yq setup, time management

The opening post of the Certified Kubernetes Administrator (CKA) series. We lay out the structure of the 2-hour hands-on exam, the weight of the five domains (Troubleshooting at 30% is the crux), the passing line, and the testing environment — then drill the setup (alias, dry-run, vim/yq, etcdctl, systemctl) that decides how your exam time runs. This 27-part series targets a CKA pass, wrapping up with a hands-on mock exam in #27.

Python Testing #5: Testing the Outside World — Files, HTTP, Databases, and Web Frameworks
6 min read

Python Testing #5: Testing the Outside World — Files, HTTP, Databases, and Web Frameworks

A test that mocks everything guarantees nothing about real behavior. A strategy for testing the outside world: write real files with tmp_path, block only the network boundary with respx, and reset databases with transaction rollbacks.

AWS Certified Cloud Practitioner (CLF-C02) #10: Full-Scale Mock Exam — 50 Questions with Explanations
19 min read

AWS Certified Cloud Practitioner (CLF-C02) #10: Full-Scale Mock Exam — 50 Questions with Explanations

The final post of the CLF-C02 series. Fifty questions sized to match the real exam domain weights (24/30/34/12%). Domain 1 (Cloud Concepts) 12 questions, Domain 2 (Security) 15 questions, Domain 3 (Cloud Technology) 17 questions, Domain 4 (Billing) 6 questions. The real exam is 65 questions in 90 minutes; this mock is scored over 50 questions, target 60–75 minutes, and 36+ correct (72%) puts you in safe passing territory. Each question is followed by the answer and an explanation.

AWS Certified Solutions Architect - Associate (SAA-C03) #2 Domain 1-1 Secure Architectures — IAM in Depth
8 min read

AWS Certified Solutions Architect - Associate (SAA-C03) #2 Domain 1-1 Secure Architectures — IAM in Depth

The first post of the SAA-C03 security domain. After a quick review of the four IAM components (User/Group/Role/Policy), it covers the policy evaluation logic (explicit Deny wins), the difference between trust policies and permission policies, temporary credentials and AssumeRole via STS, cross-account access, and permission boundaries and SCPs at the SAA level. On the exam, the security domain carries the largest weight at 30%, and IAM is its core.

K8s Practice #6: Operations Checklist — Upgrades / Backup,Recovery / Cost / Security
13 min read

K8s Practice #6: Operations Checklist — Upgrades / Backup,Recovery / Cost / Security

The last post in the K8s Practice series. Bringing up a cluster and operating it safely for a year are different kinds of work. This post organizes the EKS upgrade cycle, node group replacement pattern, RDS automated backup and PITR, cost management with Karpenter and Spot, and regular security checks with kube-bench and Trivy. It also includes a retrospective of the 6-post K8s Practice series and the full 26-post K8s track.

Python Testing #4 mock and monkeypatch: Controlling What You Can't Control
7 min read

Python Testing #4 mock and monkeypatch: Controlling What You Can't Control

How to pin down dependencies that change on every run — time, randomness, external APIs — with monkeypatch and unittest.mock, including the patch-path trap and where over-mocking begins.

AWS Certified Cloud Practitioner (CLF-C02) #9 Exam Tips and Common Mistake Patterns
10 min read

AWS Certified Cloud Practitioner (CLF-C02) #9 Exam Tips and Common Mistake Patterns

A condensed read-once-more piece for the moments right before you walk into the CLF-C02 exam. Time management for 65 questions in 90 minutes; common pitfall question shapes like multiple-response and double negatives; pairs of services people confuse (S3 vs EBS, CloudTrail vs Config, ALB vs NLB, and so on); four techniques for narrowing down answers; and a final 30-minute pre-exam checklist. The next post, #10, is the full-scale mock exam.

AWS Certified Solutions Architect - Associate (SAA-C03) #1 Exam Introduction — Exam Structure and Study Roadmap
8 min read

AWS Certified Solutions Architect - Associate (SAA-C03) #1 Exam Introduction — Exam Structure and Study Roadmap

The opening post of the AWS Certified Solutions Architect - Associate (SAA-C03) series. It covers the structure of 65 questions, 130 minutes, and a 720 passing score; the weight and meaning of the four domains (Security 30% , Resilience 26% , High Performance 24% , Cost 20%); how it differs from Cloud Practitioner; and a study strategy that turns the intuition built on the hands-on [AWS track](/en/posts/aws-basics-1) and [CLF-C02](/en/posts/aws-clf-1-exam-introduction) into design-oriented exam answers. This 16-part series targets a SAA-C03 pass, wrapping up with a full-scale mock exam in #16.

K8s Practice #5: Monitoring & Alerting — Prometheus / CloudWatch / Alertmanager
11 min read

K8s Practice #5: Monitoring & Alerting — Prometheus / CloudWatch / Alertmanager

The `myshop-api` built in [#4](/en/posts/k8s-practice-4) now has code-to-deploy automation, but operations do not work unless you can see what it is doing. This post organizes the EKS cluster observability stack. We install Prometheus + Grafana + Alertmanager at once with kube-prometheus-stack, combine that with CloudWatch via Container Insights and Fluent Bit, standardize myshop-api metrics and alerts via ServiceMonitor / PrometheusRule, and organize the on-call flow with the 4 golden signals rule set and Slack / PagerDuty routing.

Python Testing #3 parametrize and Markers: Multiply Cases, Run Selectively
5 min read

Python Testing #3 parametrize and Markers: Multiply Cases, Run Selectively

How to collapse input-only test variations into one case table with @pytest.mark.parametrize, and run only the tests you want using skip, skipif, xfail, custom markers, and the -m and -k options.