Interactive roadmap

    DevSecOps Engineer roadmap

    Designed for developers and operators who want to embed security into every stage of the software delivery pipeline without slowing down releases.

    Your progress0% · 0 of 15 topics
    Done Learning Skipped OptionalClick any topic to learn more and mark your progress.
    1. 1

      Secure CI/CD Pipelines

      0 of 3 done

      Protect your build and deployment workflows from tampering and leaks.

      Keep your delivery gates strict yet helpful so teams can build safely without friction.
    2. 2

      Managing Secrets Safely

      0 of 3 done

      Keep passwords, keys, and tokens out of your source code repository.

      Never hardcode passwords or keys in your source code, no matter how small the project is.
    3. 3

      Automated Code Scanning

      0 of 3 done

      Find vulnerabilities in your own code and third-party packages automatically.

      Run your automated scans often so security feedback arrives while the code is still fresh in your mind.
    4. 4

      Infrastructure as Code Security

      0 of 3 done

      Ensure your cloud infrastructure definitions are secure before provisioning.

      Treat your cloud infrastructure code with the same security rigour as your core application code.
    5. 5

      Monitoring and Response

      0 of 3 done

      Detect active threats in your cloud environment and respond quickly.

      Good visibility turns a chaotic security scare into a calm, structured response.

    Learn it all, with a tutor that never sleeps

    Every topic links to LevelUp lessons, practice exercises and the 24/7 AI Tutor. Your progress updates as you master lessons.

    Every topic explained

    Step 1: Secure CI/CD Pipelines

    Understand how attackers target automation servers and how to lock down your build runners.
    Read more

    Pipeline security involves protecting your automation servers and build runners from unauthorized access and malicious code injection. Attackers often target CI/CD pipelines because a compromised runner gives them direct access to deployment credentials and production environments.

    Think of your build server like a secure factory floor where raw code is turned into finished software. If an outsider sneaks into the factory, they can tamper with the assembly line.

    Securing these workflows matters because your pipeline has the keys to your kingdom; locking down runners ensures that only trusted code gets built and shipped.

    • Isolate build runners in separate networks
    • Limit runner permissions to necessary tools only
    • Regularly patch your automation server software
    GitHub Actions Security Guide
    Require reviews and automated checks before merging code to production branches.
    Read more

    Branch protection rules enforce quality gates on your source code repository, requiring peer reviews and passing test suites before changes merge. This stops any single developer from pushing broken or malicious code straight to production.

    Imagine a bank vault that requires two keys turned at the same time to open. Branch protection acts in the same way for your codebase.

    This practice matters because it prevents accidental mistakes and rogue updates from reaching your users, keeping your main software branch stable and secure.

    • Require at least one code review for merges
    • Mandate passing status checks before merging
    • Prevent force pushes on main branches
    (optional)
    Cryptographically sign your build artifacts to prove they haven't been modified in transit.
    Read more

    Artifact signing uses cryptography to stamp your compiled software packages, proving they originated from your team and remained unaltered during transit. If anyone tampers with the file, the verification signature breaks.

    Consider this like a tamper-evident seal on medicine packaging; if the seal is broken, you know not to trust the contents.

    Artifact signing matters because it stops supply chain attacks where malicious actors try to swap out your legitimate application files with their own compromised versions.

    • Use cryptographic keys to sign build outputs
    • Verify signatures before deploying packages
    • Store private signing keys securely

    Step 2: Managing Secrets Safely

    Use automated tools to catch accidental API keys and passwords before they reach GitHub.
    Read more

    Secret detection scans automatically search your codebase for accidentally committed API keys, passwords, and private certificates before they reach public or shared repositories. These tools act as an automated safety net for human errors.

    Picture a metal detector at an airport security gate catching a stray pair of scissors in your carry-on bag.

    Catching secrets early matters because exposed credentials are one of the most common ways attackers gain initial access to cloud environments and customer data.

    • Scan every commit using pre-commit hooks
    • Run repository history checks regularly
    • Revoke and rotate any leaked credentials instantly
    Store sensitive configuration in dedicated encrypted vaults rather than plain text files.
    Read more

    Secret management vaults are dedicated, encrypted databases designed specifically to store and control access to sensitive configuration data like database passwords and API tokens. They replace risky plain text configuration files.

    Think of this as a digital safe deposit box where keys are kept under lock and key, rather than leaving your house keys under the doormat.

    Using a vault matters because it centralizes access control and ensures sensitive data is encrypted both at rest and in transit.

    • Centralize all application secrets in one vault
    • Encrypt data at rest and in transit
    • Audit who accesses specific secrets
    HashiCorp Vault Documentation
    (optional)
    Inject secrets into applications at runtime so they never touch disk storage.
    Read more

    Dynamic injection passes secrets directly to your application at runtime from a secure vault, meaning sensitive values never touch disk storage or configuration files. The application fetches what it needs just as it starts up.

    This is like a hotel room door opening with a temporary electronic key card that expires after your stay, rather than handing out physical keys.

    This matters because it minimizes the footprint of your credentials, reducing the risk of a breach if someone manages to read your server files.

    • Fetch secrets into application memory at startup
    • Avoid writing credentials to local files
    • Clear sensitive data from memory when shutting down

    Step 3: Automated Code Scanning

    Scan your source code for common programming flaws like SQL injection before running it.
    Read more

    Static Application Security Testing examines your source code for common programming flaws, such as SQL injection or cross-site scripting, without actually executing the program. It acts as an automated spelling and grammar checker for security.

    Imagine a proofreader scanning a book manuscript for logical plot holes before it goes to the printer.

    SAST matters because finding bugs during development is significantly cheaper and faster to fix than discovering them after your application is live in production.

    • Scan source code during local builds or pull requests
    • Focus on high-severity findings first
    • Tune rules to reduce noisy false positives
    Check your open-source libraries for known security bugs and outdated versions.
    Read more

    Dependency checks scan your third-party open-source libraries against public vulnerability databases to flag outdated and insecure packages. Modern apps rely heavily on external code, making this a vital oversight step.

    Think of this like checking your car's component parts against manufacturer recall lists to ensure a faulty brake part isn't installed.

    This matters because a large percentage of application vulnerabilities come from third-party code rather than software your own team writes.

    • Inventory all direct and indirect dependencies
    • Automate checks for known security vulnerabilities
    • Update flagged packages promptly
    (optional)
    Inspect Docker images for vulnerable operating system packages and misconfigurations.
    Read more

    Container image scanning inspects Docker and OCI images for vulnerable operating system packages, misconfigured file permissions, and exposed secrets before deployment. It ensures your packaged runtime environment is clean.

    Consider this like inspecting shipping containers for structural damage and contraband before loading them onto a cargo ship.

    Container scanning matters because a vulnerable base image can give attackers an easy entry point into your containerised workloads.

    • Scan base images before building your app
    • Rebuild images regularly to include OS patches
    • Use minimal base images to reduce attack surface

    Step 4: Infrastructure as Code Security

    Catch open S3 buckets and overly permissive firewall rules in your Terraform code.
    Read more

    Infrastructure as Code scanning analyzes your Terraform or CloudFormation templates to catch misconfigurations, such as public S3 storage buckets or wide-open firewall ports, before deployment. It spots architectural flaws on paper.

    Think of this as an architect reviewing blueprints to ensure the doors and windows have proper locks before construction begins.

    Iac scanning matters because a single misconfigured cloud template can accidentally expose company databases to the entire internet within seconds.

    • Scan infrastructure templates in your pipeline
    • Define secure baselines for cloud resources
    • Block deployments that fail security checks
    Grant users and automation only the exact cloud permissions they need to do their jobs.
    Read more

    Least privilege identity and access management ensures that users and automation scripts only receive the bare minimum cloud permissions required to complete their specific tasks. Nothing more, nothing less.

    Imagine giving a staff member a keycard that only opens their specific office door, rather than a master key to the entire building.

    This practice matters because if an account or runner gets compromised, the potential damage is contained strictly to that narrow scope of permissions.

    • Avoid using admin accounts for routine tasks
    • Scope IAM policies to specific resource IDs
    • Regularly audit unused user and service permissions
    (optional)
    Write automated rules that block non-compliant infrastructure changes from deploying.
    Read more

    Policy as code allows you to write automated compliance rules in code format that block non-compliant infrastructure changes from deploying to your cloud environment. It acts as an automated legal and security advisor.

    Think of this like an automated traffic light that turns red if a car is built without seatbelts.

    Policy as code matters because it ensures consistent security standards across large engineering teams without relying on manual compliance reviews.

    • Codify company security rules into testable scripts
    • Integrate policy checks into deployment pipelines
    • Provide clear feedback when policies block a build

    Step 5: Monitoring and Response

    Collect and monitor system logs to spot suspicious user activity and unauthorized access.
    Read more

    Cloud audit logging collects, centralizes, and monitors system and API logs to spot suspicious user behavior, unusual login locations, and unauthorized resource access. It creates a reliable paper trail of everything happening in your environment.

    Consider this like CCTV footage and security guard logs recording who enters and leaves a secure office building.

    Cloud logging matters because early detection of unusual activity can stop a minor security incident from turning into a major data breach.

    • Centralize logs into a secure, read-only store
    • Set up alerts for high-risk API calls
    • Protect log integrity against tampering
    Watch live containers and servers for abnormal behaviour that suggests a breach.
    Read more

    Runtime threat detection watches live containers and servers for abnormal behavior, such as unexpected system calls or unauthorized file modifications, that suggests an active breach. It protects your running systems in real time.

    Think of this like a smoke detector in your kitchen that sounds an alarm the moment smoke appears.

    Runtime security matters because even the best preventative scans can miss zero-day flaws, making real-time detection your final safety net.

    • Monitor container system calls for anomalies
    • Set up real-time alerts for suspicious processes
    • Isolate compromised runtime instances quickly
    (optional)
    Create step-by-step guides for your team to follow when a security alert goes off.
    Read more

    Incident response playbooks provide clear, step-by-step guides for your engineering team to follow when a security alert goes off, ensuring calm and coordinated action during a crisis.

    Imagine an emergency evacuation plan posted on the office wall, guiding everyone safely to the exit during a fire drill.

    Playbooks matter because panic and confusion are the biggest enemies during a security incident; having a clear guide saves precious time when every second counts.

    • Define clear roles for team members during an incident
    • Document steps for containing and investigating threats
    • Run tabletop exercises to practice your response

    Related roadmaps