Skip to content
tezvyn:

CI/CD & Automation

GitHub Actions, Terraform, ArgoCD, IaC, pipelines

75 bites

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

Easy everything in CI/CD & Automation, page 3

easy1 min read

Structured Logging: Logs as Data, Not Strings

Treat logs as structured data (like JSON), not just plain text. This makes them machine-readable and queryable, letting you filter, search, and create dashboards on specific fields (e.g., user_id, trace_id).

easy2 min read

Observability: Seeing Inside Your System

Observability is the ability to ask new questions about your system's health without shipping new code. It's crucial for debugging distributed systems and is the first step in triaging an outage.

easy1 min read

Software Composition Analysis (SCA): Know Your Dependencies

Software Composition Analysis (SCA) is like checking the ingredient list for your software. It scans the open-source libraries you use for known vulnerabilities, license issues, and outdated versions.

easy2 min read

SAST: A Security Spellchecker for Your Code

SAST is like a spellchecker for security, scanning your source code for vulnerabilities before it ever runs. It integrates into your CI/CD pipeline to give feedback on every commit. The main footgun is noise: false positives can overwhelm developers.

easy2 min read

Threat Modeling: Thinking Like an Attacker

Threat modeling is thinking like an attacker to find security flaws before they're exploited. It systematically analyzes your system to prioritize defenses against the most likely threats. The footgun is treating it as a one-off task, not a continuous process.

easy2 min read

Deployment Rollbacks: Your CI/CD Undo Button

A rollback strategy is your CI/CD's undo button, letting you revert to a known good state when a new deployment fails. It's essential for production environments. The biggest mistake is not having one, forcing a frantic 'hotfix' under pressure.

Rolling Deployment: Update Servers Without Downtime
easy2 min read

Rolling Deployment: Update Servers Without Downtime

A rolling deployment upgrades servers one by one, like swapping train cars while the train moves. A load balancer directs users to active servers, keeping the app online. The main footgun is incompatibility between old and new code running at the same time.

Docker Compose: A Tool for Containerized Applications
easy1 min read

Docker Compose: A Tool for Containerized Applications

Docker Compose is a tool in the Docker suite for running applications in containers. It ensures your app runs the same everywhere by packaging it with its dependencies, solving the 'works on my machine' problem.

easy2 min read

Container Image: A Blueprint for Your Application

A container image is a static blueprint for your application, bundling code, runtime, and settings. You build images to ship software for Docker or Kubernetes, which then run them as live containers.

Dockerfile: The Recipe for Your Container
easy2 min read

Dockerfile: The Recipe for Your Container

A Dockerfile is a recipe for building a container image. It's a text file of commands that automates an application's environment setup, ensuring it runs identically anywhere. The footgun is creating bloated images with unnecessary build tools.

Software Containers: Portable, Isolated Applications
easy2 min read

Software Containers: Portable, Isolated Applications

Think of a container as a standardized box for your app, bundling its code and all dependencies. This lets you run it consistently anywhere, from your laptop to the cloud.

easy1 min read

The Twelve-Factor App: Store Config in the Environment

Your app's code is the blueprint; its config is the specific address and utility hookups. Store config—database URLs, API keys—in environment variables, not in the code. The footgun is hardcoding secrets, making your code base impossible to open-source safely.

easy2 min read

Configuration Files: Separating Code from Settings

A config file separates a program's behavior from its code, allowing you to change settings like database URLs without recompiling. They're used for API keys, feature flags, and environment-specific values. The footgun is committing secrets to version control.

easy2 min read

Environment Variables: Configuration Outside Code

Environment variables are settings passed to your app from the outside world, letting you change behavior without touching code. Use them for API keys or database URLs. The biggest footgun is committing secrets to version control instead of using variables.

Vagrant: Your Dev Environment as Code
easy2 min read

Vagrant: Your Dev Environment as Code

Vagrant is a scriptable remote for virtual machines, defining a dev environment in one text file. It ensures teams have identical, isolated setups, solving "it works on my machine" problems.

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.

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.

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.

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.

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.

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