= Resume = Software Engineer with 8+ years of experience, primarily Linux kernel and distribution work Computer Engineering, B.S. and Mathematics, B.A. from Southern Methodist University, 1999, GPA: 3.8, Magna Cum Laude, with honors in the liberal arts. == Preferred Languages == Python, sh/bash, C/C++, and ARM/XScale assembly == Technical Experience == Added workflow capabilities to Trac, and gained /trunk commit privileges in 2007.[[BR]] Brought source control (Subversion), bug tracking (Trac), build processes (BuildBot) and automated tools to a chaotic development environment.[[BR]] Ported the iop321 XScale sub-architecture support from Linux 2.4 to Linux 2.5, merged into Russell King's tree (2.5.65-rmk1, 2.5.70-rmk1), and Linus's tree (2.5.62, 2.5.64, 2.5.68, 2.5.69).[[BR]] Worked on four x86-based boards and seven ARM/XScale-based boards, from initial bring-up through deployment, including an upgrade to a new generation platform.[[BR]] Linux kernel experience includes initial bring-up on new ARM/XScale boards; implementing a network driver, file-system, flash block device driver, numerous character device drivers; and modifying existing drivers.[[BR]] Designed and implemented the build systems for the Linux distribution running on those boards, documented build and release procedures for the Software Configuration Management (SCM) group.[[BR]] Analyzed NTP performance in a distributed Linux architecture and designed a system to augment NTP. == Philosophy (Or "How I Work") == * Write code that is concise and clear. * Select a minimal set of modular tools and languages with maximum combined scope; learn them extensively; apply them appropriately; and continually reevaluate the possibilities. * Automate and augment as much as possible to reduce errors and speed up development. * Use source control to its fullest to capture forward progress, improve confidence in changes, improve teamwork, and increase manageability of development. * Watch the world around you; discern what is worth knowing; learn from other's successes and failures. * Use Free and Open Source Software everywhere you can; know "why" when you can't, and work to change that. * The path to performance is: fastest to implement first, then algorithmic improvements, then profiling guided improvements, then progressively lower languages with greater optimization. Tread no further down this path than you must. == Employment History == HEB Technologies (2008)[[BR]] Software Engineer !CommProve Inc. (2006 - 2007)[[BR]] Software Tools Engineer[[BR]] Trac, Subversion, !BuildBot and integration thereof to improve reproducibility and automation. Tektronix Texas / Inet Technologies (1999 - 2006)[[BR]] Software Engineer (Platforms)[[BR]] Linux kernel and distribution work. Software development process improvements, primarily improving the reproducibility of the product. "Ancient History" (pre-1999)[[BR]] Freelance computer consulting since high school, and a couple other computer related jobs.