Software Engineer. Go, Linux, and open source software enthusiast. On and ever upward.
- Package ndp implements the Neighbor Discovery Protocol, as described in RFC 4861. MIT Licensed.
- Prometheus exporter that exposes metrics from apcupsd's NIS. MIT Licensed.
- Package taskstats provides access to Linux's taskstats interface, for sending per-task and per-process statistics from the kernel to userspace. MIT Licensed.
- Package wireguardctrl enables control of WireGuard devices on multiple platforms. MIT Licensed.
- Package wifi provides access to IEEE 802.11 WiFi device actions and statistics. MIT Licensed.
- Package netlink provides low-level access to Linux netlink sockets. MIT Licensed.
- Package raw enables reading and writing data at the device driver level for a network interface. MIT Licensed.
- Package vsock provides access to Linux VM sockets (AF_VSOCK) for communication between a hypervisor and its virtual machines. MIT Licensed.
- Package dhcp6 implements a DHCPv6 server, as described in RFC 3315. MIT Licensed.
- Provides detection and access to System Management BIOS (SMBIOS) and Desktop Management Interface (DMI) data and structures. MIT Licensed.
- Exploring byte parsing APIs in Go
- An exploration into building safe and ergonomic byte parsing APIs in Go.
- Network Protocol Breakdown: NDP and Go
- An introduction to the IPv6 Neighbor Discovery protocol, and how to utilize it from Go.
- A programmer’s journey with RSI
- My experiences as a professional programmer dealing with RSI and cubital tunnel syndrome, and how I manage these issues.
- Accessing SMBIOS information with Go
- Accessing hardware information using the SMBIOS standard with Go.
- unsafe.Pointer and system calls
- Using Go’s unsafe.Pointer type to cast raw memory and work with system calls.
- Open Source at DigitalOcean: Introducing go-qemu and go-libvirt
- Controlling QEMU and libvirt programmatically using pure Go interfaces.
- Cthulhu: Organizing Go Code in a Scalable Repo
- Lessons learned while working with DigitalOcean’s monolithic Go code repository, cthulhu.
- Network Protocol Breakdown: Ethernet and Go
- An introduction to Ethernet frames, VLAN tags, and raw sockets, and how to leverage low-level networking primitives in Go.
- Linux VM sockets in Go
- Leveraging Linux VM sockets to enable bidirectional, many-to-one communication between a hypervisor and its VMs, using Go.
- Linux, Netlink, and Go — Part 3: packages netlink, genetlink, and wifi
- Using netlink, generic netlink, and nl80211 to manipulate WiFi network interfaces on Linux, using Go.