= Resume = Software Engineer and Entrepreneur with 16+ years of experience, Linux development, tools development, security design 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 == Launched a business using Django and Python.[[BR]] Deployed a Jenkins-based virtualized continuous integration system in a complex environment.[[BR]] Implemented tools and libraries for managing storage arrays, provided platform-level support for development team.[[BR]] Developed Mercurial-­based promotion engine for software development.[[BR]] Reverse-engineered legacy security code to recreate missing source code, identified fatal security flaws, created a new security design, and evolved the implementation toward that design.[[BR]] 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-systems, 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 == Independent Contractor Software Engineer (2014-current)[[BR]] Continuous integration tools development and deployment Entrepreneur at brickbuiltnameplates.com (2009-current)[[BR]] Created everything from conception through launch Software Engineer at Tektronix Communications (via contracting firms) (2011 - 2014)[[BR]] Source control automation development, storage product backend development Software Engineer at HEB Technologies (2008 - 2011)[[BR]] Created security design for secure collaboration tool and evolve legacy system towards it. Software Tools Engineer at !CommProve Inc. (2006 - 2007)[[BR]] Trac, Subversion, !BuildBot and integration thereof to improve reproducibility and automation. Software Engineer (Platforms) at Tektronix Texas / Inet Technologies (1999 - 2006)[[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.