Rob Landley, Programmer
rob@landley.net (512)297-3474
SUMMARY:
Linux Programmer with speaking, writing, and project management skills.
Multiple programming languages (C, Python, shell scripting, Java), and areas of expertise (embedded, system integration, cross compiling, network administration, CGI scripting, kernel tweaking, SMP/threading). Also college instructor, columnist, and convention organizer.
PROGRAMMING WORK EXPERIENCE:
- 2010 Position: Linux developer for
Qualcomm.
- Project: Port Linux to the Hexagon processor (QDSP6).
Debug kernel and toolchain, bootstrap Gentoo userspace, upstream patches
to kernel.org and elsewhere.
- 2009 Position: Co-owner of Impact Linux LLC.
- Project: Rockwell Collins contract. Diagnose causes of
memory exhaustion in an embedded ARM entertainment system. Create
diagnostic tools, create documentation about Linux VM subsystem, deliver
tutorial session.
- Project: Cisco/Linksys contract. Prototyped new
embedded build system for Cisco/Linksys (based on Aboriginal
Linux and Gentoo From Scratch). Performed competitive analysis of OpenWRT.
Upgraded existing build systems (Bruschetta/Prosciutto, derived from Broadcom
BSP) for WRT610n (mips router) and MediaHub (ARM NAS, replaced with PPC version
during development). Ported uClibc++ to Crosstool-NG, debugged a home
automation server, proposed transcoding strategy, diagnosed RAID/partitioning
race condition, etc.
- For other projects see impactlinux.com.
- 2008 Position: Linux Consultant for Oxford Consulting.
- Project: "Scorpion" Embedded Linux C++ programmer for
Ion Geophysical Services. Maintenance and upgrades on SMP Linux
server software controlling seismic data acquisition network, consisting of
thousands of sensors connected via a proprietary bus. This server software
collated and processed shockwave (dynamite) data in real-time to visualize
underground geology and find oil.
- Project: ARM fax machine Embedded Linux C programmer for
Silicon Labs, working on a new fax machine running ARM Linux.
Optimized build environment, converted Python prototype to C, attended
lots of design meetings.
- 2007 Position: Fellowship from the Linux Foundation
- Project: Linux Kernel Documentation. Six month fellowship
to create and maintain a central kernel documentation website, improve and
maintain existing documentation and related tools, and write new documentation.
See "http://kernel.org/doc", the source control repository at
"http://landley.net/hg/kdocs", and May-Oct 2007 in the mailing list archive at
"http://marc.info/?l=linux-doc".
- 2006-2007 Position: Embedded Linux Developer for
TimeSys
- Project: "BusyBox" 50% of work week spent maintaining BusyBox.
- Project: "TimeSys LinuxLink" General embedded Linux
development. Acted as domain expert in uClibc and initramfs, worked on
cross-compilers and system integration, wrote test software, helped design new
build system, spoke at CELF and OLS, answered customer questions, wrote
documentation, added Mercurial support to source control system, did Linux
kernel development, created a minicom replacement to improve boardfarm
automation, etc.
- 2005 Position: Programmer for Giganews
- Project: "GCF support". Implemented (in Perl) a dozen
test cases for GCF (usenet NNTP forwarding software). Wrote (in C) a
statistical usenet spam filtering plugin for GCF.
- 2004-2005 Position: Consultant at Dell
- Project: "Rogers" Hardware diagnostic software for
SCSI/SAS RAID. Implemented a C++ plugin library according to Dell's existing
design, for marshalling data between device firmware (third party binary) and
various user interfaces (web based, command line, and standalone Java
application).
- 2003-2004 (Consulting work still under NDA).
- 2001-2002 Position: Head programmer for WebOffice
- Project: "iLand gateway" A single box firewall and
fileserver for small offices. Web-GUI administration (through Apache with
Python CGI), Virtual Private Network (DNAT+SSH+netcat), Network Attached
Storage (Samba and custom file transfer CGI), DHCP, Bind, PostgreSQL, root
partition on loopback mounted zisofs allowing "firmware upgrade" (whole OS
upgraded by replacing GPG signed file). Based on a custom "Linux from Scratch"
system with the 2.4 kernel. Designed, implemented, documented, and created
manufacturing process for this project.
- 2000 Position: Head of Linux Development for BOXX
Technologies, a high-end graphics/video hardware start-up.
- Responsibilities: Supervised two people,
system configuration/tuning/testing, some software development (C and Java),
design of new release management process, customer support/firefighting.
Convinced Boxx to reconsider exclusive relationship with Intel and try AMD
Athlon, resulting in Boxx and Tyan co-designing the first dual Athlon
motherboard (OEMed as Tyan Thunder).
- 1999 Position: Consultant with Enscicon at
Trilogy for IBM.
- Project: "Order Processing and Forwarding", Java based
client/server project connecting IBM's sales and shipping SQL/MQSeries
databases. Deployed on AIX and NT.
- 1998 Position: Contract programmer for Alternative
Resources Corporation.
- Project: 6 month contract at IBM to resume work on
"Feature Install" (see 1995) to support several new OS/2 products.
- 1998 Position: Head programmer for Quest Math &
Science Multimedia.
- Project: "Interactive Diagrams", a series of 45 Java
applets for a Pre-calculus tutorial on a CD bundled with a McGraw-Hill textbook.
- 1995-1997 Position: Full-time development programmer
at IBM.
- Project: "JavaOS Application Bringup", debugging JavaOS on
Power PC and Intel clients, ensuring compatability with multiple third party
java applications.
- Project: "IBM Software Choice", for purchasing and
installing IBM's OS/2 software via the World Wide Web (using Feature Install
engine controlled via Netscape plugins).
- Project: "Feature Install", 32 bit Corba compliant OS/2
install, uninstall, and system inventory software used to install "Falcon"
(OS/2 for Power PC) and "Merlin" (OS/2 Warp 4.0).
OPEN SOURCE PROGRAMMING PROJECTS:
busybox - Maintained versions 1.01 to 1.2.2.
Starting in 2003, extended busybox to fully replace the corresponding GNU tools
in a development environment (for Aboriginal Linux), and for SUSv3 compliance.
Wrote new versions of sort, sed, catv, dmesg, halt, count, losetup, mdev,
mkswap, mount, nc, 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.
Aboriginal Linux - Created and maintained an
embedded Linux build system implemented as a series of bash scripts. Modular
design creates cross compiler, root filesystem, and bootable system image as
orthogonal stages. Project goal is to produce nearly identical native
development and test environment for multiple hardware targets using commodity
PC hardware (emulated via QEMU and accelerated via distcc). Default
configuration creates the smallest system image capable of recompiling under
itself, based on just seven packages (busybox, uClibc, linux, gcc, binutils,
make, and bash). Currently supports x86, x86_64, arm, mips, powerpc,
sh4, and sparc targets. See
"http://impactlinux.com/aboriginal" for details.
NON-PROGRAMMING WORK EXPERIENCE:
- Adjunct faculty member at Austin Community College
(1998-2000), teaching "Intro to Java", "Unix Operating
System I", and "Multiuser Operating Systems".
- Stock market investment columnist for The Motley
Fool at www.fool.com from 1998-2000.
- Convention Organizer: Penguicon and Linucon.
Co-founded Penguicon in Michigan in 2003 (still going, see www.penguicon.org),
founded and chaired Linucon (a 501c3 non-profit) in October, 2004.
- Technical Editor for the "The Art of Unix Programming", by
Eric Raymond.
- Wrote documentation for Linux kernel. See
"http://landley.net/writing/" for examples.
- Presented two tutorials ("Populating Initramfs with BusyBox and uClibc"
and "Introduction to cross-compiling") at Ottawa Linux Symposium in 2006 and
2007. Presented paper "Where Linux Kernel Documentation Hides" and hosted
Linux Compiler BOF in 2008.
- Ohio LinuxFest presentation: Developing for non-x86 targets using QEMU.
FORMAL EDUCATION:
- 1997-1998, 2003-2004 - Enrolled at the University of Texas at Austin, as a graduate student in Computer Science. (Withdrew due to work commitments both times.)
- 1995-1997 - IBM internal courses in SOM, OS/2 PM, and Java.
- 1992-1995 - Bachelor's degree from Rutgers University (Camden, NJ). GPA 3.419, Majors in Computer Science and General Science, minors in Math & English.