GithubHelp home page GithubHelp logo

Hi there πŸ‘‹, I'm Jason!

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.

Linux

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.

Fixed Reference Counting for Packet Sockets

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.

JFFS2 Filesystem Deadlock

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.

LVM crash on UML

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.

Suspend-to-RAM Crash in the IDE Disk Driver

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.

Protocol Buffers

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.

Jason Lunz's Projects

bazel icon bazel

Correct, reproducible, and fast builds for everyone.

brubeck icon brubeck

A Statsd-compatible metrics aggregator

cli icon cli

GitHub’s official command line tool

ipxe icon ipxe

iPXE network bootloader. This is a mirror of the iPXE git tree at http://git.ipxe.org/ipxe.git

pennies icon pennies

fooling around with greg's penny-stacking problem

pika icon pika

Pure Python RabbitMQ/AMQP 0-9-1 client library

y-erlang icon y-erlang

using erlang to learn about the Y-combinator, and vice-versa

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.