| Peter Wagner | April, 2009 | |
| 1447 Dove Lane | Work: (408) 974-6327 | |
| Sunnyvale, CA 94087 | iPhone: (408) 309-3856 | |
| google map of home | EMail: pwagner (at) cs.stanford.edu |
Job status:
Skills summary:
| Education: | Stanford University 1991: B.S.E. Computer Science with extra
study in operating systems and computer graphics
Stanford University 1991: A.B. Quantitative Economics with concentration in mathematical modeling of commodities and foreign currency markets |
| Mac OS X: | 7 years use and programming with Carbon and Cocoa on Mac OS 10.1.5 through 10.6
Tools: Metrowerks C/C++; XCode C/C++/Objective C Technologies: Cocoa, SQLite, Core Image, Carbon, Quicktime, Time Machine, Applescript, Subversion |
| Linux: | 1 year use, configuration, administration, and light programming
using Redhat 7.1 & 7.2 (2.4.x kernel).
Tools: linuxconf, Gnome Desktop. Technology: Apache, Secure Shell (SSH 2), gcc, pthreads, Perl Scripting, shell scripting, CGI, X11 (r6). |
| Windows: | 4 years programming experience with Win32 and MFC on
Windows NT 4.0, 1 year with Windows 2000 Professional.
Tools: Microsoft Visual C++ 6.0, SourceSafe 6.0, Class Wizard. Technology: ISAPI, IIS, COM, Oracle 8 with OCI 8 APIs. |
| Internet: | Data: HTML 4.0, XML, XHTML
Servers: Apache, Netscape Fastrack Server, Microsoft IIS, Microsoft Personal Web Server Custom webserver solutions: CGI, ISAPI, SSL, WinSock under NT 4.0, Serverside JavaScript (Netscape), ASP |
| Macintosh Classic: |
12 years programming experience with Macintosh Toolbox, Quickdraw,
Color Quickdraw, raster-based printer drivers, SCSI drivers,
speed-optimized hardware savvy assembly code.
Tools: Metrowerks CodeWarrior, PowerPlant, MPW, Symmantec C++, and much more. CPUs: full line of 680x0 and 6888x processors, PowerPC 601 - 7400 |
| BeOS: | Written several graphics and UI savvy applications for this real-time, modern, internet savvy operating system. Familiar with BeOS object-oriented GUI framework. |
June 2004 to present
Senior software engineer, iPhoto, Apple Inc. Responsible for technical
design and implementation of various parts of iPhoto releases 5.0 through 8.0.
Reworked iPhoto data storage to use SQLite database. Encorporated Time Machine
backup technologies.
June 2002 to June 2004
Senior software engineer, iTunes, Apple Inc. Responsible for technical
design and implementation of the display and GUI portions of iTunes Music Store. Originally
for Mac OS X/C++/Carbon, but also helped port to Win32 platform.
November 2000 to June 2002
Senior software engineer, OS group, Palm Inc. Responsible
for graphics of next-generation 68k and ARM-based Palm
devices (OS 4.1, 5.0, and 5.1). Key architect and implementor of
graphics software
for Palm's high-resolution devices, moving the company's 75 dpi software
to 150 dpi high resolution screens. Helped move Palm OS to
ARM-based hardware. Worked with ARM and x86 emulators that implement
68k compatibility environment. Used ARM Inc. development tools: C, C++,
Linker, and debugger (AXD). Worked with prototype Intel XScale CPUs.
May 2000 to October 2000
Independent software consultent working at E-Color Inc ( www.ecolor.com ).
Worked on prototyping next-generation color calibration software
using Win32, MFC, HTML, and JavaScript. Developed several
prototypes that explore
tradeoffs between technical color issues and human-interface design.
Researched several algorithms for manipulating digital images
for accurate display on LCD displays. Defined and developed
Macintosh client application
(Mac OS 8 & 9, internet APIs, PPC & 68k, PowerPlant).
Working for E-Color has given me many insights on software color
calibration techniques including display characterization and color
image representation and transformation. Several of my ideas are
possible patent opportunities for the company.
January 1999 to April 2000
Senior software engineer at Cadero.com--a tiny internet startup.
Responsibilities included designing and implementing new data
modeling and data mapping products on Windows NT. Wrote GUI-based
applications using MFC, Visual C++ 6.0, and IIS. Designed and
implemented custom object / relational (O/R) mapping tool for multi-tier
database systems, including Oracle 8i and SQL Server. Designed
and implemented custom relational database engine with special
support for the specific transactions needed in O/R mapping
systems. Wrote HTTP server that converts C++ and Java objects
to XML and serves them over the internet.
Transium Corporation, September 1997 to January 1999
Senior software engineer with internet startup company. Designed
and implemented C++ plugins for internet e-commerce. Used SSL,
CyberCash, and industry standard encryption and authentication to
implement credit card charging. Worked with GUI
designers and artists to create web front-end. Wrote custom C++
programs to dynamically generate HTML for our web service.
Amazing Controls!, May 1997 to August 1997
Senior software engineer with responsibility for creating light-weight,
near-real-time, operating system using C++.
The OS ran on the company's custom embedded hardware that employed MC68302
and MC68360 CPUs.
Defined, designed, and implemented object-oriented C++ APIs to replace procedural
APIs of previous operating system written in Modula (Pascal). Operating system
handled AppleTalk communication protocol over Ethernet and Localtalk (serial) hardware,
DMA-based serial I/O, touch screen with raster graphics LCD, threaded architecture
with light-weight multitasking.
Worked on cross-development system that ran on Macintosh. Leveraged Metrowerks' MC68000 C++ compiler to generate code for our embedded controllers. Wrote tool using PowerPlant framework that managed programs and graphics on our embedded controllers. Wrote tool for new LCD touch-screen used by company's embedded system; my tool allowed designers to use Macintosh to lay out graphics, text, and "touch points" for LCD screen; tool converted standard Macintosh dialog resources to run on LCD touch screen.
Visioneer Inc., December 1994 to May 1997
[Second job at Visioneer] Part of hardware group. Wrote low-level Macintosh
SCSI driver to interface with company's new color scanner. Used PowerPlant
to deliver custom scanner hardware
test application for Mac that runs in the manufacturing factory in Taiwan (Mac's
standard SCSI interface made it a fast and reliable test platform).
Helped design and write custom color calibration
software for digital scanner. Worked with ASIC group to research, design,
implement, and debug
compression and protocol for passing image data from scanner to computer (Windows
and Macintosh). Implemented lossy and lossless compression and decompression
software for
real-time image transmission from scanner to computer; used different algorithms
specific to bitonal, grayscale, and color compression needs.
[First job at Visioneer] Part of Macintosh sofware group. Responsible for image storage and low-level image manipulation using C and assembly language. Designed and implemented advanced image processing algorithms specific to the needs of digitally-scanned images: deskew, despeckel, trim edges, color correction (hue, saturation, brightness, contrast, gamma, white point), real-time blur and sharpen filtering, lossy and lossless direct-to-disk image compression. Implemented industry-standard compression and storage algorithms: CCITT group 3 and group 4 bitonal compression, TIFF, GIF, JPEG, huffman coding, LZW and LZSS compression. Designed and wrote object-oriented imaging pipeline that starts with compressed disk data and outputs pixels directly to a video buffer controlled by an object-oriented C++ application framework (MacApp).
Global Village Communication, August 1992 to December 1994
Responsibility for improving GlobalFax fax imaging driver for major 2.5 release.
Added custom dithering support for grayscale faxes. Responsible for Quickdraw,
Color Quickdraw,and Quickdraw GX fax imaging. Rewrote fax viewing engine while
implementing on-the-fly image rotation, custom anti-aliasing, and contrast/brightness
control. Designed and wrote all-new client registration application. Designed
and wrote all-new multi-threaded client registration server. Rewrote and
optimized fax compression and decompression algorithms; ported code to
PowerPC architcture; reworked algorithms for highest-speed MC68000 and MC68020
assembly language implementation.
Oracle, September 1991 to July 1992
SQL*Forms 4.0 development team. Experience in very
large projects using cross-platform GUI library. Emphasis in long-term
and cross-platform code portability. Coding done in C on large VMS system.