My name is Jason Lunz, and I'm a software and systems engineer. You can find me on LinkedIn if you'd like to get in touch.
One day I'd like to fill this profile out more, but for now I'm going to use this space to showcase some open source work I've done over the years that I'm proud of.
I've been a Linux user both personally and in my work since Debian hamm, which isn't without occasional frustrations. Sometimes those got under my skin enough that I chased them down into the kernel and came up with a patch.
When I was working at a Network Intrusion Prevention System startup, I often used tcpdump to look at raw packets. Sometimes, the wrong sequence of bringing an interface up and down while using tcpdump would put it in an annoying state where the interface was in promiscuous mode whenever tcpdump wasn't attached, and not in promiscuous mode when it was. It turns out this was a refcounting bug in the kernel.
At the startup, the systems we shipped had to be highly reliable, so they used JFFS2 for data storage. One day I upgraded the kernel and it began locking up, so I fixed it.
User Mode Linux is a little known port of linux to its own system call interface as its "hardware" architecture. This handy, lightweight form of virtualization allowed my team to develop our system far more efficiently, back before more modern forms of virtualization (like kvm or qemu) were widely available.
Unfortunately, UML's memory layout was set up in such a way that the system would crash if LVM were initialized. This turned out to be one of those issues where the description of the fix was longer to write than the code.
My first linux laptop crashed hard whenever I tried using suspend-to-RAM. Needless to say, having a laptop that can't sleep is pretty annoying. It took me weeks to track this down because the crash turned out to occur before the console was enabled (meaning no log output was visible on the screen), and it was in the disk driver, which prevented any debug output from being logged to disk. I had to set up UDP logging to another machine over the network to debug it.
The fix was to add a state to the IDE power management state machine to reprogram PIO timings on resume.
I once designed a distributed stateful packet filter for VMWare that ran partially in-vmkernel. It used Google Protocol Buffers to encode the filter rulesets, and https://github.com/protobuf-c/protobuf-c to decode those rulesets. Unfortunately, there was an edge case when memory was constrained that would crash the entire host, and all the virtual machines running on it (perhaps my most expensive bug of all time 🤑).
The issue was fixed based on a patch I submitted.