Professional Experience |
Planet Labs, Inc (dba Planet), San Francisco, California
Chief Engineer, Payload (2022-present)
Director, Payload (2020-2022)
Director, Camera Operations (2020)
Staff Camera Systems Engineer (2017-2020)
Senior Camera Systems Engineer (2016-2017)
Software engineer, Imaging Operations (2015-2016)
Software engineer, Data Pipeline (2014-2015)
- Landscape photography at scale.
|
[Various]
Operations/Infrastructure Consultant (2009-present)
- Specialize in migration to cloud hosting, automated system building, and system monitoring/instrumentation infrastructure. Particular interest in GIS databases and cartographic applications.
|
[Redacted]
Software Engineer (contract) (2010-2014)
- Rewrote large parts of python+Java web service and underlying PL/pgSQL stored functions
- Designed context-specific map-matching/reverse-geocoding heuristics
- Refactored NAVTEQ NAVSTREETS data with custom schema and PostGIS
- Architected schema/procedures for deploying mixed NAVTEQ and OSM data
- Migrated significant portions of system to AWS EC2/S3/SQS/etc
- Redesigned data architecture/flow for dramatically higher throughput and lower query latency
- Developed autoconfiguring system instrumentation, alerting, and configuration management
|
TiVo, Inc, Alviso, California
Server Software Engineer (contract) (2009-2011)
- Develop and maintain server installation, upgrade, and data migration procedures.
- Lead the resolution of issues discovered in deployed production systems, including data analysis, designing fixes, and writing deployment risk assesments.
- Build monitoring and system analysis tools.
- Maintain and add features to in-house distributed configuration management system.
|
BitTorrent, Inc, San Francisco, California
Operations Engineer (2006-2007)
Operations, Director (2007-2008)
Operations (Consultant) (2009-2010)
- Managed operations team in day to day operations as well as strategic architectural decisions.
- Built sophisticated application instrumentation infrastructure to deliver real-time metrics to meet both engineering and business needs.
- Developed various systems for monitoring and characterizing the agents and traffic flow in the BitTorrent network.
- Assisted with architecting a 300-machine datacenter build-out, including configuration of multi-homed Internet connections, layer 4 load balancers, and a multitier switch fabric.
- Automated the installation and monitoring of the various components of the BitTorrent Entertainment Network and BitTorrent DNA services.
- Oversaw the reorganization of data center resources as business plans evolved, as well as building a backup data center in Tokyo.
|
Integrated Media Measurement Inc, San Mateo, California
Consultant, Network Operations (2006)
- System performance testing and comparison to certify new hardware for computation nodes and database servers
- Built new development cluster, including network, VPN, central authentication, and QA support tools
- Assist developers in fault-tolerant cluster design and automation.
|
Rojo Networks, Inc / Six Apart Ltd, San Francisco, California
Operations Engineer, Consultant (2005-2007)
- Deploy and maintain several different Tomcat and PHP-based websites in fault-tolerant configurations.
- Built out datacenter cage from scratch, including network and automated installation of new machines.
- Assist developers with code instrumentation, statistics, and lower-level tasks.
|
Blue Iraq FZE, Balad, Iraq / Dubai
Co-founder, Chief Technology Officer (2004-2005)
- Oversaw the maintenance and expansion of the company's satellite IP network based on iDirect technology.
- Managed end-user Voice over IP network and connectivity to public telephone networks.
- Developed techniques to improve the ongoing performance of voice and data traffic over satellite IP links.
|
ActiveBuddy, Inc, Sunnyvale, California
Senior Software Engineer (2000-2003)
-
Designed ActiveBuddy
Interactive Agent hosting platform and
coded the dispatcher and message router
components.
- Involved designing a
UDP-based inter-node protocol to exchange
dynamic routing updates and maintain a stable
cluster topology after host failover.
-
Wrote components to connect to over a dozen
different instant messaging networks, most requiring reverse-engineering.
-
Led technical side of the BuddyScript Connectivity Services for wireless connectivity hosting
- Started IMDSR project, including core and several modules utilizing a variety of devices to provider connectivity to GSM and Mobitex networks.
-
Developed client software to bring ActiveBuddy
Interactive Agents to the RIM wireless
email/PDA devices
|
TerraFone, Inc, Berkeley, California
Software Engineer (1999)
Ported a real-time operating system from its native
platform (the fixed-point Analog Devices ADSP-2181) to
the next-generation floating-point ADSP-21065L SHARC
platform.
- Wrote a series of tools to trap the
execution of older, unsupported instructions and flag
them
- When possible, allowed instructions to be automatically replaced
with the their SHARC equivalents without interrupting
execution
- Kept within timing constraints for
attached bit-banged serial devices and
codecs.
- Wrote adspsim, a software simulator for the ADSP-2181,
as an intermediate tool
|
Free Software Projects |
timps (2004-present) - Transparent instant messaging proxy server
Creator, Maintainer, Primary Contributor
- Developed modular architecture for IM routing and application hooks, including an RPC mechanism for use between peered servers.
- Wrote support for AOL Instant Messenger, MSN/Windows Messenger, Yahoo Messenger, and IRC, among others.
- Designed inter-server message routing architecture and protocol for use in building trusted networks of IM users.
|
libfaim (1998-present) - Library to support AOL Instant Messenger protocol
Creator, Maintainer, Primary Contributor
- Reverse-engineered the AIM protocol,
examined packet traces and built tools to provoke the
official clients into behaving in certain ways to provide
useful traces.
- Provided freely available documentation on the protocol, in both code and prose.
- Designed the libfaim API to track a changing client user base as instant messaging gained widespread acceptance in free software world.
|
libnbio (2001-present) - BSD socket wrapper library
Creator, Primary Contributor
- Light-weight, minimalist library for easing the use of non-blocking BSD sockets.
- Supports Linux and FreeBSD quirks.
- Winsock2 (Win32) sockets supported using event object notification with the same API as UNIX.
- Included in Debian/Ubuntu.
|
intermobi (2001-2003) - Independent TCP/IP implementation (project abandoned)
Creator, Sole Contributor
- Specifically targeted for the RIM wireless device using Mobitex as a link-level transport.
- Implemented support for:
- IPv4 (minimum Host Requirements, multiple interfaces)
- ICMP (echo and basic errors)
- TCP (passive and active connects)
- Includes a simple web server.
|
rimsim (2001) - RIM pager simulator for UNIX (project abandoned)
Creator, Primary Contributor
- Parses the dynamic link tables from the RIM
application binaries and binds them to an emulated API,
all other code runs natively on the host CPU.
- Used as a testing and development platform for
intermobi and other RIM projects.
|
tms380tr (1999-2000) - Linux driver for the Texas TMS380 Token Ring COMMprocessors (maintainership transferred; in mainstream kernel)
Maintainer, Primary Contributor
- Transformed the SysKonnect driver into a generic core
and card-specific modules.
- Wrote modules to support Madge and Olicom brand devices
- Required reverse-engineering for initial support
- Extensive lobbying
to those companies brought publicly available programming documentation
|
adspsim (1999) - Simulator of Analog Devices ADSP-2181 (project abandoned)
Creator, Sole Contributor
- Implemented opcode-level simulator of ADSP-2181
fixed-point digital signal processor for UNIX
platforms.
- Supports DSP code profiling
- Offers hooks for emulating serial-port and
memory-mapped devices
|