Objective

My professional objective is to apply my creativity, education, and experience with software development to solve interesting problems in a profitable and productive manner. I wish to continuously learn new software technologies and methodologies beneficial to an employer's products.

Currently interested in gaining more experience in iPhone application development.

Interest

  • Social Applications, such as Twitter, FaceBook, Four Square
  • TED Talks
  • Volunteering for the San Francisco Bicycle Coalition
  • BurningMan and regionals
  • Support of local arts and DIYists, e.g. Oakland Art Murmur, Mission Indie Mart, MakerFaire

Summary

Software engineer with over 5 years experience working with Linux technologies, ranging from modifying the kernel, to writing and maintaining software packages.

Currently developing an iPhone Application.

Work History

Work History
Aug 2009 - Present

DevOps Engineer

Rapleaf

DevOps Engineer

Responsible for the maintenance of datacenter machine and office-located hardware.  Responsible for all levels of support for engineers and non-engineers. These duties required a working knowledge of bash, awk & sed, ruby, rails.

Weekly duties:

  • Scrum Master for DevOps team: Coordinate with other teams and  facilitate smooth workflows
  • Hardware maintenance
  • Quickly solved technical “hot-button” issues
  • Documentation new features on internal wiki

Partial list of achievements as a member of the DevOps team:

  • Implemented MCollective
  • Redesigned, optimized, Rapleaf's use of Puppet.
  • Port internal code from SVN into GIT. 
  • Managed & decommissioned proxy network. 
  • Migrated company to Google Apps for Business
Sep 2005 - Nov 2008

Software Engineer

Penguin Computing

Responsible for the maintenance, adaptation, and architecture of software. Ensured that software suite  included support for Penguin's hardware. Assisted kernel developers, developed new applications and  modified existing ones. These duties required a working knowledge of bash, awk & sed, modifying and applying kernel patches, RPMs, and the C language.

Daily duties:

  • Fixed software bugs across the entire product suite
  • Gave third tier technical support when called for
  • Quickly solved technical “hot-button” issues
  • Developed Q/A test software
  • Documented (using SGML) end-product documentation

Partial list of achievements as a member of the software team:

  • Modified the Linux kernel to add support for the GPL'd Beowulf “Bproc” distributed process space (ongoing effort).
  • Integrated the community's Bproc File System into Penguin Computing's  Beowulf product.
  • Developed, within the company's build-system, a sub-system to produce RPMs against a given RedHat Enterprise kernel.
  • Integrated DKMS (Dynamic Kernel Module Support) into Penguin's build-system, producing RPMs for various device drivers from a common template
  • Created from scratch a Name Service Proxy system, named “kickback”, written entirely in “C”. This project would require a new glibc NSS library, two client-server daemons, and a simple messaging  protocol. The goal was to allow for single point installation of name services (e.g. LDAP, NIS, DNS).
  • Wrote a new C library, as well as new applications, to query and modify the ClusterWare compute node database
  • Updated product's configuration tool (beoconfig) to support new enhancements and features.
  • Responsible for the “back-end” application support  to assist  team-members'  web-enabled ClusterWare management toolkit. Modify and added new features to existing software.
Jan 2001 - Mar 2005

Embedded Linux Developer

Technologic Systems

One of two software developers for a small sized company that specialized in PC/104 single board computers. Assisted the lead developer in packaging, installing, and modifying the Linux OS  to support the company's i386, and later ARM based, hardware.  Developed low-level kernel device drivers, creating a new Linux OS, provide technical support to customers for all Linux related issues, and administer the company's heterogeneous intranet.

Developed, supported, maintained Linux low-level Kernel Drivers for PC/104 products, including:

  • Created (from scratch) TSLinux, an embedded Linux OS distribution, specifically for the company's hardware.
  • Implemented a driver for the product's watch dog timer
  • Supported a QVGA FrameBuffer product.
  • Developed device drivers for the on-board Analog to Digital Converter
  • Tested and debugging of hardware and Linux device drivers
  • Modified serial driver to support products' auto-RS485
  • Modified pcmcia-cs for embedded products
  • Modified core kernel code to better fit x86, ARM, embedded processors

Also responsible for the support and maintenance of the company's web-site. Created, using MySQL and PHP, a two-tier web-site solution for easier maintenance, product updates, and usability.

Education

Education

Skills

Skills

Linux application developer

Ability to maintain existing code and develop new code for the Linux Operating System. I have a working knowledge of Linux scripting languages such as Bash, awk & sed,  experience working with Linux packaging software (RPM, Debs, and distributed and version-tracked tar-files), as well as developing client-server networking applications. I also have the flexibility to maintain and dive into existing Apache,  (basic) MySQL, and PHP applications. 

iPhone Developer

Currently developing iPhone application to be submitted to the Apple App store. Application is demonstrable on my iPhone. 

Linux Kernel & Kernel-Driver developer

Wrote 2.4 Linux Drivers for DIO and AtoDIO ports on embedded machines. Modified RedHat Enterprise 4 and RHEL 5 (kernel version 2.6)  kernel packages to include patches co-maintained with software staff for Penguin Computing's Scyld Clusteware product.  

C