All posts

Angular Basics #2: Components and Template Syntax
8 min read

Angular Basics #2: Components and Template Syntax

Create your first Angular project with Angular CLI, then walk through the structure of a component, interpolation, and how to assemble components.

AWS Basics #3: Cost Management — Billing Alerts, Cost Explorer, Free Tier
10 min read

AWS Basics #3: Cost Management — Billing Alerts, Cost Explorer, Free Tier

The limits of the Free Tier, setting up AWS Budgets / billing alerts, analyzing the bill with Cost Explorer, and a tag strategy that holds up in production — the guardrail that prevents first-bill shock.

Build a Blog with Next.js #4: Comments (Server Actions)
8 min read

Build a Blog with Next.js #4: Comments (Server Actions)

Let users comment on each post. Handle form submission and validation with Server Actions, polish UX with useActionState, and apply the patterns to a real build.

Django Basics #2: Project Setup — uv + django-admin startproject
6 min read

Django Basics #2: Project Setup — uv + django-admin startproject

Create a Django 5 project with uv, lay down the first structure with startproject/startapp, and reach runserver in one breath.

Docker Intermediate #1: Multi-stage Builds and Image Slimming
8 min read

Docker Intermediate #1: Multi-stage Builds and Image Slimming

Splitting build dependencies from runtime dependencies inside a single Dockerfile. Multi-stage patterns for Go, Node, and Python, all the way to distroless and scratch — the workflow that takes images from gigabytes down to tens of megabytes.

Modern Python Basics #4: Collections and comprehensions
4 min read

Modern Python Basics #4: Collections and comprehensions

The role of list/tuple/dict/set, plus comprehensions and generator expressions for building new collections in a single line.

RHEL Basics #5: Users / Groups / Permissions — UID/GID, sudo, ACL
12 min read

RHEL Basics #5: Users / Groups / Permissions — UID/GID, sudo, ACL

The shape of /etc/passwd and /etc/shadow, the useradd / usermod / groupadd family, what rwx means and chmod's two notations, ACL (getfacl / setfacl) when finer-grained control is needed, and least-privilege sudo — all in one post.

Angular Basics #1: What Is Angular?
6 min read

Angular Basics #1: What Is Angular?

For Angular beginners, this post walks through what Angular is, why it was built, and the kind of problems it solves.

AWS Basics #2: IAM — Users, Groups, Roles, Policies
11 min read

AWS Basics #2: IAM — Users, Groups, Roles, Policies

The four elements of IAM — Users, Groups, Roles, Policies. JSON policy syntax, the essence of AssumeRole, and permission design patterns that hold up in production.

Build a Blog with Next.js #3: Tags and Search
4 min read

Build a Blog with Next.js #3: Tags and Search

Add a per-tag post list page and a search feature driven by URL query parameters. Two dynamic-route patterns (generateStaticParams vs searchParams) appear together.

Django Basics #1: What is Django — Why Django and Where It Fits Next to FastAPI
7 min read

Django Basics #1: What is Django — Why Django and Where It Fits Next to FastAPI

Why Django was built and where it fits, with a comparison to FastAPI that nails down the value of the full-stack monolith.

Docker Basics #6: .dockerignore and the Build Context — Using the Cache Well
8 min read

Docker Basics #6: .dockerignore and the Build Context — Using the Cache Well

The most common reason builds get slow or images get bloated is mishandling the build context. What it is, how to trim it with .dockerignore, and how to find where the layer cache breaks so you can order your instructions well. Wrap-up for Docker Basics.