Linux developer and trainer with speaking, writing, and project management skills.
Programming languages include C, Bash, Python, Java, and Lua. Areas of expertise include embedded optimization, debugging, cross compiling, system integration, networking, kernel driver development, SMP/threading, hardware bringup. I wrote and maintain the "toybox" package providing Android's standard posix command line utilities, and the "mkroot" cross-compiling build environment. I've also worked as a college instructor, columnist, and convention organizer.
toybox - Created and maintaind Posix/Linux command line implementation which replaced Android's Toolbox in Marshmallow. Toybox now provides most Android command line utilities. See "http://landley.net/toybox/about.html" for details. Registered toybox's "Zero Clause BSD" license (SPDX: 0BSD) and defended it from proposed OSI changes (including securing permission from original BSD maintainer Kirk McKusick to call it a BSD license), then helped get 0BSD recognized by Github's "choose a license".
mkroot - Created a cross-compiling build system (in less than 500 lines of bash) to bootstrap a reproducible/hermetic target build environment which can natively build and regression test target packages under an emulator (QEMU) on x86, arm, mips, powerpc, sh4, m68k, etc. See "https://github.com/landley/mkroot" for details.
busybox - Inherited from Erik Andersen, maintained versions 1.01 to 1.2.2. Starting in 2003, extended busybox to fully replace the corresponding GNU tools in a development environment (Aboriginal Linux), and for SUSv3 compliance. Wrote new versions of sort, sed, dmesg, halt, count, losetup, mdev, mkswap, mount, netcat, poweroff, reboot, seq, switch_root, umount... Re-implemented Julian Seward's bunzip2 algorithm to compile to less than 7k and run 10% faster. Wrote new test suite, documented standards compliance with SUSv3. Handed off to Denys Vlasenko in 2007 but continued to contribute for years afterwards (new patch, nbd-client, vi serial fixes, etc).
Aboriginal Linux - Tiny self-hosting Linux system built from just 7 packages (busybox, uClibc, linux, gcc, binutils, make, and bash) and capable of rebuilding itself under itself from source code. Supported x86, x86_64, arm, mips, powerpc, sh4, and sparc targets (providing QEMU packaging and launch scripts for each). See "http://landley.net/aboriginal/about.html" for details. Replaced by mkroot (above) in 2017.