| Career levels: L1 to L7 |
| Minimal and non-root user in container images |
| Obsessing over tooling |
| Allow yourself to duplicate code |
| Organisation mailing groups |
| The API misnomer: What it has got to do with web development? |
| Policy, procedure, standard, and guideline |
| Terraform data source vs remote state |
| Thick JavaScript clients and JSON APIs may not be the answers |
| Hypermedia and HTML |
| Visualising the pieces in AWS SSO |
| For developer: Getting started on GA4 and GTM |
| What is AppSec |
| Installing PostgreSQL extensions on GitHub Actions |
| Receiving emails with Google Workspace, Migadu, Amazon SES, and Microsoft Outlook |
| When do you need MX, SPF, DKIM, and DMARC |
| Squash to latest commit with `git commit --amend` |
| Use your macOS system Python |
| Becoming a senior in your career |
| Firefox with zero browsing history |
| Go: Can't evaluate struct methods in templates |
| The role of a Security Engineer |
| Kubernetes Ingress as load balancer |
| Kubernetes Service and kube-proxy |
| Ordering HTTP mirrors in Maven 3.8.x |
| Migrating website domain |
| Primer on Google Cloud Platform IAM |
| Team, Project, and Product Managers |
| Queue or Pub/Sub |
| Two meanings of OIDC in AWS EKS |
| Bootstrapping your own domain |
| Apex domains and DNS zones |
| Enforcing HTTPS for 302 redirect on AWS ALB and Nginx |
| The bytes in little endian |
| Complementing Vim with Visual Studio Code |
| Go local variable shadowing |
| Lamenting the web dominated by JavaScript |
| Prematurely optimising website performance by almost 5x |
| How to manage SSH keys |
| On AWS Config Custom Rule, and its friends |
| Landing Page With Amazon S3, CloudFront, AWS Certificate Manager |
| Amazon S3 Block Public Access in layman |
| Securing AWS KMS key using key policy and IAM policy |
| JavaScript module import hoisting |
| How aws-iam-authenticator works |
| A new tech blog |