Practical Privacy Habits for Developers
Trace where user data travels, keep it out of development workflows and logs, limit access, and test deletion with a synthetic account.
Trace where user data travels, keep it out of development workflows and logs, limit access, and test deletion with a synthetic account.
Learn to spot C++ memory bugs involving ownership, dangling pointers, container invalidation, shared ownership, copying, and size calculations.
Check IP addresses, routes, and DNS on Linux, with Windows and macOS equivalents. Learn which tool manages settings and how to troubleshoot a lab connection safely.
Set up a small virtual-machine lab with clear network boundaries, a recoverable baseline, and a first exercise you can observe and restore.
Learn how to distinguish vulnerabilities, attacks, alerts, and incidents, along with the access and network terms needed to describe security findings accurately.
Set up a Linux development machine with sensible defaults for updates, dependencies, credentials, containers, Git, network access, and recovery.
Compare Java and C++ through builds, object lifetime, safety, performance, and tools, then try a small project in both languages.
Learn to scope a threat model, map trust boundaries, write specific threat statements, and turn concerns into checks in an owned app or authorized lab.
Learn a practical approach to secure code review: trace caller-controlled data, verify authorization, inspect failure paths, and test access boundaries safely.
Harden a Linux host by checking services, updates, accounts, SSH, firewall rules, permissions, backups, and logsāthen verify that the workload still works.