Skip to main content
Umair Khurshid

Umair Khurshid

35 posts published

Developer, open source contributor, and relentless homelab experimenter.

eBPF
eBPF

Module 9: Where to Go Next withย eBPF

You have learned and practiced the fundamentals. Here's how you should continue your eBPF journey.

ยท Umair Khurshid

Improving Container Security with eBPF
eBPF

Module 8: Improving Container Security with eBPF

In this module, you'll see how eBPF extends naturally from observability into container security.

ยท Umair Khurshid

Network Tracing with eBPF
eBPF

Module 7: Network Tracing with eBPF

This module focuses on aligning eBPF tracing with how packets actually live and die inside the kernel.

ยท Umair Khurshid

User Tracing With eBPF
eBPF

Module 6: User Tracing With eBPF

Let's move from kernel focused tracing into user space, showing that the same eBPF principles apply once you understand where observability data actually lives.

ยท Umair Khurshid

Kernel Tracing with BCC and libbpf
eBPF

Module 5: Kernel Tracing with BCC and libbpf

What you learned in the previous module, time to practice it with labs.

ยท Umair Khurshid

Tracing and Observability withย eBPF
eBPF

Module 4: Tracing and Observability withย eBPF

Learn how tracing and observability work in the eBPF model and why they represent a clear departure from traditional Linux tracing tools.

ยท Umair Khurshid

Building Modern eBPF with libbpf and CO RE
eBPF

Module 3: Building Modern eBPF With libbpf and CO RE

It's time for you to transition from learning eBPF concepts to building eBPF the way it is used in real systems.

ยท Umair Khurshid

Module 2: Core eBPF Fundamentals
eBPF

Module 2: Core eBPF Fundamentals

Learn how eBPF actually works inside the Linux kernel and how high level Python tooling with bcc makes it easy to experiment, trace system calls, and observe real kernel behavior with minimal friction.ย 

ยท Umair Khurshid

Build the lab
eBPF

Module 1: Building the Lab Environment

Welcome to the first module of the course. Everything that follows depends on what you build here. If the lab environment is unstable, inconsistent, or poorly understood, every later module will feel confusing for the wrong reasons.

ยท Umair Khurshid

Learning eBPF
eBPF

Master eBPF with Hands-On Labs

Learn Modern eBPF by Building, Tracing, and Securing Real Linux Systems.

ยท Umair Khurshid

Linux Namespaces
Guides

Complete Beginner's Guide to Linux Namespaces

Not only will you learn the essential concept of namespaces in Linux, but you will also create a fully isolated environment that behaves like a container.

ยท Umair Khurshid

Homelab mistakes
Homelab

Avoid These 10 Mistakes for an Efficient, Enjoyable, and Safe Homelab

A successful homelab should not only provide a space for discovering new knowledge and exciting innovations, but also function smoothly and without major obstacles.

ยท Umair Khurshid

zen mode for it person
Explain

Why I Stopped Hating Systemd

I realize that systemd is more than just an init system, itโ€™s a complete automation framework.

ยท Umair Khurshid

Common Networking Issues Every DevOps Engineer Encounters
Tips

Common Networking Issues Every DevOps Engineer Encounters

And how you can investigate the incident, diagnose the issue and fix it ultimately.

ยท Umair Khurshid

Traffic Shaping and QoS with tc in Real Environments
Networking at Scale

Module 4: Traffic Shaping and QoS with tc in Real Environments

This final module introduces the Linux traffic-control subsystem, describes how packets are queued, scheduled, classified and shaped, and shows how to deploy real-world QoS policies.

ยท Umair Khurshid

Building Overlay Networks with VXLAN and WireGuard
Networking at Scale

Module 3: Building Overlay Networks with VXLAN and WireGuard

Explore virtualizing entire Layer 2 networks on top of existing Layer 3 infrastructure with two handy open source software.

ยท Umair Khurshid

nftables for Complex Rulesets and Performance Optimization
Networking at Scale

Module 2: nftables for Complex Rulesets and Performance Optimization

Translate complex network requirements into simple nftables rulesets, automate their deployment, and troubleshoot them confidently, all within the same logic that controls routing and traffic policy.

ยท Umair Khurshid

Advanced iproute2: Policy Routing, Multiple Routing, and VRFs
Networking at Scale

Module 1: Advanced iproute2: Policy Routing, Multiple Routing, and VRFs

This first module introduces the core of advanced Linux networking through iproute2. You will learn how to define multiple routing tables, implement policy-based routing, and use VRF to create isolated routing domains.

ยท Umair Khurshid

Linux Networking at Scale
Networking at Scale

Linux Networking at Scale

Master advanced networking on Linux โ€” from policy routing to encrypted overlays.

ยท Umair Khurshid

Debugging Automated Services
Systemd Automation

Module 6: Debugging Automated Services

Systemd has debugging and monitoring built into its design with features like state inspection, structured logs, dependency analysis, restart and watchdog policies, timer management, and failure hooks.

ยท Umair Khurshid

Sandboxing Systemd Directives
Systemd Automation

Module 5: Sandboxing Systemd Directives for Safer Automation

Learn how systemdโ€™s sandboxing directives can transform automation from a potential liability into a controlled and resilient practice.

ยท Umair Khurshid

Automated Resource Management With Systemd
Systemd Automation

Module 4: Automated Resource Management With Systemd

Learn how systemd can automate resource management through examples ranging from containerized log processors to long-running database services.

ยท Umair Khurshid

Systemd-nspawn and Machinectl for Repeatable Environments
Systemd Automation

Module 3: Systemd-nspawn and Machinectl for Repeatable Environments

This module introduces systemd-nspawn as a tool for creating and running containers, and machinectl as its companion for management and automation.

ยท Umair Khurshid

Automating Complex Workflows with Targets
Systemd Automation

Module 2: Automating Complex Workflows with Targets

Mastering targets enables you to automate multi-service stacks, implement operational modes such as maintenance or batch processing, and ensure consistent, reproducible system behavior.

ยท Umair Khurshid

Timers and Automated Task Scheduling in Systemd
Systemd Automation

Module 1: Timers and Automated Task Scheduling in Systemd

Welcome to the first module of our micro course on advance automation with systemd. Here, we focus on systemd timers, the building blocks of reliable, scheduled task execution on modern Linux systems.

ยท Umair Khurshid

Advanced Automation with systemd
Systemd Automation

Advanced Automation with systemd

Take Your Linux Automation Beyond Cron

ยท Umair Khurshid

Ansible Yum module
Ansible Modules

Ansible Yum Module: Manage Red Hat Packages

Manage the packages effectively on the fleet of Red Hat systems with Yum module in Ainsible.

ยท Umair Khurshid

Port Mapping in Docker
Docker Tutorials

Port Mapping in Docker: When and How to Use it?

Understand the advantages of using port mapping in Docker and learn various ways of doing it.

ยท Umair Khurshid

Restart Docker Container Automatically
Docker Tutorials

Restart Docker Container Automatically After Reboot

You would want that the containers start automatically when system restarts, right? Here are different methods you can try in a variety of situations.

ยท Umair Khurshid

read file in Go
Go

Reading a File in Go

Learn various use cases of reading a file in Go

ยท Umair Khurshid