Skip to content
tezvyn:

CI/CD & Automation

GitHub Actions, Terraform, ArgoCD, IaC, pipelines

40 bites

Test yourself: Top 30 easy CI/CD & Automation concepts questionsMultiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Easy concepts in CI/CD & Automation

easy2 min read

Build Automation: The Engine of CI/CD

Build automation is a repeatable script that turns source code into a runnable application. It's the first step in any CI/CD pipeline, compiling code and running tests. The main footgun is creating brittle scripts that only work on one developer's machine.

easy2 min read

Automated Testing: Catch Bugs Before They Ship

Automated testing is like a robot QA engineer checking every code change instantly. It's the engine of CI/CD pipelines, running tests on every commit to give developers immediate feedback on business risks.

Distributed Version Control (DVCS): Everyone Gets a Copy
easy2 min read

Distributed Version Control (DVCS): Everyone Gets a Copy

A DVCS gives every developer a full, independent copy of the repository, history and all. This is Git's model, making commits and branches instant because they're local. The footgun: your local copy isn't the team's truth until you push and pull to sync.

easy2 min read

Git Commit: A Snapshot, Not a Diff

A Git commit is a permanent snapshot of your entire project, not just the changes. It's a save point containing the full state of all files, linked to the previous commit to form a historical chain.

easy2 min read

.gitignore: Telling Git What to Ignore

A .gitignore file is a deny-list for your repository, telling Git which files and directories to intentionally leave untracked. Use it to keep build artifacts, log files, and local configs out of your commit history.

easy2 min read

Git Branch: A Lightweight Pointer, Not a Full Copy

A Git branch is a lightweight pointer to a commit, not a heavy copy of your code. This makes creating and switching branches nearly instant. Use them to isolate new features or bug fixes. The footgun is forgetting a branch is local until you push.

Build Artifact: The Packaged Output of a CI Run
easy2 min read

Build Artifact: The Packaged Output of a CI Run

A build artifact is the packaged result of a CI run, like a compiled binary or a zipped web app. Pipelines use artifacts to pass this output between stages, from building to testing and deploying.

easy2 min read

Make: The Original Task Runner

Make automates tasks by following a recipe in a makefile. It intelligently runs only the necessary steps by checking dependencies, saving time during builds. While common for compiling code, it can run any shell command.

Build Dependency Management: Your Project's Recipe
easy2 min read

Build Dependency Management: Your Project's Recipe

Dependency management is your project's recipe, ensuring everyone uses the same library versions. It's used everywhere from web apps pulling React via npm to Java services using Maven.

easy2 min read

Unit Testing: Verifying Code's Smallest Parts

Think of unit tests as checking each Lego brick for defects before building the castle. They confirm your smallest code pieces, like a single function, behave correctly in isolation.

easy2 min read

Integration Testing: Do Your Components Play Well Together?

Integration testing verifies that different software modules, like an API and a database, work correctly together. It's used to catch bugs in the interactions between components, such as data format mismatches. The footgun is writing slow, brittle tests.

easy2 min read

Smoke Testing: Is This Build Even Worth Testing?

Smoke testing asks: 'Is this build so broken it's not even worth testing?' It's a quick, shallow check of critical functions, run on every new build before more exhaustive QA. The footgun is thinking a passed smoke test means the build is bug-free.

easy2 min read

Package Manifest: Your Project's List of Ingredients

A package manifest is your project's recipe, listing all dependencies and build scripts. Package managers use it to install the right libraries. The footgun is forgetting that the manifest (e.g., package.json) and the lockfile work together for consistency.

easy1 min read

Semantic Versioning: A Three-Part Numbering System

Semantic Versioning (SemVer) is a widely used convention for assigning software versions. It uses a three-part Major.Minor.Patch number to create unique identifiers for software states.

easy2 min read

Docker Registry: A Library for Your Images

A Docker Registry is like GitHub, but for Docker images. It's a centralized storage system where you push and pull images, enabling sharing and deployment. The biggest footgun is using the :latest tag, which can lead to unpredictable builds.

Transitive Dependencies: The Hidden Baggage in Your Code
easy2 min read

Transitive Dependencies: The Hidden Baggage in Your Code

Think of transitive dependencies as your dependency's dependencies. You add one library, but it pulls in others you didn't explicitly ask for. This happens in any project using a package manager.

easy2 min read

Jenkinsfile: Your CI/CD Pipeline as Code

A Jenkinsfile is a text file that defines your entire CI/CD pipeline as code, living in your source control. It automates build, test, and deploy steps. The main footgun is confusing its two syntaxes: Declarative is simpler, while Scripted offers more power.

Pipeline Triggers: The 'If This, Then That' of CI/CD
easy2 min read

Pipeline Triggers: The 'If This, Then That' of CI/CD

Pipeline triggers are the "if this, then that" for automation. They kick off builds on a code push (CI), run tests for a pull request (PR), or execute jobs on a schedule. The footgun: many systems enable triggers on all branches by default, causing unwanted.

Terraform: Manage Infrastructure as Code
easy2 min read

Terraform: Manage Infrastructure as Code

Terraform lets you define cloud infrastructure—servers, databases, networks—in a text file, like a blueprint. It reads this file and builds everything for you, making setups on AWS, GCP, or Azure repeatable.

easy2 min read

AWS CloudFormation: Your AWS Infrastructure as a Blueprint

AWS CloudFormation is your infrastructure's blueprint. Declare AWS resources in a YAML/JSON file, and AWS builds it. This is perfect for creating repeatable, version-controlled environments.

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles