Kaleb S. KEITHLEY
103 Brookside Ave.
Belmont, MA 02478
(h) 617 484 1338 (c) 617 417 4037

Summary:

Experience:

Red Hat., Westford, Massachusetts — Feb 2011 to present
Title: Senior Manager, Senior Principal Software Engineer; task: Manager and software developer, Red Hat Ceph Storage (RHCS), Ceph, Red Hat Gluster Storage (RHGS), GlusterFS

Part of an international team developing Red Hat Ceph Storage (RHCS) and Red Hat Gluster Storage (RGHS), products based on Ceph and GlusterFS open source projects. Ceph and GlusterFS and Ceph are scale out software defined storage solutions.

Part of the team developing Ceph's Rados Gateway (RGW) Object Storage, adding pluggable backend support for various alternative storage systems, in addition to Ceph, including databases, and partners' propietary storage products.

Team Lead of the six-plus person working on the NFS-Ganesha NFS server. Ganesha is a NFS Server that runs in user space that is used to provide NFS access to Gluster storage vi the Gluster GFAPI library. Lead the team in developing new features, maintenance, and assisting with customer support escalations. Implemented the High Availability feature for Ganesha using Pacemaker and Corosync. Currently rewriting High Availability feature to use CTDB. Producing Ganesha packages for the product. Coordinate with QE team on testing and Ceph engineering. Modifed Ganesha to run as non-root. Modified Ganesha to build as a DSO (shared library) for better link semantics required by cutting edge Linux distributions.

Initated conversion of the Python code in Gluster to Python3 in preparation for Fedora switching to Python3 as the default.

Implemented versioned symbols in the GlusterFS "api" (GFAPI) shared library to preserve ABI compatibility across multiple versions of GlusterFS.

Package maintainer of GlusterFS, Ceph, NFS-Ganesha, and several related packages in Fedora. Co-maintainer of the GlusterFS packages in the CentOS Storage SIG. Build GlusterFS, NFS-Ganesha, and assorted other "community packages" for Fedora, RHEL/CentOS, Debian/Ubuntu and SUSE/OpenSUSE that aredistributed from Gluster's download site, Ubuntu Launchpad, and OpenSUSE Build Service (OBS).

Set up automated runs of Coverity scan, cppcheck, LLVM clang compile and clang analyze, and other checkers doing daily analyses of all the active development branches of GlusterFS and NFS-Ganesha.

Presentations on developing xlators, Ganesha HA implementation, and other topics at LinuxCon Gluster Workshops, LinuxCon Vault, Red Hat DevConf.cz, open source symposiums at NITTE University in India, and Gluster Summit conferences.

Part of the two man team that developed HekaFS (nee CloudFS), a storage platform based on GlusterFS with multi-tenancy features suitable for storage in the cloud. Developed a uid/gid remapping xlator, and worked on the web-based HekaFS configuration GUI. After the acquisition of Gluster, Inc., refactored part of the GlusterFS internals as a foundation for incorporating HekaFS multi-tenancy functionality into GlusterFS.

EMC2, Hopkinton, Massachusetts — June 2004 to Feb 2011
Title: Consultant Software Engineer; task: Architect, advanced software development, Centera, Celerra, Atmos.
Part of an international team developing software for the current and next generation Centera and Celerra products. Designed and implemented a location service for positioning and retrieving files across multiple drives through time. Migrated 32-bit implementations to 64-bit. Revampled the build/make environment. Implemented RPM packaging, init.d scripts, unit tests using the CppUnit utility, introduced valgrind as a tool for dynamic testing of resource utilization. Evaluated Coverity Prevent and Fortify at the corporate level for static code analysis of C, C++, and Java. Designed and implemented a file system iteration daemon/server that allows multiple applications to share the results with associated applications. Packaged a SuSE Linux appliance (VM) for VMware for a corporate-wide programming competion to promote Centera's XAM functionality. Set up and maintained the corporate SLES 10 Update Proxy (YUP) for SLES10 updates. Evaluated concurrency issues in Centera and made architectural recommendations to improve system throughput. Reviewing Centera sources and suggesting improved software patterns to reduce overall memory usage. Worked with current and prospective partners to develop a framework for integrating their solutions for extracting metadata from Centera systems.

Sun Microsystems, Burlington, Massachusetts — March 2004 to May 2004
Title: Senior Principal Software Engineer; task: software developer.
Responsible for porting Sun's Patch Manager product from Solaris to Linux. Patch Manager analyses available lists of patches available from Sun and makes recommendations about which patches to apply to a customer's system. The majority of the software is written in Java, with some C and C++.

Shiman Associates, Inc., Brookline, Massachusetts; consultant The Open Group — November 2003 to February 2004
Title: Senior Software Developer; task: software developer.
Responsible for boot-strapping X.org's open source Public Implementation of X11.
Established the new source repository in CVS for the members. Forward-ported the sources on several platforms including Linux, Solaris, AIX, Mac OS X, FreeBSD, and Microsoft Windows. Installed and ran the VSW5 regression tests against the binaries built from the sources. Fixed build issues, e.g., added version resources to DLLs, for the Media Application Server (MAS) on Microsoft Windows platforms.

Oryxa, Inc., Waltham, Massachusetts — January 2002 to September 2003
Title: Principal Architect; task: software developer.
Responsible for design and implementation of a distributed component-based storage framework that would allow third-party software components to be added to storage devices. This system was intended to be a standard platform that allows storage administrators to configure components such as mirrors, point-in-time duplicators, etc., into running storage devices to suit their needs.
Implemented the initial version of the framework in Java using the Sun CORBA implementation and later the OpenORB CORBA implemention. Implemented a lightweight resolver for obtaining initial CORBA references using the portmapper rather than a hard-coded port address; this functionality was written in pure Java rather than using JNI and the C library portmapper functions. Implemented a built-in memory and object profiler using the JVMDI services allowing for "real-time" retrieval of JVM statistics from the running program. Maintained and enhanced Linux kernel module used to interface with the Linux file system. Wrote a JavaCUP/JFlex (yacc/lex) parser to generate Java classes from the IDL compiler generated Java interfaces; these Java classes were used to isolate components from their children to strictly enforce the interfaces that they could use. Designed and implemented self-healing network connection fault detection and recovery subsystems. Developed a kernel module device driver to provide SCSI HBA and target device support for a third-party Fibre Channel card. Analyzed performance and memory utilization using third-party Java tools and fixed memory leaks and performance bottlenecks.

InfoLibria, Inc., Waltham, Massachusetts — July 2000 to January 2002
Title: Principal Software Engineer; task: software developer.
Systems Team. Responsible for ongoing development and porting of the operating system and Apache-based web server/cache/proxy for a web cache appliance. The appliance initially used BSD/OS 3.x for the operating system.
Ported the kernel mods, pthreads library mods, and Apache httpd mods from BSD/OS to FreeBSD. Modified bootstrap loader, system installation, and other components for use in an appliance. Analyzed the pthreads library using gprof for performance and fixed performance bottlenecks. Implemented the engineering-level build/release process for eventual turnover to release engineering group. Developed an install CD-ROM for legacy BSD/OS 3.x-based product that had previously been a floppy-only install.
Was later responsible for maintenance and new development in Java for the scheduling user interface for a streaming media server appliance.
Additional Accomplishments: Began implementation of a new open source operating system for i386 and Alpha-based PCs derived from FreeBSD.

Integrated Computer Solutions/Winston Technologies, Cambridge, Massachusetts — July 1998 to July 2000
Title: Principal Software Engineer; task: software developer.
PopupNotes.com Team. Responsible for ongoing development of an internet-based web page annotation system that allowed people to attach PostIt Note®-like annotations on web pages in much the same way they would attach a real PostIt Note® on a document, and optionally share their annotations with coworkers and friends.
Primary contributor to the design of a distributed N-tier system using an Oracle back-end, a farm of web servers, and software components in the user's desktop computer. Implemented the client-side cache and stand-alone UI component used to manage notes the user had written or encountered while surfing the web. Contributed to the development of the Internet Explorer Browser Helper Object that was responsible for displaying notes on web pages the user visited.
Additional Accomplishments: Wrote filtering utilities using the COM components included in Microsoft Word to allow batch conversion of Microsoft Word documents into html files.

The Open Group, Inc (formerly the Open Software Foundation)
X Consortium, Inc.
Massachusetts Institute of Technology, Cambridge, Massachusetts — May 1993 to June 1998
Title: Architect, X Window System; task: lead software developer.
X Project Team. Responsible for ongoing development of the X Window System.
At The Open Group, implemented functionality to reduce colormap flash on 8-bit displays by mapping color cells in new color maps in the same location as the root colormap. Proposed potential new features to members – and lobbied for their adoption – including enhanced security, better Unicode support, and network audio. Developed an X-Server native method for Java. Maintained the implementation. Supervised and mentored several junior developers.
At the X Consortium was principal contributor to the Remote Execution (RX) functionality, a combination of the X AppGroup extension, a Netscape plug-in, a new RX MIME type, and some minimal html that allow the remote execution of applications "embedded" within a Netscape browser. Reviewed, integrated, and enhanced multi-thread support in the R6 Xt library. Designed and implemented safe signal handling in the R6 Xt library.
Additional Accomplishments: Wrote a poll system call for FreeBSD. Wrote an inetd-based server to provide images from my desktop SGI INDY's IndyCam to the X Consortium's public web server.

Contract Software Service, Pasadena, California; consultant/contractor, NASA Jet Propulsion Laboratory — May 1987 to May 1993
Title: Senior Software Engineer; task: software developer, architect.
NSCAT SDPS Project. The NSCAT SDPS project was a three tier distributed system used to produce scientific data from satellite instrument data. Was the principal contributor to the design and implementation of the user interface prototype using OSF/Motif on Sun/Solaris.
NOCC-RT Project. The NOCC-RT was a three tier distributed system used to monitor and control JPL's Ground Data Systems.
Principal developer of a client-server architecture for use within the UI component. Designed the protocol for communication between the server and the various display clients. Developed a library of routines for client applications to retrieve data from the UI's server, including protocol marshaling, 64-bit arithmetic, and Pascal-style sets. Designed and implemented the near-real-time status display application. Participated in the development of real-time status display clients. Participated in the design and implementation of an M4, yacc, and lex compiler and a language for describing display formats.
NOCC-RT Additional Accomplishments: Modified the MIT Sample X Server to support multiple screens on Sun workstations. Developed a 3D Motif-like version of Athena widgets (Xaw3d).
WInGS Project The Wing Integration for Global Support project was primarily intended to determine the suitability of PCs for automating various activities on an Air Force base.
Developed an application to update a remote database based on updates to the central distributed database. Developed various components for the user interface.

Litton Data Systems Division, Van Nuys, California — May 1983 to May 1987
Title: Member, Technical Staff; task: software developer, QA unit and integration testing.
DCT-APD Project, System Test and Integration. Responsible for System Level Integration and Unit Test on a Z80-based handheld communications computer system for the USMC.
NICS-TARE Project, System Test and Integration. Responsible for System Level Integration and Unit Test on a Telex-type communications system for NATO.

Patents:
Conversion of Content, 8489559
Managing distributed storage quotas, 9201896

Education:
California State University, Northridge
Business Administration, Management Information Systems
Brandeis University, Rabb School
Pursuing a Masters in Software Engineering

Other:
U.S. Citizen. Eagle Scout, Wood Badge

References on request.