<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resume PUBLIC "-//Sean Kelly//DTD Resume 1.5.1//EN"
  "/usr/share/sgml/xml-resume-library/dtd/resume.dtd">

<resume>
 <header>
  <name>
   <firstname>Benjamin</firstname>
   <surname>Collins</surname>
  </name>
  <birth>
   <date>
    <month>April</month>
    <dayOfMonth>14</dayOfMonth>
    <year>1972</year>
   </date>
  </birth>
  <address>
   <street>9482 Davis Creek Rd.</street>
   <city>Ware Neck</city>
   <state>VA</state>
   <zip>23178</zip>
  </address>
  <contact>
   <phone location="mobile">804-815-7987</phone>
   <fax>757-273-0923</fax>
   <email>bcollins@phunnypharm.org</email>
   <url>http://www.phunnypharm.org/~bcollins/resume/</url>
  </contact>
 </header>

 <objective>
  <para>
   To work in the field of Linux kernel development, specifically device drivers.
  </para>
 </objective>

 <history>

  <job>
   <jobtitle>Kernel Team Lead</jobtitle>
   <employer>Canonical</employer>
   <location>
    <city>Ware Neck</city>
    <state>Virginia</state>
   </location>
   <period>
    <from>
     <date>
      <month>August</month>
      <year>2005</year>
     </date>
    </from>
    <to>
     <present/>
    </to>
   </period>
   <description>
    <para>
     Lead an engineering team to handle development, testing and deployment of the Linux
     kernel for Canonical's Ubuntu Linux distrobution.
    </para>
   </description>
  </job>

  <job>
   <jobtitle>Founder/CEO</jobtitle>
   <employer>SwissDisk, Inc.</employer>
   <location>
    <city>Gloucester</city>
    <state>VA</state>
   </location>
   <period>
    <from>
     <date>
      <month>April</month>
      <year>2004</year>
     </date>
    </from>
    <to>
     <present/>
    </to>
   </period>
   <description>
    <para>
     Developed a secure standards based Internet storage service aimed at
     traveling professionals and geographically diverse companies.
    </para>
    <para>
     The site boasts 256-bit AES encrypted filesystems for users. Each
     users filesystem has its own hash which is protected by the users
     password. Access to the filesystem is via standard WebDAV over SSL
     protocol, which opens up usage to a wide variety of clients. The
     storage system is running Apache with customer modules, MySQL
     database server, and Linux's Logical Volume Manager.
    </para>
    <para>
     I developed, tested and deployed this entire system. Website graphics
     and layout were done by my partner. I sold the company and its IP to
     a California company February 2005. I still retain 5% of the company.
    </para>
   </description>
  </job>

  <job>
   <jobtitle>Software Engineer</jobtitle>
   <employer>Watchguard</employer>
   <location>
    <city>Seattle</city>
    <state>WA</state>
   </location>
   <period>
    <from>
     <date>
      <month>September</month>
      <year>2001</year>
     </date>
    </from>
    <to>
     <date>
      <month>April</month>
      <year>2002</year>
     </date>
    </to>
   </period>
   <period>
    <from>
     <date>
      <month>March</month>
      <year>2003</year>
     </date>
    </from>
    <to>
     <date>
      <month>May</month>
      <year>2005</year>
     </date>
    </to>
   </period>
   <projects>
    <project>
     <title>USB backport from linux-2.2 to linux-2.0.33</title>
    </project>
    <project>
     <title>Backport of SysKonnect GigE driver from linux-2.2 to linux-2.0.33</title>
    </project>
    <project>
     <title>Bringup of StrongARM reference design</title>
    </project>
    <project>
     <title>Redesigned SpamScreen software to allow for dynamic filtering rules</title>
    </project>
   </projects>
   <description>
    <para>
     Primary job duties included linux kernel development in an embedded
     environment. This mainly pertained to hardware drivers and TCP/IP
     networking (VPN, NAT, filtering, proxies).
    </para>
   </description>
  </job>    

  <job>
   <jobtitle>Software Engineer</jobtitle>
   <employer>DEQO Solutions, Inc.</employer>
   <location>
    <city>Newport Beach</city>
    <state>CA</state>
   </location>
   <period>
    <from>
     <date>
      <month>April</month>
      <year>2002</year>
     </date>
    </from>
    <to>
     <date>
      <month>March</month>
      <year>2003</year>
     </date>
    </to>
   </period>
   <projects>
    <project>
     <title>Designed and implemented core RTOS from scratch for video decoder board</title>
    </project>
    <project>
     <title>Implemented GigE network driver for RTOS from scratch</title>
    </project>
    <project>
     <title>Designed and implemented custom IP protocol for video streaming</title>
    </project>
    <project>
     <title>Designed and implemented bootrom for video decoder board</title>
    </project>
   </projects>
   <description>
    <para>
      Head of development for a PVR style client/server media platform.
      The basic design involved a primary server for storage with modular
      components for input and output.
    </para>
    <para>
      My primary task involved helping to spec the hardware platform, and
      develop the software to power the systems. The server component was
      basically a Linux based server, with some special tuning for
      switching HD/SD video streams to disk and/or transmitting them out to
      video components over a proprietary protocol on ethernet medium.
    </para>
    <para>
      The systems media out component was driven from a MicroBlaze
      fpBGA base board, using an in house bootrom design to accept
      digital video over ethernet and DMA'd directly to RAM, or output
      through the video hardware. My job was to design the bootrom,
      operating system and ethernet driver to power this system.
    </para>
    <para>
      The final product included a from-scratch multitasking, pre-emptive
      mini-OS. It included a 3k TCP/IP stack, a gigabit ethernet driver for
      Broadcom's BCM5702 MAC/PHY chip, a custom IP protocol utilizing a
      ring-buffer and sequential data delivery for video streams, and a
      driver for the STi7000 MPEG decoder chip. The entire executable image
      was 115k compressed. It was placed (compressed) into the BCM5702's
      serial eeprom, and upon boot was uncompressed into slowram. The
      decompressor was 1.5k of executable code (to fit into 4k fastram).
      The entire system ran in 512k slowram, plus 4k of fastram for
      common routines (interrupt handler, memcmp, mul/div).
    </para>
   </description>
  </job>

  <job>
   <jobtitle>Sr. Developer</jobtitle>
   <employer>ITisOpen</employer>
   <location>
    <city>San Jose</city>
    <state>CA</state>
   </location>
   <period>
    <from>
     <date>
      <month>July</month>
      <year>2001</year>
     </date>
    </from>
    <to>
     <date>
      <month>November</month>
      <year>2001</year>
     </date>
    </to>
   </period>
   <description>
    <para>
     Hired to lead the Research and Development department of a new Linux
     start-up. Main responsibilities were to build documentation on a set
     of service offerings. The start-up never got second round funding.
    </para>
   </description>
  </job>

  <job>
   <jobtitle>Directory Services Engineer</jobtitle>
   <employer>Winstar Wireless</employer>
   <location>
    <city>Herndon</city>
    <state>VA</state>
   </location>
   <period>
    <from>
     <date>
      <month>January</month>
      <year>2000</year>
     </date>
    </from>
    <to>
     <date>
      <month>April</month>
      <year>2001</year>
     </date>
    </to>
   </period>
   <description>
    <para>
     Responsible for the enterprise wide deployment of LDAP services for
     authentication, employee information, and asset management services. This
     included identifying and collecting data from key company agencies and
     synchronization of the data for over 8000 employees. Data was collected
     from an existing Access database, PeopleSoft database and Email
     services in to one cohesive data set for propagation over the LDAP
     system. The LDAP service is based on a replication structure, serving
     several key network points across the U.S. and overseas, including
     corporate office buildings and sales offices.
    </para>
   </description>
  </job>

  <job>
   <jobtitle>System Administrator</jobtitle>
   <employer>Virginia Dept of Juvenile Justice (Jordan Systems, Inc.)</employer>
   <location>
    <city>Richmond</city>
    <state>VA</state>
   </location>
   <period>
    <from>
     <date>
      <month>May</month>
      <year>1999</year>
     </date>
    </from>
    <to>
     <date>
      <month>December</month>
      <year>1999</year>
     </date>
    </to>
   </period>
   <description>
    <para>
     Contracted consultant to build an internal information structure
     consisting of an attribute based web system using LDAP for attribute
     storage and PHP3/perl for programming the backend applications. Client
     access is via normal browsers (ie, Netscape, IE, Lynx, Mosaic). This
     supports the OASYS network, which is based on an Oracle database and
     AIX/IBM servers. The LDAP API was enabled using OpenLDAP and perl-ldap.
     Also enabled a "big brother" type host monitoring system using LDAP. Also
     implemented Kerberos 5 based authentication system for internal and
     external access to the systems.
    </para>
   </description>
  </job>

  <job>
   <jobtitle>System Administrator</jobtitle>
   <employer>NASA Langley Research Center (Jordan Systems, Inc.)</employer>
   <location>
    <city>Newport News</city>
    <state>VA</state>
   </location>
   <period>
    <from>
     <date>
      <month>July</month>
      <year>1998</year>
     </date>
    </from>
    <to>
     <date>
      <month>April</month>
      <year>1999</year>
     </date>
    </to>
   </period>
   <description>
    <para>
     Part of a four person group that managed software and system maintenance
     for AIX, Solaris, Irix, and Linux systems. Also responsible for developing
     and deploying new technologies, most of which I was responsible for
     developing. Other responsibilities included maintaining a full DCE/DFS
     cell for general use (ave. of 5000 accounts), as well as integrating
     software with the DCE authentication scheme. Designed and developed an LDAP
     based name service (replaced NIS, DCE, and Kerberos) and the utilities
     associated with it's general use. Began work on porting the DCE/DFS
     source code to the Linux platform.
    </para>
   </description>
  </job>

  <job>
   <jobtitle>Assistant Systems Analyst</jobtitle>
   <employer>DynCorp Information and Engineering Technology</employer>
   <location>
    <city>Newport News</city>
    <state>VA</state>
   </location>
   <period>
    <from>
     <date>
      <month>December</month>
      <year>1997</year>
     </date>
    </from>
    <to>
     <date>
      <month>June</month>
      <year>1998</year>
     </date>
    </to>
   </period>
   <description>
    <para>
     Developed Web based software as front end database applications with
     client interface as well as online administration. Implemented security
     protocol to control access to the systems and linked control to the
     administration application. Responsibilities also included maintaining the
     FreeBSD based servers, which served the internal workstations (Windows
     95 / WfW 3.11) utilizing Samba for file and print services.
    </para>
   </description>
  </job>

  <job>
   <jobtitle>Director of Web Design / Web Admin</jobtitle>
   <employer>Visionary Systems (VisiNet)</employer>
   <location>
    <city>Newport News</city>
    <state>VA</state>
   </location>
   <period>
    <from>
     <date>
      <month>June</month>
      <year>1996</year>
     </date>
    </from>
    <to>
     <date>
      <month>December</month>
      <year>1997</year>
     </date>
    </to>
   </period>
   <description>
    <para>
     Lead a four person web design group. Responsibilities ranged from project
     management, to maintaining the Solaris based apache servers. The servers
     hosted over 200 virtual web sites. Researched new and developing
     technologies for offering value added features in our web design scheme.
    </para>
    <para>
     I was also responsible for teaching VisiNet's web courses. This
     involved creating curriculum and course material as well as actually
     teaching the class. Topics included Java and HTML. Class sizes ranged
     from 4 to 40, and audiences ranged from IT professionals, to average
     office workers. Related to this, I also did many public talks for area
     user groups.
    </para>
   </description>
  </job>

 </history>

 <skillarea>
  <title>Skills</title>

  <skillset>
   <title>Hardware design knowledge</title>
   <skill>Intel x86, ia64 and x86_64</skill>
   <skill>Sun SPARC and UltraSPARC</skill>
   <skill>Motorola M68000 line</skill>
   <skill>Motorola and IBM PowerPC lines</skill>
   <skill>Mips CPU line</skill>
   <skill>StrongARM line</skill>
  </skillset>

  <skillset>
   <title>Operating Systems</title>
   <skill>Linux kernel based OS's from 2.0 through 2.6</skill>
   <skill>Solaris</skill>
   <skill>HP/UX</skill>
   <skill>AIX</skill>
   <skill>All Windows variants</skill>
   <skill>MacOS and MacOSX</skill>
  </skillset>

  <skillset>
   <title>Programming languages</title>
   <skill level="8 years">C</skill>
   <skill level="8 years">C++</skill>
   <skill level="4 years">SPARC assembly</skill>
   <skill level="9 years">Perl</skill>
   <skill level="5 years">Python</skill>
   <skill level="5 years">PHP</skill>
   <skill level="1 year">YACC</skill>
   <skill level="1 year">SQL</skill>
  </skillset>

  <skillset>
   <title>Internet protocol development</title>
   <skill>UDP/IP</skill>
   <skill>TCP/IP</skill>
   <skill>HTTP</skill>
   <skill>ICMP</skill>
   <skill>SMTP</skill>
   <skill>DNS</skill>
   <skill>custom IP protocols</skill>
  </skillset>

  <skillset>
   <title>Linux Kernel subsystem development</title>
   <skill>PCI</skill>
   <skill>networking protocols</skill>
   <skill>ethernet drivers</skill>
   <skill>USB</skill>
   <skill>IEEE-1394 (Firewire)</skill>
   <skill>SCSI</skill>
  </skillset>

  <skillset>
   <title>Documentation</title>
   <skill>DocBook</skill>
   <skill>Doxygen</skill>
   <skill>LinuxDoc</skill>
   <skill>XML</skill>
   <skill>XSL stylesheets</skill>
   <skill>DTD creation</skill>
  </skillset>

  <skillset>
   <title>Database</title>
   <skill>MySQL</skill>
   <skill>PostgreSQL</skill>
  </skillset>
 </skillarea>

 <memberships>
  <title>Related Interests</title>

  <membership>
   <title>Ex-Project Leader / SPARC Porting / Developer</title>
   <organization>Debian</organization>
   <url>http://www.debian.org/</url>
   <period>
    <from>
     <date>
      <month>October</month>
      <year>1998</year>
     </date>
    </from>
    <to>
     <present/>
    </to>
   </period>
   <description>
    <para>
     Debian is considered far and wide to be one of the most stable Linux
     distributions. It's strengths include a stability and policy driven
     development model and security. It is one of the most cohesive end-to-end
     systems available, supporting one step upgrades from one major release to
     the next. Debian is under a non-profit organization, Software in the
     Public Interest (SPI) and is supported by over 900 volunteer developers
     from across the globe. All development is done collaboratively via the
     Internet (email discussion groups, Internet Relay Chat, etc.).
    </para>
    <para>
     Debian produces a stable distribution for over 11 architectures (Arm, PPC,
     Alpha, Intel, SPARC, Motorola 68k, ia64, hppa, mips, SH4, s390) and is
     currently developing ports for several other architectures including
     AMD-64, We also have a port for the GNU/Hurd system for Intel underway.
     With over 6000 software packages (spanning 6 CD's for each architecture),
     all compiled for each architecture in an easy to install package format,
     it is one of the most complete Linux distributions available.
    </para>
    <para>
     The Debian Project Leader (DPL) is a position elected by the developers,
     my peers. During my term as DPL, I was responsible for overseeing project
     goals and championing new directions for the project, as well as being the
     public figure head. This involves organizing and drafting proposals for
     adoption by the project.
    </para>
    <para>
     I am currently handling Debian's SPARC/UltraSPARC port, although in a
     much lesser capacity than I used to. The port is stable enough now
     that the automatic build system generally handle 99% of the work.
    </para>
  </description>
 </membership>

  <membership>
   <title>Project Lead / Developer</title>
   <organization>Linux1394 (<url>http://www.linux1394.org/</url>)</organization>
   <period>
    <from>
     <date>
      <month>March</month>
      <year>2003</year>
     </date>
    </from>
    <to>
     <present/>
    </to>
   </period>
   <description>
    <para>
     The Linux1394 project is working on a complete set of drivers for the
     IEEE 1394 subsystem in the Linux kernel. Along with the IEEE 1394
     subsystem are a set of hardware drivers for specific cards
     implementing the 1394 spec (including OHCI1394 and PCILynx). Also
     includes a set of protocol specific drivers such as video1394 and
     SBP-2.
    </para>
    <para>
     I've done most of the work to convert the virt_to_bus/bus_to_virt
     interfaces to Dynamic DMA mappings for the OHCI and SBP-2 drivers.
     This allowed the drivers to be used on kernel architectures that did
     not support direct bus addressing, but instead use mappings. I was the
     first to get SBP-2 working on UltraSPARC.
    </para>
    <para>
     I've also implemented much of the Node Manager for hooking into the
     protocol specific drivers, which has led the way to implementing
     hotplug support for the IEEE 1394 stack. I've taken over the OHCI1394
     driver as a result of my work with it.
    </para>
    <para>
     Since starting to contribute to the Linux1394 project, I was given
     administrator status. This means that I currently handle the majority
     of the workload: approving and merging patches from contributors,
     syncing patches with the primary kernel trees (currently 2.4.x and
     2.5.x), selecting major contributors to have SVN access to the
     project, and administrating the project's resources (issue tracking,
     etc.).
    </para>
   </description>
  </membership>

  <membership>
   <title>Author</title>
   <organization>
    Happ UGCI Linux library
    (<url>http://www.phunnypharm.org/ugci/</url>)
   </organization>
   <description>
    <para>
     libugci is a small library that utilizes the Linux USB HID layer to
     access the special Happ UGCI game device. This device allows you to
     connect real arcade controls to a standard PC. Using this library it
     is possible to get real-time events from the controller.
    </para>
    <para>
     Currently I have had patches merged into the xMAME project to support
     using this library to interface with the Happ UGCI controller. There
     are also patches for Snes9x.
    </para>
   </description>
  </membership>

  <membership>
   <title>Maintainer / Developer</title>
   <organization>Sparc Improved boot LOader (<url>http://www.sparc-boot.org/</url>)</organization>
   <period>
    <from>
     <date>
      <month>March</month>
      <year>2003</year>
     </date>
    </from>
    <to>
     <present/>
    </to>
   </period>
   <description>
    <para>
     SILO is the SPARC/UltraSPARC Boot Loader for Linux/Solaris. It's
     similar in spirit to LILO, which is the Intel Linux Boot Loader. SILO
     was written originally by several people, including Jakub Jelinik, and
     David Miller. With their permission, I took over maintaining this
     program. My main role involves taking bug reports, applying patches,
     and implementing features. I used a SourceForge site to make sure the
     program retained a non-distribution specific status.
    </para>
   </description>
  </membership>

  <membership>
   <title>Co-Author</title>
   <organization>Prothon Language (<url>http://www.prothon.org/</url>)</organization>
   <period>
    <from>
     <date>
      <month>March</month>
      <year>2004</year>
     </date>
    </from>
    <to>
     <present/>
    </to>
   </period>
   <description>
    <para>
     Prothon is a new object-oriented prototype-based programming language
     based on Self and Python. Mark Hahn is the original author (Mark was
     also my employer with DEQO), and asked me to join the project. I
     originally started with just getting his win32 code ported to Unix
     based systems (took two days) and then have continually helped to
     shape the language and write a good portion of the code.
    </para>
   </description>
  </membership>

 </memberships>

</resume>
