All posts

AWS Basics #1: Account, Region, and Availability Zone
11 min read

AWS Basics #1: Account, Region, and Availability Zone

Where the cloud and AWS sit, the account and root user, regions and Availability Zones (AZ) around the world, and the difference between global and regional services — the map you need before putting anything on AWS.

Build a Blog with Next.js #2: Post List and Detail Page
8 min read

Build a Blog with Next.js #2: Post List and Detail Page

Read MDX files directly with fs in a Server Component, compile the body in a dynamic route, and render it on the screen — the core flow.

Docker Basics #5: Registries — Docker Hub, GHCR, push/pull
7 min read

Docker Basics #5: Registries — Docker Hub, GHCR, push/pull

To use an image you built on a different machine, you push it to a registry. The structure of an image name, logging into Docker Hub and GHCR, the tag/push/pull flow, and pinning images precisely with digests.

Modern Python Basics #2: Variables, basic types, and type hints
4 min read

Modern Python Basics #2: Variables, basic types, and type hints

Python is a dynamic language, but modern Python writes types from the start. int/str/bool/None and built-in generics, the int | None shortcut, and mypy/pyright.

RHEL Basics #3: dnf and Package Management — repo, modules, AppStream
12 min read

RHEL Basics #3: dnf and Package Management — repo, modules, AppStream

Package management on RHEL is unified under one command: dnf. From everyday commands like install / remove / search / info / history, to why BaseOS and AppStream are split apart, to picking a specific version of a package via modules, to safely attaching external repos like EPEL — all in one post.

Build a Blog with Next.js #1: Getting Started and Design
7 min read

Build a Blog with Next.js #1: Getting Started and Design

Apply Server Components and Server Actions from the Modern React series to a real project. The first post covers requirements, data model, folder structure, and MDX setup.

Docker Basics #4: Volumes and Networks — Data and Communication
9 min read

Docker Basics #4: Volumes and Networks — Data and Communication

Keeping data alive after a container dies, and getting containers to talk to each other by name. The difference between bind mount and named volume, the bridge / host / none network modes, and -p port mapping — all in one place.

IT Literacy for Non-Developers #4: Bugs, Hotfixes, and Rollbacks — How Developers Respond to Incidents
6 min read

IT Literacy for Non-Developers #4: Bugs, Hotfixes, and Rollbacks — How Developers Respond to Incidents

This post explains what developers mean by bug, hotfix, and rollback when something breaks - without any code. It walks through how a dev team responds when a problem hits, and what changes once a non-developer understands that flow.

Modern Python Basics #1: Getting Started and uv Setup
6 min read

Modern Python Basics #1: Getting Started and uv Setup

Why Python again — what changed in 3.14 since the 2017 tutorial, and building a first project with uv that replaces pip + venv + pyenv all at once.

RHEL Basics #2: Setup — Installing RHEL 9, Subscription Manager, First Login
13 min read

RHEL Basics #2: Setup — Installing RHEL 9, Subscription Manager, First Login

Grab the RHEL 9 ISO via Developer Subscription, build a VM in UTM or VirtualBox, walk through the Anaconda installer, register with subscription-manager, and clean up the small post-install items (hostname / time / dnf update / sudo user) — all in one pass.

Docker Basics #3: Images and Containers — build, run, ps, logs, exec
8 min read

Docker Basics #3: Images and Containers — build, run, ps, logs, exec

The day-to-day Docker CLI commands in one place. build options, the run flags you actually use (-d, --name, --rm, -e), and the lifecycle that runs through ps , logs , exec , stop , rm.

Modern React + Next.js #6 Server Actions and Forms (Wrap-up)
11 min read

Modern React + Next.js #6 Server Actions and Forms (Wrap-up)

Use Server Actions to handle form submission and server-data mutation simply, polish the UX with useActionState/useFormStatus, and reflect on the series.