Skip to main content
$ whoami
Pranav 
Ram 
Joshi 
Software Engineer building
kernel observability tools 

Focused on Linux/UNIX internals, low-level C/Go/Rust, and network protocol implementation. Hands-on with eBPF kernel tracing, POSIX APIs, and transport-layer protocols. Active open-source contributor to uutils/sed and GNU binutils. Published deep technical writing on BPF, XNU internals, memory safety, and process architecture.

pranav — bash
Projects

Built close to the metal.

Kernel observability, binary format parsers, packet filters, and protocol implementations - software that runs where it matters most.

Featured • Kernel Observability
Veil - eBPF Observability Toolkit
Real-time kernel observability toolkit that traces syscalls, file access, TCP connections, CPU scheduling, and page faults. Kernel-side uses libbpf/CO-RE (C) for portability; userspace uses Go with cilium/ebpf for BPF program loading, tracepoint attachment, and ring buffer consumption. Two-level filtering drops events in kernel space before they reach userspace. Solves non-trivial kernel challenges: dentry tree walking for absolute paths, context stashing for socket state transitions, and single-hook syscall tracing with in-kernel filtering.
$ veil trace --syscall --tcp --file
[syscall] pid=1842 open("/etc/resolv.conf")
[tcp] pid=1842 connect → 93.184.216.34:443
[sched] pid=1842 cpu=2 → cpu=5 (migration)
CGolibbpf/CO-REcilium/ebpfeBPFRing Buffer
View on GitHub →
Binary Formats
Strata - Object File Parser
Multi-format binary file parser and CLI tool written in Rust. Parses ELF and Mach-O binaries, object files, and static archives - handling different segment models, symbol table layouts, and relocation schemes. Supports shared library inspection across both formats.
$ strata inspect ./target/release/strata
Format: ELF64-x86_64
Sections: 29 | Symbols: 1,247
.text 0x401000 size=0x3a200
.rodata 0x43c000 size=0x8f40
RustELFMach-OCLI
View on GitHub →
Packet Filtering
BPF Packet Capture & Filtering
Classic BPF packet capture program for BSD. Accepts tcpdump-style filter predicates, generates BPF assembly, and loads filters via the BPF device interface. Captures in promiscuous mode with configurable protocol, port, and address matching.
CBPFPromiscuous ModeBSD
Learn More →
Network Protocols
TFTP, Ping, Traceroute
TFTP client/server with RTT-based reliability and protocol state machine. ICMP Ping and Traceroute with raw sockets, path MTU discovery, and hop-by-hop route analysis. Resolved cross-platform portability issues: BSS/common section behavior, misaligned memory, errno thread-locality.
CICMPRaw SocketsUDPPMTU
Go Deeper →
POSIX / Systems
POSIX System Library Reimplementations
Reimplemented pthread barrier on macOS (absent despite partial POSIX conformance) using mutex + condvar primitives. Implemented abort, system, sleep to study POSIX spec vs. platform behavior divergence.
CPOSIXpthreadsmacOS
Go Deeper →
Reference Implementation
Unix Systems Programming Suite
Structured reference of UNIX systems interfaces: file I/O syscalls, process lifecycle (fork/exec/wait), signal handling, IPC primitives (pipes, FIFOs, shared memory, semaphores), and socket programming across protocol families.
CIPCSignalsMakefile
Read More →
Systems Engineering
Modular C APIs & IPC
Abstract C modules with function attributes, flexible structures, conditional compilation for multi-vendor support. IPC via message queues, shared memory, semaphores, pipes, and FIFOs.
C89/C99IPCSemaphores
Explore in Detail →
Research & Deep Dives

Going beyond the surface.

Technical explorations, documented learnings, and research into systems internals - the kind of writing that shows depth over breadth.

3-Part Series • 70 min total

UNIX Systems Internals

TTY architecture, shell execution model, and portable C - a ground-up exploration of how UNIX works under the hood.

2026
Rust Sanitizes Standard Streams
What happens when a hosted environment closes the standard streams of a Rust program. Runtime behavior when /dev is masked and file descriptors are sealed.
Rust10 min read
2026
Address Sanitization and Virtual Memory Management
Common C memory errors, VMMU architecture on ARM and Intel, ASan's shadow memory algorithm and blind spots, runtime inspection with vmmap and /proc/<pid>/maps.
Memory46 min read
2026
Mach Kernel Abstractions and XNU Internals
XNU's hybrid Mach/BSD architecture — core data structures, tasks, threads, IPC ports, processor sets, pointer authentication, and key Mach routines.
Kernel22 min read
2025
Berkeley Packet Filter (BPF): Packet Capture and Filtering in C
Classic BPF architecture, eBPF evolution — JIT compilation, verifier, BPF maps, XDP for driver-level packet filtering. From telecom history to kernel programmability.
Networking32 min read
2025
How the API_AVAILABLE Macro Works on macOS
Dissecting how Apple uses compiler attributes and variadic preprocessor macros to enforce API availability across OS versions at compile time.
Systems5 min read
2025
Use-After-Free in C: Static Analysis and What Rust Does Differently
UAF mechanics in C, how static analyzers catch it, Rust's borrow checker as a static elimination of the entire bug class.
Security11 min read
2025
Process Memory Layout on macOS ARM64
Debugger-driven exploration of process address spaces. ARM64 and x86-64 ABI differences. Mach-O segments, LLDB memory inspection, vmmap internals.
Memory37 min read
Tech Stack

Tools of the trade.

  • C
  • Go
  • Rust
  • Linux/UNIX Internals
  • eBPF/libbpf
  • Socket Programming
  • TCP/IP
  • Makefile
  • Shell
  • Python
  • JavaScript
  • Docker
  • Kubernetes
  • Jenkins
  • AWS
  • Terraform
  • Helm
  • glibc
  • libuv
  • libcurl
  • Git
  • Vim
  • C
  • Go
  • Rust
  • Linux/UNIX Internals
  • eBPF/libbpf
  • Socket Programming
  • TCP/IP
  • Makefile
  • Shell
  • Python
  • JavaScript
  • Docker
  • Kubernetes
  • Jenkins
  • AWS
  • Terraform
  • Helm
  • glibc
  • libuv
  • libcurl
  • Git
  • Vim

Core Languages

CGoRustPythonShellJavaScript

Systems & Networking

Linux/UNIX InternalseBPFPOSIX APIsSocketsIPC

DevOps / Cloud

DockerK8sJenkinsAWSTerraformHelm

Tools & Libraries

glibclibbpflibuvlibcurlOpenSSL
Notes & Documentation

Learning in public.

Detailed technical notes and documentation — because understanding systems deeply means being able to explain them clearly.

C Programming

Deep dives into C standards, compiler attributes, memory models, flexible structures, and conditional compilation across platforms.

header
Unix Network Programming

Socket APIs, transport protocols, system calls (fork, exec, signal), file I/O, and inter-process communication mechanisms.

bali images
bali images
bali images
bali images
bali images
bali images
bali images
bali images
bali images
bali images
bali images
bali images

Kernel & eBPF

Exploring eBPF maps, XDP programs, kernel tracing, and the BPF verifier. From packet filtering to observability.

Coming soon

Security & Cryptography

FIPS compliance, OWASP practices, network security fundamentals, and cryptographic library integration.

Coming soon
Testimonials

What people say.

From managers, colleagues, and collaborators who've seen the work up close.

Suvrat Ram Joshi
Ritu Bajracharya

Suvrat Ram Joshi

Managing Director at Darse Technologies

Pranav is a uniquely talented and driven professional whose rapid mastery of diverse technological fields makes him a standout asset to any team 

Contact

Let's connect.

Open to systems engineering roles, research opportunities, and interesting conversations about low-level programming.

pranav — bash