| 1 | = Resume = |
| 2 | Software Engineer with 8+ years of experience, primarily Linux kernel and distribution work |
| 3 | |
| 4 | 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. |
| 5 | |
| 6 | |
| 7 | == Preferred Languages == |
| 8 | Python, sh/bash, C/C++, and ARM/XScale assembly |
| 9 | |
| 10 | |
| 11 | == Technical Experience == |
| 12 | Added workflow capabilities to Trac, and gained /trunk commit privileges in 2007.[[BR]] |
| 13 | Brought source control (Subversion), bug tracking (Trac), build processes (BuildBot) and automated tools to a chaotic development environment.[[BR]] |
| 14 | 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]] |
| 15 | 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]] |
| 16 | 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]] |
| 17 | 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]] |
| 18 | Analyzed NTP performance in a distributed Linux architecture and designed a system to augment NTP. |
| 19 | |
| 20 | |
| 21 | == Philosophy (Or "How I Work") == |
| 22 | * Write code that is concise and clear. |
| 23 | * Select a minimal set of modular tools and languages with maximum combined scope; learn them extensively; apply them appropriately; and continually reevaluate the possibilities. |
| 24 | * Automate and augment as much as possible to reduce errors and speed up development. |
| 25 | * Use source control to its fullest to capture forward progress, improve confidence in changes, improve teamwork, and increase manageability of development. |
| 26 | * Watch the world around you; discern what is worth knowing; learn from other's successes and failures. |
| 27 | * Use Free and Open Source Software everywhere you can; know "why" when you can't, and work to change that. |
| 28 | * 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. |
| 29 | |
| 30 | |
| 31 | == Employment History == |
| 32 | HEB Technologies (2008)[[BR]] |
| 33 | Software Engineer |
| 34 | |
| 35 | !CommProve Inc. (2006 - 2007)[[BR]] |
| 36 | Software Tools Engineer[[BR]] |
| 37 | Trac, Subversion, !BuildBot and integration thereof to improve reproducibility and automation. |
| 38 | |
| 39 | Tektronix Texas / Inet Technologies (1999 - 2006)[[BR]] |
| 40 | Software Engineer (Platforms)[[BR]] |
| 41 | Linux kernel and distribution work. |
| 42 | Software development process improvements, primarily improving the reproducibility of the product. |
| 43 | |
| 44 | "Ancient History" (pre-1999)[[BR]] |
| 45 | Freelance computer consulting since highschool, and a couple other computer related jobs. |