Kurt Revis krevis@snoize.com http://www.snoize.com ------------------------------------------------------------------------ Summary Software engineer with over ten years experience developing Macintosh applications. ------------------------------------------------------------------------ Experience and History Software Engineer Apple Computer January 2003 -- Part of a team that designed and implemented two brand-new applications for Mac OS X: * Pages, a hybrid word processor/desktop publishing app, as part of the iWork suite * iWeb, a web publishing app, as part of the iLife suite Was primarily responsible for the drawing and graphic features in Pages. Helped refactor Keynote's graphics code into a framework usable by other applications, and added new functionality where necessary. Implemented major new features: * Fast live text wrapping around graphics and in graphics * Placing graphics inline in text * Moving page thumbnails to rearrange a document's structure * Changed rendering from ordinary Quartz to accelerated OpenGL Helped bring this graphics code to iWeb 1.0, and continued developing major new iWeb features. Diagnosed and fixed hundreds of bugs and performance issues in wide-ranging areas of all three apps. Acted as a general Cocoa expert for other team members. Vacation August 2001 -- December 2002 While taking a voluntary break from work, wrote two open-source MIDI utilities for Mac OS X: MIDI Monitor and SysEx Librarian. Also worked on other experiments and research in audio programming, digital signal processing, and AltiVec and OpenGL programming. Some of my code from this time period has been re-used in other applications, like Adium, Coda, and QLab. Senior Software Engineer The Omni Group April 1998 -- July 2001 Worked on a variety of Mac OS X and WebObjects projects, for consulting clients and for Omni directly. Highlights: * Led development of a vertical-market store management application for Mac OS X, Salon Transcripts. Worked with the client and end users on the specification, and managed two other engineers. * Wrote proposals and estimates for potential consulting work. * Added features to, and fixed bugs in, the web browser OmniWeb (winner of two Apple Design Awards in 2001). * Performed upgrades, developed bug fixes, and cleaned up the architecture of the online store of a major software company. * Wrote Mac OS X, Windows, and WebObjects applications that worked with relational databases (Oracle, FrontBase, DB2, and Sybase). Software Engineer Edmark January 1996 -- April 1998 Developed original multimedia education titles for Macintosh and PC, including 3 shipping CD-ROMs, using C++ and in-house cross-platform libraries. Collaborated with teams of programmers, artists, sound designers, and educators. Also developed a prototype implementation of a "kid safe" web browser for the Mac, using custom code on top of Internet Explorer. Software Engineer SPRY/CompuServe Internet Division June 1995 -- January 1996 Developed a user-friendly account creation and network configuration application for Internet in a Box for the Macintosh, using C++ and PowerPlant. Also developed Windows 95-specific enhancements for the web browser SPRY Mosaic, using Visual C++ and MFC. Web Specialist Campus Computing Organization, Caltech Fall 1993 -- June 1995 Principally responsible for maintaining and improving Caltech's Web system. Created web interfaces to large databases (quite a novelty in 1994!) and assisted departments with custom work. Replaced aging campus information systems with web systems, maintained and upgraded servers, and wrote extensive documentation for users. ------------------------------------------------------------------------ Skills Expert in: * Mac OS X application development, including Cocoa, Quartz, WebKit, and CoreFoundation * Mac OS X performance tuning * Objective-C, Objective-C++, and C languages * Object-oriented design and patterns * Xcode Proficient in: * Audio and MIDI programming on Mac OS X (CoreAudio) * Web technologies: HTML, CSS, JavaScript, XML, AJAX * OpenGL * C++, AppleScript languages * UNIX programming and scripting * Source control with Subversion and CVS * Web client implementation: Rendering, JavaScript implementation, TCP/IP programming * Web application development with WebObjects * Relational database (RDBMS) design and maintenance * Platform-independent coding Familiar with: * Java, Perl, SQL, Python, Ruby, Smalltalk languages * CoreImage, ColorSync, QuickTime ------------------------------------------------------------------------ Education B.S., Engineering and Applied Science, concentration in Computer Science California Institute of Technology (Caltech) June 1995 ------------------------------------------------------------------------ Personal Projects MIDI Monitor and SysEx Librarian Two MIDI utility applications for Mac OS X. Useful for working with external MIDI devices (like synthesizers), troubleshooting MIDI problems, and testing MIDI applications and drivers.