| 9 | | |
| 10 | | == Technical Experience == |
| 11 | | Launched a business using Django and Python.[[BR]] |
| 12 | | Deployed a Jenkins-based virtualized continuous integration system in a complex environment.[[BR]] |
| 13 | | Implemented tools and libraries for managing storage arrays, provided platform-level support for development team.[[BR]] |
| 14 | | Developed Mercurial-based promotion engine for software development.[[BR]] |
| 15 | | 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]] |
| 16 | | Added workflow capabilities to Trac, and gained trunk commit privileges in 2007.[[BR]] |
| 17 | | Brought source control (Subversion), bug tracking (Trac), build processes (!BuildBot) and automated tools to a chaotic development environment.[[BR]] |
| 18 | | 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]] |
| 19 | | 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]] |
| 20 | | 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]] |
| 21 | | 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]] |
| 22 | | Analyzed NTP performance in a distributed Linux architecture and designed a system to augment NTP. |
| | 12 | Django, Satchmo |
| 24 | | |
| | 14 | Git, Mercurial, Subversion, CVS, patchutils |
| | 15 | |
| | 16 | Source control conversions, svndumptool |
| | 17 | |
| | 18 | !DevOps, Jenkins, !BuildBot, Trac, !MergeBot, iTest, Ansible |
| | 19 | |
| | 20 | virtualization, VMware ESXi, vCenter, ovftool, qemu/kvm, !VirtualBox, linode |
| | 21 | |
| | 22 | Linux Kernel development; file-systems, network, block, and character device drivers; x86/ARM/Xscale |
| | 23 | |
| | 24 | Linux distribution development and RPM packaging, autoconf tools |
| | 25 | |
| | 26 | Software security analysis and design |
| | 27 | |
| | 28 | Reverse-engineering Java bytecode to source code |
| | 29 | |
| | 30 | Dot Hill RAID array storage management |
| | 31 | |
| | 32 | data recovery, forensics |
| | 33 | |
| | 34 | Contributor to open source projects |
| | 35 | |
| | 36 | Mentoring coworkers |
| | 37 | |
| | 38 | Code generation |
| | 39 | |
| | 40 | Fedora, CentOS, Debian, !MontaVista, Solaris |
| | 41 | |
| | 42 | Javascript, CSS, html |
| | 43 | |
| | 44 | NXT robotics |
| | 45 | |
| | 46 | JTAG, embedded systems, Android |
| | 47 | |
| | 48 | System administration, NFS, NIS, NTP, Apache |
| | 49 | |
| | 50 | Make, Ant, Maven |
| | 51 | |
| | 52 | *NIX utilities |
| | 53 | |
| | 63 | == Technical Experience == |
| | 64 | |
| | 65 | Developed and deployed a virtualized (VMware ESXi and vCenter) continuous integration (Jenkins) and testing (iTest) system, applying !DevOps principles to a complex environment while source control transitioned from Subversion to Git. |
| | 66 | |
| | 67 | Developed Mercurial-based promotion engine for software development; providing pull requests and automated merges. |
| | 68 | |
| | 69 | Added configurable workflow capabilities to Trac, and gained trunk commit privileges in 2007 (over 700 commits to date). |
| | 70 | |
| | 71 | Created “Advanced !TicketWorkflow Plugin” to further enhance Trac's configurable workflow. |
| | 72 | |
| | 73 | Brought source control (Subversion), bug tracking (Trac), continuous integration (!BuildBot), and pull requests (!MergeBot) to a chaotic development environment. |
| | 74 | |
| | 75 | Scripted conversion of a CVS repository to Subversion with nightly updates; those scripts were the basis for the organization's later transition to Git. |
| | 76 | |
| | 77 | Converted Subversion, CVS, and VSS repositories with full, interleaved history into a multi-project Subversion repository. |
| | 78 | |
| | 79 | Recovered lost source code from Subversion metadata directories, recovered lost bugzilla bug tracking data from Outlook mailbox files and imported into Trac. |
| | 80 | |
| | 81 | Contributed new source control history transformations to svndumptool. |
| | 82 | |
| | 83 | Contributed bugfixes to Mercurial related to large files. |
| | 84 | |
| | 85 | |
| | 86 | Linux kernel experience includes rewriting a vendor network driver for a 6x performance gain, implementing file-systems, flash block device driver, numerous character device drivers; and modifying existing drivers. |
| | 87 | |
| | 88 | Ported the iop321 XScale sub-architecture support from Linux 2.4 to Linux 2.5, and got it merged into Russell King's tree (2.5.65-rmk1, 2.5.70-rmk1), and from there into Linus's tree (2.5.62, 2.5.64, 2.5.68, 2.5.69). |
| | 89 | |
| | 90 | Worked on four x86-based boards and seven ARM/XScale-based boards, from initial bring-up on Linux through deployment, including an upgrade to a new generation platform. |
| | 91 | |
| | 92 | Designed and implemented the build and packaging system for the RPM-based Linux distribution running on those boards, an ARM/XScale cross-compile of !RedHat 6.X; documented build and release procedures for the SCM group. |
| | 93 | |
| | 94 | Automated the product installation process to create reproducible installs in 1/5th the time, and in the process, identified undocumented bugfixes missing from source control (CVS). |
| | 95 | |
| | 96 | |
| | 97 | Implemented tools and libraries for managing storage arrays. |
| | 98 | |
| | 99 | Provided platform-level support for development team. |
| | 100 | |
| | 101 | Implemented a virtualized (!VirtualBox) environment for storage development. |
| | 102 | |
| | 103 | Created a data-structure based cable auditing tool for complex hardware deployments, providing specific, plain English explanations of the cabling errors. |
| | 104 | |
| | 105 | Scripted IOzone benchmarks and identified parameter-induced file-system performance problems on (up to) 32-way striped SCSI disks on a supercomputer. |
| | 106 | |
| | 107 | |
| | 108 | Identified catastrophic security flaw in the company's flagship security product, created a new security design that passed third-party review, and evolved the implementation toward that design. |
| | 109 | |
| | 110 | From ad hoc backups, reverse-engineered legacy security binaries (Java bytecode) to recreate lost source code. |
| | 111 | |
| | 112 | Created tools for creating and analyzing attack trees and implemented code generation to enforce security properties. |
| | 113 | |
| | 114 | Mentored coworkers on security principles. |
| | 115 | |
| | 116 | |
| | 117 | Mentored others through design and architectural discussions and voluntarily requested design and code reviews across team boundaries. |
| | 118 | |
| | 119 | Won first place in company programming competition. |
| | 120 | |
| | 121 | Contributed to or supported open source projects including: Trac, Linux, Vim, svndumptool, and Mercurial |
| | 122 | |
| | 123 | Launched a business using Django and Python as a solo founder. |
| | 124 | |
| | 125 | Maintained “breakindent” patches for Vim until Bram accepted a variant into upstream. |
| | 126 | |
| | 127 | Built and programmed a robotic floppy disk conversion system, including photographing disk labels via Android, data recovery in the presence of bad sectors and forensic analysis for deleted files. |
| | 128 | |
| | 129 | Wrote decoder for a digital multimeter's serial output. |