Topics
Check out the topics that interest you.
Bash
Quoting, arrays, traps, parameter expansion and the other corners of Bash that decide whether a script works or only seems to.
Shell Scripting
POSIX sh, zsh and the portability gaps between them, for scripts that behave the same on a laptop, a server and a CI runner.
Linux
The Linux side of a developer's day: processes, files, permissions, services and what to check when a box misbehaves.
Command Line
Everyday terminal tools like grep, find, xargs and jq, shown with real examples you can paste and adapt.
Automation
Turn the chore you did three times this week into a script, a scheduled job or a small tool that runs without you.
Git
Branches, rebases, recovering lost commits and the hooks that make Git enforce your team's habits for you.
Docker
Images, Compose and the shell around them, from slimmer builds to debugging a container that exits immediately.
Python
Python for glue work: file handling, subprocesses and CLIs, plus how to tell when a shell script has outgrown itself.
Go
Small Go programs that ship as a single binary, for the day a fragile script deserves to be replaced.
DevOps
Deploys, releases, rollbacks and server upkeep, from the first rsync to a pipeline you trust on a Friday.
Text Processing
Cut, sort, sed and awk pipelines for reshaping logs, CSVs and config files without opening an editor.
Regular Expressions
Pattern matching across grep, sed, PCRE and Python, and the dialect differences that make the same expression fail.
SSH and Networking
SSH keys and tunnels, curl, DNS lookups and port checks, for when a connection will not come up.
Cron and Scheduling
Cron and systemd timers done properly: quiet on success, loud on failure and safe to run twice.
CI/CD
Pipelines that build, test and deploy, and the shell steps inside them that tend to break first.
Security
Secrets handling, file permissions, injection and least privilege, aimed at people who write the scripts and own the servers.
Debugging
Tracing a misbehaving script or program to its cause with set -x, strace, logs and a careful read of the error.
Testing
Bats, ShellCheck and plain assertions for scripts and code, so a change does not need a prayer.
Performance
Profiling, benchmarking and the fixes that survive a second measurement, for slow scripts and slow systems.
Databases
Dumps, restores, ad-hoc queries and safe data moves for MySQL, PostgreSQL and SQLite from the terminal.
Tooling
Editors, terminals, dotfiles, package managers and build tools: the setup around your code that saves time every day.
Software Design
Structuring scripts and projects so they stay readable at ten times the size, and the trade-offs behind each choice.
APIs
Calling, testing and debugging HTTP APIs with curl and jq, and wiring them into scripts that cope with failure.