Advanced scripting for DevSecOps
01Bash internals: subshells, FDs & process substitutionSubshells vs the current shell, file descriptors, process substitution and coprocesses.35 min02Industrial-grade error handling in Bashset -Eeuo pipefail honestly, ERR traps, error propagation and stack traces.35 min03Text processing without forks: expansion, awk & sedParameter expansion, awk and sed that replace pipelines of cat/grep/cut.35 min
01Signals, traps, timeouts & graceful shutdownSIGTERM/SIGINT handling, cleanup, timeouts and job control.35 min02Hardening Bash: injection, IFS, PATH & temp racesCommand/argument injection, IFS attacks, PATH hygiene, safe temp files and privilege drop.40 min03Testing Bash: bats, ShellCheck & CI gatesUnit-testing scripts with bats, mocking, and ShellCheck as a merge gate.30 min
01Concurrency: threads, processes, asyncio & the GILPick the right model — the GIL, I/O vs CPU bound, and safe subprocess fan-out.40 min02Robust CLIs: click, typing, dataclasses & packagingStructured tools with subcommands, type hints, config and clean exit codes.35 min03Resilience: exceptions, retries, timeouts & cleanupException hygiene, retry/backoff, timeouts, and context managers that always clean up.35 min
01Driving systems safely: subprocess, SSH & HTTPsubprocess without shell=True, paramiko/SSH, and resilient API clients.40 min02Parsing at scale: generators, ReDoS & structured logsStreaming huge inputs, catastrophic-regex safety, and JSON logging.35 min03Secure Python: deserialization, validation & secretspickle/yaml.load dangers, input validation, and the secrets module.35 min
01Packaging & distribution: pinning, pex/shiv & containersHash-pinned deps, single-file zipapps, and distroless tool containers.35 min02Observable scripts: exit codes, logs, metrics & idempotencyMeaningful exit codes, structured logs, --dry-run, idempotency and audit trails.30 min03Testing, CI & supply chain: pytest, mypy, SBOM & signingpytest/coverage, mypy, pre-commit, SBOMs and signing the tools you ship.35 min
Final exam
Test yourself on everything
60 questions drawn from all 5 sections — every answer explained as you pick.