Greg R. Roelofs

San Jose, CA
(408) 866-5922
roelofs@pobox.com

Goal: To do challenging, innovative software engineering or research in an interesting area—such as cluster/grid computing, web search, imaging/graphics/visualization, or compression—preferably in a Unix/Linux environment.
 
Education: University of Chicago University of Minnesota
   Ph.D., Physics (Radial Motions in Spiral Galaxies)      B.S., Physics  
   M.S., Physics        B.S., Astrophysics  
           B.S., Mathematics  
 
Experience:   Google Mountain View, CA
Senior Software Engineer, April 2011 to October 2012. Worked on main control software for Google clusters: designed and helped implement instrumentation for distributed package-loading; improved task-startup latency; extended UI; performance-tested peer-based loader; data-mined I/O and related metrics for performance bottlenecks; added low-level support for new storage hardware; mentored a new hire; managed releases on rotating basis; etc.
 
Yahoo! Sunnyvale, CA
Senior Member of Technical Staff ("Technical Yahoo!"), September 2004 to October 2007; Principal MTS, October 2007 to February 2010; Senior Principal Architect, March 2010 to April 2011.
  • 2010-2011: Member of core Hadoop map-reduce team in Grid Computing group. Added support for concatenated gzip files; mentored summer intern working on FastLZ and LZMA support; reworked blacklisting of bad nodes into hybrid of health-script-triggered blacklisting and heuristic graylisting; added "ubertask" performance optimization (job within a task) for small jobs, including port to next-gen map-reduce; etc.
  • 2009-2010: Led effort to expand, automate, and "robustify" runtime performance-testing infrastructure. Studied "large dictionary" usage and needs across range of search- and ad-related applications. Investigated methods for improving compression of Yahoo Mail attachment-store.
  • 2004-2008: Member of back-end runtime search-engine team. Rewrote core "results presentation" code to provide more intelligent and relevant summaries of web pages returned as users' search results; profiled and optimized code; managed search-engine releases and database performance-testing on rotating basis; helped monitor and troubleshoot "unusual behavior" in back-end clusters; documented evolving design of summarization component and of overall search engine.
 
Philips Semiconductors San Jose, CA
Software Architect and Research/Development Engineer, June 2001 to September 2004.
  • 2004: Helped create embedded-Linux SDK for triple-core (MIPS + two DSPs) processor, to support digital video and audio applications.
  • 2003-2004: Ported interprocessor-communication (IPC) module of internal SDE to triple-core, dual-OS processor; unified host RPC support across VxWorks, Windows, and Linux; added VxWorks protected-memory extensions.
  • 2001-2002: Part of new innovation and strategy group for home networking and consumer-electronics architectures, with special emphasis on Linux-based gateways and set-top boxes. Led development of first Linux distribution for dual-core (MIPS + VLIW DSP) processor and helped isolate and fix several toolchain, kernel, and hardware bugs.
 
Philips Research Sunnyvale, CA
Member of Technical Staff, August 1995 to April 1996; Senior MTS, April 1996 to May 2001. Researched and developed multiple projects, including Internet TV (WebTV-like prototype); GOLD, a hybrid image format designed for low-bandwidth channels (US 6,128,021); virtual communities, with emphasis on level-of-detail algorithms, scalability, and 3D navigation (US 6,270,414, US 6,765,572); the virtual CD jukebox (software design, audio codec optimization); the reliable home server, a series of Linux-based prototypes for home networking, remote monitoring, and remote control; and the context browser, a grab-bag of experimental techniques for managing large stores of text, images, audio and video clips, Web bookmarks, appointment and scheduling data, and ordinary computer files, with special emphasis on useful and natural navigation via a handheld device (US 7,047,500).
 
Open-source developer (Internet)
Shareware, open-source, and free/libre software developer, 1985 to present.
  • PNG Development Group, since 1995: Founding member of group to define, implement, and standardize (IETF, later ISO/IEC) a patent-free, lossless replacement for the GIF image format. Created (and still maintain) official Portable Network Graphics and Multiple-image Network Graphics home sites; wrote PNG: The Definitive Guide and PNG chapter of the Lossless Compression Handbook; wrote and contributed to numerous PNG-supporting programs (see Software below).
  • Info-ZIP, 1990-2004: Helped create and distribute portable, free compressor/archiver utilities. Contributed to Zip; led development of UnZip for eight years; maintained web site for more than ten.
 
Additionally, research experience at the University of Chicago and NASA Ames (simulation and visualization software, including a doubly iterative fitting program for galactic dynamics, a 2.5-dimensional gravitational hydrodynamics code, and particle dynamics codes), AT&T Bell Labs, Argonne National Laboratory, and Fermilab (summers); teaching experience (electronics, modern physics, electromagnetism, freshman physics); and excellent technical-writing skills (see Publications below).
 
Patents:
  More than a dozen additional disclosures and filings (e.g., Force-Mediated [Font] Rasterization, Nonlinear Display Method for Data of Infinite Extent, Virtual Model Generation via Physical Components, GUI has Library Metaphor Based on Non-Euclidean Geometry).
 
Publications: 
PNG Lossless Image Compression, in Lossless Compression Handbook, Academic Press (Elsevier Science), December 2002.
 
PNG: The Definitive Guide, O'Reilly and Associates, June 1999.
 
The Future of Linux, Linux Journal, October 1998.
 
Take Command: unzip, Linux Journal, January 1997.
 
Radial Motions in Spiral Galaxies (dissertation), University of Chicago Press/UMI, December 1995.
  Additional articles in Web Review, Linux Journal, and various internal technical publications.
 
Software: Primary author of pngquant (RGBA to RGBA-palette quantization and dithering); rpng/rpng2/wpng cross-platform demo programs (Unix, VMS, Win32); pngsplit (PNG chunk-extraction utility); UnZip; gpr (ASCII-to-PostScript converter); various Unix scripts and utilities; "which" clone for OS/2; original OS/2 port of Elvis (text editor); etc.
 
  Contributor to Hadoop, FreeWRL (VRML viewer), XV, intel2gas (assembler-syntax converter), Firefox/Mozilla/Netscape 6+, Arena, X Mosaic, libpng, gif2png, tiff2png, pnmtopng/pngtopnm, pngcheck, pngcrush, XPaint, giftool, Zip, lha, unrar, check/crc, file/magic, BSD mailx, BSD uuencode/uudecode (VMS port), hd (hex dumper), fm (hex editor), life (OS/2 screen saver), VMS zmodem, and others.
 
Technical: C/C++/STL, Java, Python, x86/x86-64 assembler, some Perl, FORTRAN, VRML, PostScript; Unix/Linux and X development, 32-bit Windows, VxWorks, pSOS+, OS/2, DOS, VMS; PC, Sun, SGI, Cray, TriMedia, MIPS, and other hardware.


This page can be found at   http://gregroelofs.com/resume.html .
Last updated 7 October 2012.