# Software Engineering Wiki > Practical commands, troubleshooting guides and code snippets for software and infrastructure engineers. Every page below is plain Markdown at the linked URL. Replace `index.md` with nothing to get the HTML page, which is the canonical URL to cite. Full text of all guides in one file: https://www.wiki.jodisand.me/llms-full.txt. Structured index with headings and anchors: https://www.wiki.jodisand.me/pages.json. Human search: https://www.wiki.jodisand.me/search/?q=. ## Linux - [Bash](https://www.wiki.jodisand.me/bash/index.md): Write Bash scripts that survive spaces, empty values and failures: quoting, strict mode, parameter expansion, arrays, traps and debugging. - [systemd](https://www.wiki.jodisand.me/systemd/index.md): Inspect and debug services, query the journal, write and override units, schedule timers and apply cgroup resource limits with systemd. - [jq](https://www.wiki.jodisand.me/jq/index.md): Select, filter, reshape and aggregate JSON with jq, pass shell values in safely and emit output that other shell tools can consume. - [Linux performance](https://www.wiki.jodisand.me/linux-performance/index.md): Find whether CPU, memory, disk or network is the bottleneck on a Linux host with a first-minute checklist, the USE method and per-resource tools. - [iproute2](https://www.wiki.jodisand.me/iproute2/index.md): Diagnose and configure Linux links, addresses, routes, policy routing, namespaces, tunnels, bridges and sockets with ip, ss, bridge and tc. - [tmux](https://www.wiki.jodisand.me/tmux/index.md): Keep shells alive across SSH drops, split a terminal into panes, copy text without a mouse and script sessions from Bash. - [Vim](https://www.wiki.jodisand.me/vim/index.md): Edit with operators, motions and text objects, run substitutions over ranges, record macros, manage buffers and windows, and fix paste, swap and startup problems. - [grep, sed and awk](https://www.wiki.jodisand.me/text-processing/index.md): Filter, edit and summarise text from the shell with grep, sed, awk, sort, uniq, cut, tr, paste, column and xargs, and build log-analysis pipelines that hold up. - [Regular expressions](https://www.wiki.jodisand.me/regex/index.md): Write patterns that match what you mean across grep, PCRE, Go, Python and JavaScript, avoid catastrophic backtracking and test them from the shell. - [Files and directories](https://www.wiki.jodisand.me/files/index.md): Find, copy, sync, archive and watch files on Linux with find, fd, rsync, tar, zstd, du, lsof and inotifywait, and handle permissions and hostile filenames safely. - [Disks and storage](https://www.wiki.jodisand.me/storage/index.md): Partition, format, mount, encrypt and grow Linux block storage with lsblk, parted, LVM, ext4, XFS, Btrfs, mdadm and cryptsetup, and diagnose full or slow disks. - [Users, permissions and SELinux](https://www.wiki.jodisand.me/users/index.md): Manage accounts, groups and sudo rules, read and fix file modes, ACLs and capabilities, and decode SELinux denials on Fedora and RHEL. - [firewalld, nftables and iptables](https://www.wiki.jodisand.me/firewall/index.md): Open, forward, NAT, rate-limit and log traffic on Linux with firewalld zones and rich rules, native nftables rulesets, and iptables translation, without breaking containers. - [tcpdump and Wireshark](https://www.wiki.jodisand.me/tcpdump/index.md): Capture the right packets with BPF filters, read tcpdump output, capture in containers and over SSH, script with tshark, and diagnose retransmissions, MTU, TLS and DNS faults in Wireshark. ## Kubernetes - [Kubernetes](https://www.wiki.jodisand.me/kubernetes/index.md): Inspect workloads with kubectl, understand the object model behind them and find why a pod is not running, ready or reachable. - [Helm](https://www.wiki.jodisand.me/helm/index.md): Render, install, upgrade and roll back Helm releases, and understand the template and values behaviour behind most chart surprises. - [Argo CD](https://www.wiki.jodisand.me/argocd/index.md): Diagnose Argo CD Applications that will not sync or stay healthy, and control drift, sync order, pruning and multi-tenant access. - [Gateway API](https://www.wiki.jodisand.me/gateway-api/index.md): Configure GatewayClass, Gateway and Route objects, know which team owns each, and find why a route receives no traffic. - [Cilium](https://www.wiki.jodisand.me/cilium/index.md): Understand Cilium's identity-based policy and eBPF datapath, then trace dropped or misrouted flows with cilium-dbg and Hubble. ## Containers and IaC - [Docker](https://www.wiki.jodisand.me/docker/index.md): Run, build, inspect and clean up containers, images, volumes and networks on a single Docker daemon, and diagnose containers that exit or cannot connect. - [Docker Compose](https://www.wiki.jodisand.me/docker-compose/index.md): Run and debug multi-container stacks with Compose v2: commands, the compose.yaml keys that matter, and how recreation, dependencies and overrides behave. - [Terraform](https://www.wiki.jodisand.me/terraform/index.md): Plan and apply safely, structure modules and variables, refactor and repair state, and recover from drift, lock and provider errors in Terraform. - [Ansible](https://www.wiki.jodisand.me/ansible/index.md): Write idempotent Ansible playbooks, resolve inventory and variable precedence, dry-run with check mode, and debug plays that fail or change the wrong thing. - [AWS](https://www.wiki.jodisand.me/aws/index.md): Resolve AWS CLI v2 credentials and profiles, filter output, and run and debug common EC2, S3, IAM, logs, RDS, Lambda and EKS operations. - [Podman](https://www.wiki.jodisand.me/podman/index.md): Run rootless containers and pods with Podman, mount volumes past SELinux, and manage them as systemd services with Quadlet and auto-update. - [GitHub Actions](https://www.wiki.jodisand.me/github-actions/index.md): Write GitHub Actions workflows that are fast, least-privilege and hard to exploit: triggers, matrices, caching, reusable workflows, OIDC and debugging failed runs with gh. - [Make and just](https://www.wiki.jodisand.me/make/index.md): Write Makefiles that rebuild only what changed and justfiles that run project commands: rules, variables, pattern rules, parallel builds and the tab bugs. ## Observability - [Prometheus](https://www.wiki.jodisand.me/prometheus/index.md): Write PromQL for incidents, read counters and histograms correctly, write alerting and recording rules, and keep series cardinality under control. - [OpenTelemetry](https://www.wiki.jodisand.me/opentelemetry/index.md): Configure OpenTelemetry SDKs and Collector pipelines, propagate trace context, choose a sampling strategy and find where telemetry is lost. - [Grafana and Loki](https://www.wiki.jodisand.me/grafana/index.md): Provision Grafana datasources, dashboards and alerts as code, drive it through the HTTP API, and ship, query and tune logs in Loki with LogQL and logcli. ## Networking - [DNS](https://www.wiki.jodisand.me/dns/index.md): Resolve and trace names with dig and resolvectl, read the answer, reason about TTLs and caching, and debug search domains and Kubernetes DNS. - [HTTP and curl](https://www.wiki.jodisand.me/http/index.md): Use curl to test HTTP endpoints, break request time into DNS, TCP, TLS and server phases, script calls safely, and read what status codes mean. - [SSH](https://www.wiki.jodisand.me/ssh/index.md): Configure OpenSSH clients and servers, manage keys and agents, forward ports through bastions and read the debug output that names the real failure. - [SCP](https://www.wiki.jodisand.me/scp/index.md): Copy files over SSH with scp, understand its SFTP-based transfer since OpenSSH 9.0, and know when rsync, sftp or tar is the better tool. - [Cisco IOS](https://www.wiki.jodisand.me/cisco/index.md): Diagnose and configure Cisco IOS and IOS XE devices: show commands, interfaces, VLANs, OSPF, BGP, ACLs and changes that roll back if they lock you out. - [Network automation](https://www.wiki.jodisand.me/netauto/index.md): Collect device state, parse CLI output into data and push configuration changes safely with Netmiko, NAPALM, Nornir and Ansible. ## Proxies and routing - [Traefik](https://www.wiki.jodisand.me/traefik/index.md): Configure Traefik v3 entrypoints, routers, middlewares and services from Docker, Kubernetes or files, and debug a route that does not match. - [Squid](https://www.wiki.jodisand.me/squid/index.md): Run and debug a Squid forward proxy: http_access rule order, ACLs, caching, authentication, parent proxies and access.log analysis. - [Nginx](https://www.wiki.jodisand.me/nginx/index.md): Configure Nginx as a reverse proxy, TLS terminator and static file server, understand which server and location handle a request, and read the logs when it returns 502. - [Caddy](https://www.wiki.jodisand.me/caddy/index.md): Write a Caddyfile that proxies, serves files and issues its own certificates, run Caddy in a container, drive it through the admin API and fix ACME and upstream failures. ## Data - [PostgreSQL](https://www.wiki.jodisand.me/postgresql/index.md): Diagnose a slow or blocked PostgreSQL database: psql, query plans, indexes, locks, vacuum and bloat, pooling, replication and backups. - [Redis](https://www.wiki.jodisand.me/redis/index.md): Inspect and fix a slow or full Redis: data structure costs, eviction, persistence, keyspace scans, locks, replication and cluster checks. - [Elasticsearch](https://www.wiki.jodisand.me/elasticsearch/index.md): Check cluster health, fix unassigned shards, write mappings, queries and aggregations, and tune slow search or indexing in Elasticsearch. - [SQL](https://www.wiki.jodisand.me/sql/index.md): Write correct SQL across PostgreSQL, MySQL and SQLite: joins, window functions, CTEs, upserts, indexes, isolation levels, NULL rules and reusable queries. - [SQLite](https://www.wiki.jodisand.me/sqlite/index.md): Use SQLite well: the sqlite3 shell, type affinity, WAL mode and pragmas, locking, JSON and FTS5, backups, tuning, and safe access from Go and Python. - [MySQL and MariaDB](https://www.wiki.jodisand.me/mysql/index.md): Operate MySQL 8.4 and MariaDB 11.4: client, users and grants, InnoDB, EXPLAIN, slow log, indexes, dumps and mariadb-backup, replication, my.cnf and lock diagnosis. - [Kafka](https://www.wiki.jodisand.me/kafka/index.md): Operate Apache Kafka: topics, partitions and consumer groups, the shell tools, offset resets, lag, retention, compaction, producer and consumer tuning, and what to check when it misbehaves. ## Security and identity - [TLS and certificates](https://www.wiki.jodisand.me/tls/index.md): Inspect and verify certificate chains with OpenSSL, issue keys and CSRs, install trust anchors, configure servers and diagnose failed TLS handshakes. - [Vault](https://www.wiki.jodisand.me/vault/index.md): Operate HashiCorp Vault: seal state, tokens, auth methods, policies, KV, dynamic credentials, PKI and transit, and why a request is denied. - [FreeIPA / Red Hat IdM](https://www.wiki.jodisand.me/idm/index.md): Identity, Kerberos, host enrolment, DNS and certificates in one domain, with the commands for enrolment, RBAC and replication problems. - [Red team](https://www.wiki.jodisand.me/redteam/index.md): Technique notes for authorised offensive testing, arranged by ATT&CK phase, with the tooling and the telemetry each step leaves behind. ## Virtualisation - [Proxmox VE](https://www.wiki.jodisand.me/proxmox/index.md): Run VMs and containers on Proxmox VE from the shell: qm, pct, pvesm, pvecm, vzdump, cloud-init templates, SDN and the API, plus fixes for locked guests and lost quorum. - [libvirt and KVM](https://www.wiki.jodisand.me/libvirt/index.md): Run KVM guests with virsh and virt-install: cloud-image builds with cloud-init, snapshots, storage, NAT and bridged networking, PCI passthrough, live migration and the usual failures. ## Languages - [Go](https://www.wiki.jodisand.me/go/index.md): Idioms for errors, concurrency and interfaces, the toolchain commands worth memorising, and the traps that survive code review. - [Python](https://www.wiki.jodisand.me/python/index.md): Write operational Python scripts that fail safely: subprocess, paths, logging, HTTP, configuration, concurrency, uv packaging and troubleshooting. - [Rust](https://www.wiki.jodisand.me/rust/index.md): Ownership and borrowing in practice, error handling, async, and the cargo commands that matter day to day. - [TypeScript](https://www.wiki.jodisand.me/typescript/index.md): Type-check TypeScript with tsc 7, narrow and validate untrusted data, pick tsconfig flags that catch real bugs, and fix common compiler errors. ## Practice - [Git](https://www.wiki.jodisand.me/git/index.md): Inspect history, undo changes safely, rebase and resolve conflicts, recover lost work, and understand the object model behind each Git command. - [System design](https://www.wiki.jodisand.me/design/index.md): Latency and capacity numbers, scaling, caching, load balancing, resilience, data and API decisions, and the failure mode each one introduces. - [Testing](https://www.wiki.jodisand.me/testing/index.md): Choose the right test layer, write fast deterministic tests, use fakes and fixtures, and run, isolate and de-flake tests in pytest, Go and Vitest. - [LLM APIs](https://www.wiki.jodisand.me/llm-apis/index.md): Call the Anthropic and OpenAI APIs: models, streaming, tool use, structured output, caching, rate limits, errors and key handling. ## Scripts - [Shell one-liners](https://www.wiki.jodisand.me/oneliners/index.md): Copy-pasteable one-line commands for files, processes, disk, network, DNS, systemd, Git, containers, Kubernetes, SSH, TLS, JSON and archives on a Linux host. - [Operations scripts](https://www.wiki.jodisand.me/scripts/index.md): Complete Bash and Python scripts for disk alerts, certificate expiry, health checks, backups, cleanup, audits, metrics export and parallel SSH, ready to drop into cron or a timer. ## Optional - [Snippets](https://www.wiki.jodisand.me/snippets/index.md): Small third-party code examples by language, without validation or error handling. - [C# snippets](https://www.wiki.jodisand.me/snippets/csharp/index.md): Small C# methods for collections, strings, maths and dates, each with a short explanation and an example call. - [Go snippets](https://www.wiki.jodisand.me/snippets/go/index.md): Small Go functions for slices, strings and maths, each with a short explanation and an example call. - [JavaScript snippets](https://www.wiki.jodisand.me/snippets/javascript/index.md): Small JavaScript functions for arrays, objects, strings, dates and the browser DOM, each with a short explanation and an example call. - [Python snippets](https://www.wiki.jodisand.me/snippets/python/index.md): Small Python functions for lists, dictionaries, strings, maths and dates, each with a short explanation and an example call. - [React snippets](https://www.wiki.jodisand.me/snippets/react/index.md): React components such as accordions, modals and data tables, and hooks for state, events and browser APIs, each with an example use.