Posts

Book: SQL Performance Explained
Tech note: Arch Linux on MBP Early 2015 i5 2.7GHz
Tech note: Android LineageOS 15.1 without Google
SSH tunneling
From CGI to web frameworks
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