
CI/CD with GitHub Actions: A Pipeline That Actually Catches Bugs
Build a practical GitHub Actions pipeline from scratch — linting, tests, caching, matrix builds, and safe deploys — with the gotchas that waste an afternoon if you don't know them.
Founder & Lead Developer
Full-stack developer focused on building and shipping real software. Writes about web development, backend systems, and the tooling that makes it all work — grounded in projects actually built and problems actually solved.
25 articles published

Build a practical GitHub Actions pipeline from scratch — linting, tests, caching, matrix builds, and safe deploys — with the gotchas that waste an afternoon if you don't know them.

A practical guide to managing configuration and secrets across local, CI, and production — .env files, the twelve-factor approach, secret managers, and the mistakes that leak keys to GitHub.

Master Docker fundamentals with hands-on examples. Learn containers, images, volumes, networking, and Docker Compose for local development and production deployment.

Learn how to build lightning-fast websites with Astro, a modern static site generator that ships zero JavaScript by default.

Master TypeScript with practical patterns for types, interfaces, generics, and error handling. Learn to write code that's both type-safe and readable.

How to deploy new code without dropping requests — health checks, rolling and blue-green strategies, backward-compatible migrations, and the database changes that quietly break everything.

Debugging is a repeatable process, not luck. Learn the scientific method for bugs, debugger techniques beyond print statements, binary search, and how to fix the class of bug instead of the instance.

Identify and fix React performance bottlenecks. Learn useMemo, useCallback, code splitting, virtualization, and profiling techniques with real-world examples.

Master Git with practical workflows, branching strategies, commit conventions, and collaboration patterns. Learn GitFlow, GitHub Flow, and trunk-based development.

A practical guide to testing JavaScript and TypeScript with Vitest — unit tests, mocking, async testing, coverage, and how to write tests that catch regressions instead of just inflating a number.

How to give and receive code reviews that actually improve the codebase and the team — what to look for, what to ignore, how to phrase feedback, and how to keep reviews fast.

Master PostgreSQL with practical examples covering schema design, complex queries, indexes, JSON support, and performance optimization for production applications.

Learn how to build a production-ready REST API with Node.js, Express, and PostgreSQL. Covers authentication, validation, error handling, and best practices.

A practical guide to caching with Redis — cache-aside, TTLs, invalidation, the thundering herd problem, and how to avoid serving users data that's quietly wrong.

Protect your web applications from common vulnerabilities. Learn about XSS, CSRF, SQL injection, authentication, and security best practices with code examples.

A clear-eyed comparison of session-based and token-based authentication — how each works, the real security tradeoffs, the logout problem with JWTs, and how to choose without cargo-culting.

Master responsive web design with modern CSS techniques including container queries, fluid typography, CSS Grid, aspect ratios, and mobile-first patterns.

A practical introduction to web accessibility — semantic HTML, keyboard navigation, ARIA done right, color contrast, and how to test. The changes that help real users and happen to help your SEO too.

A practical breakdown of LCP, INP, and CLS — what each metric measures, the common causes of bad scores, and concrete fixes. Plus how field data differs from lab data and why it matters.

Structured logging, log levels, the three pillars of observability, and how to debug production issues you can't reproduce — without drowning in noise or leaking sensitive data.

Why slow work doesn't belong in a web request, how job queues fix it, and the hard parts nobody warns you about — retries, idempotency, dead letters, and the at-least-once delivery trap.

Deep dive into CSS Grid Layout with practical examples. Learn to build responsive, complex layouts without frameworks using modern CSS Grid techniques.

Joining a new project or diving into open source? A systematic approach to understanding code you didn't write — where to start, how to trace execution, and how to build a mental map fast.

The terminal fundamentals that pay back every day — pipes and composition, finding files and text fast, history tricks, and the handful of modern tools worth installing. Practical, not exhaustive.

The API design decisions you can't easily undo — URL structure, pagination that survives large datasets, consistent errors, and versioning strategies that don't break every client.