I'm a recent graduate from Virginia Tech, having taken several courses in mathematics and computer science. I've coded in several languages, including Java, C#/.NET, C (POSIX and Win32), C++, Python, JavaScript, Go, and Rust. I have covered several topics as detailed below, but my most passionate interests are:
- Cryptography (low-level primitives and applied cryptography, i.e. OpenSSL/libcrypto)
- Kernel space development in Linux and Windows, as well as embedded C development (FreeRTOS, bare metal)
- Network traffic analysis (libpcap, Scapy) on protocols such as HTTP, TLS, and broadly TCP/IP
- Process tracing (ptrace, Frida)
- Concurrent programming (multithreading, async/await pattern and futures)
- Network programming (at the socket level)
- Foreign function interfaces (calling C/C++ code from other languages and environments, including WebAssembly and iOS and Android apps)
- Unit testing, code coverage, CI/CD (GitLab CI/CD and GitHub Actions)
In general, I enjoy low level development (C, C++, Rust, assembly) for Windows, macOS, Linux, and Android. I frequently write Python scripts for prototyping. I'm also very familiar with the Linux terminal, including commands like curl, ssh, tcpdump, lsof, and others.
Virtualization technologies interest me, including virtual machines (VirtualBox, VMware, QEMU) and containers (Docker).
Topics that I've covered:
- Machine learning (admittedly an older course)
- Low level cryptographic primitives
- Applied cryptography
- Various build tools including CMake, Make, and Maven
- A little bit of iOS and Android app development
- Both of them include foreign function interfaces to C code
- Built-in de/serialization methods
- JSON and XML encoding and decoding
- SQL and MongoDB
- HTTP requests
- Compression with zlib/gzip
- Regex
- The full SDLC process with various languages here
- Also covers data structures and algorithms
- Packet capture and analysis with libpcap and Scapy
- Also covers a little bit of full-stack development
- GitHub Actions and GitLab CI/CD
- Multithreaded socket programming
- Buffered I/O
- Async/await pattern
- Foreign function interfaces
- Remote procedure calls
- Also includes a little bit of Frida
- Device drivers with user space clients in Linux and Windows
- Process tracing in Linux, macOS, and Windows
- Bare metal C coding for an Arduino Mega 2560 Rev3 board
- Serial/UART echo server in Python as well as clients in C and Python
- Inline assembly for x86-64 and AArch64
- Direct system calls in Linux/macOS and Windows
- Low level memory management in Linux/macOS and Windows
- Web scraping