
Senior Software Developer at TomTom, Dynamic Content and Publishing, Amsterdam
Amsterdam Area, Netherlands

Senior Software Developer at TomTom, Dynamic Content and Publishing, Amsterdam
Amsterdam Area, Netherlands
Working at TomTom in Amsterdam, and developing OLPC SimCity.
Worked on Laszlo Mail: http://www.laszlomail.com
Worked for Will Wright at Maxis, on the core team of four programmers that developed and shipped The Sims. (Best selling computer game of all time, 100 million units worldwide).
Worked for Will Wright at Stupid Fun Club, developing Robot brain, toys, speech technology, reality TV shows, performance art.
Developed ConnectedTV personalized TV program guide and remote control for Palm and other platforms.
Ported SimCity Classic to Unix. Designed and developed a networked multi-player version of SimCityNet.
A wide range of other stuff.
User interface, game development, user created content, online communities, networking, component technology, hypermedia, tools, OpenLaszlo, Python, Zope, Plone, TurboGears, Java, Spring, XML, Relax/NG, speech synthesis, Facebook API, BitTorrent, xulrunner, XPCOM.
(Public Company; 1001-5000 employees; Consumer Electronics industry)
July 2007 — Present (2 years 1 month)
Working at TomTom in Amsterdam, using Mozilla xulrunner as a framework to develop TomTom Home, an "iTunes"-like content management tool for downloading and organizing content on the TomTom GPS navigator device, including music, pictures, voices, points of interest, maps, routes, etc. Developing BitTorrent XPCOM plug-in for xulrunner, to save money by efficiently distributing multi-gigabyte maps and other content. Developing a system for user created content sharing.
(Privately Held; 51-200 employees; Computer Software industry)
March 2005 — Present (4 years 5 months)
Worked with Sarah Allan to develop the OpenLaszlo streaming video and webcam components, tests and demos, and the Laszlo Mail application.
OpenLaszlo Video Components. Enabled OpenLaszlo developers to easily plug together applications with streaming video, webcams, etc. Developed low level video streaming and webcam components, and high level gui components, tests and demos.
The YouTube player demo is currently featured on the OpenLazlo Home Page, and described on my web page with links to its source code, at OpenLaszlo YouTube Player Demo and Source Code. Integrated YouTube player with Laszlo WebTop.
Laszlo Mail. Purpose: Rich web email reader application. Developed in OpenLaszlo by Laszlo Systems. Programmed Email folder outline editor drag and drop user interface, and client/server XML protocol. Developed cross browser email attachment upload component.
Technically reviewed an upcoming book about OpenLaszlo application development and user interface programming.
(Public Company; 5001-10,000 employees; ERTS; Computer Games industry)
March 2000 — Present (9 years 5 months)
Porting SimCity to the OLPC: Cleaning up the code, setting up Fedora Core in VmWare for development and testing, assisting with the QA process, fixing bugs, and adapting it to the OLPC hardware and software environment, in preparation for relicensing SimCity under the GPL.
Developing, documenting, distributing, supporting and upgrading The Sims Transmogrifier, a tool for cloning and modifying Sims objects. Enables players to customize their game. Spawned a cult cottage industry of web sites catering to Sims players. Built higher level object cataloging and personalization tools. (Like RugOMatic, ShowNTell, SimFreaks catalog, etc.)
Maintained The Sims character animation exporter plug-in to 3D Studio Max. Updated the character animation plug-in I developed in C++ and MaxScript, to support the new version of 3D Studio Max.
Ported The Sims from Windows to Linux and optimized it to run as a "headless" server without graphics and sound, to support The Sims Online.
(Self-Employed; 1-10 employees; Computer Software industry)
June 1989 — Present (20 years 2 months)
John Gilmore contracted me to develop various open source projects.
Ported SimCity to OLPC. Adaped SimCity to the OLPC hardware, Linux, Python, and Sugar gui, renovating SimCity source code to prepare for EA to relicense it under the GPL.
Worked on OLPC eBook Reader ("Read Activity"), supporting eBook mode, game controller inputs, power conservation, accessibility.
Developed a Python module for plugging together, configuring and testing Gnu Radio signal processing modules. Used SWIG to integrate template based C++ code with Python. Enable Python scripting, configuration, testing and driving of Gnu Radio digital signal processing software components.
Developed and documented the PSIBER Space Deck for NeWS, a visual PostScript programming and debugging interface for the NeWS window system.
(Privately Held; 1-10 employees; Computer Software industry)
May 2001 — July 2007 (6 years 3 months)
Working with David Levitt for ConnectedMedia, developing ConnectedTV, a subscription service with software that turns your Palm into a personalized TV guide, integrated with a universal remote control. ConnectedTV categorizes shows, filters unwanted programs, and remembers your favorite shows. It features pie menus, so you can easily browse the guide in one hand without a stylus, stroke the name of any show to read the description or change the channel, and send IR remote control commands to consumer electronic equipment.
(Privately Held; 1-10 employees; Hospital & Health Care industry)
September 2005 — July 2007 (1 year 11 months)
Project "Alive!": designed, developed and administered Project "Alive!", an email based nutritional and physical activity behavior intervention program. Worked with Kaiser Permanente, supported by Centers for Disease Control. Ran an empirical study to evaluate the efficacy of Project "Alive!". Integrated Project Alive! with Facebook, supporting shared goals, gift certificates, educational discounts, PayPay integration, FBML, OpenLaszlo components.
NutritionQuest Online Food Frequency Questionnaire and Analysis System: Re-architected, overhauled and extended the NutritionQuest Online Food Frequency Questionnaire and Analysis System, rewriting and enhancing the OpenLaszlo online questionnaire user interface, renovating old PHP code, rewriting old C and SAS analysis code in PHP and Python, designing and implementing a new open-ended extensible analysis system, and using spreadsheets, XML, PHP and MySQL to configure the analysis system.
(Privately Held; 11-50 employees; Computer Software industry)
November 2005 — July 2007 (1 year 9 months)
PeopleAggregator Screen ScraperDeveloped an open-ended Python web page scraper and web service client for hot-syncing text and multimedia data with social networking services. Supports MySpace, Facebook, AIM, Flickr, YouTube, Google Videos and other social networking and web services.
(Privately Held; 1-10 employees; Computer Software industry)
June 2001 — July 2007 (6 years 2 months)
Worked with Sherman Kennedy on challenging multimedia contracting projects.
Big World Terrain Importer. Purpose: Program the "Big World" MMPORG editing tool in Python and C++ to import terrain geographical data, and draw roads and features on the map. Extended the Python interface to the C++ terrain editing tools, and wrote Python scripts to import data and drive the editing tools from data under program control. Technologies: BigWorld MMPORG, C++, Python.
Video Mad Libs. Purpose: Real time digital video blue screen compositing. Composite video camera source over DVD source. Record results to DVD. Matrox video graphics hardware drivers. Programming DirectShow filter graphs. Technologies: C++, Matrox Digisuite SDK, DirectShow, ActiveX, MFC, Filter Graph Editor.
Hand Held Devices. Embedded StrongARM programming and debugging. Technologies: C, StrongARM Assembly, Dragonball Processor, SD Card Hardware, Metrowerks Codewarrior.
(Privately Held; 51-200 employees; Computer Software industry)
July 2006 — August 2006 (2 months)
Performed a code review and quality evaluation of OpenLaszlo source for ReQuest's touch screen media player home automation user interface. Answered questions about OpenLaszlo and Flash player optimization.
(Privately Held; 1-10 employees; Computer Software industry)
January 2006 — May 2006 (5 months)
Wrote a three part tutorial series for IBM's DeveloperWorks web site, about OpenLaszlo and PHP: Spice Up PHP Applications with OpenLaszlo. Technologies: PHP. OpenLaszlo. XML. JavaScript. ReST. SQL. Derby.
(Sole Proprietorship; 1-10 employees; Computer Software industry)
September 2005 — April 2006 (8 months)
Worked with Mark Bartlett to develop and maintain Zope web sites, Plone content management systems, Versant coporate community web site, and develop the SOXPro content management system.
Versant Web Site. Corporate presence and developer community web site. Product and company information. User registration. Developer community support discussion groups and wiki. Documentation and white paper download. Software download and license key generation. Sales lead notification. Employee blogging. User sign-up, management and user database integration. Customer activity and download activity reporting. Internationalization. WYSIWYG content editing. Staging.
SOXPro. SOX (Sarbanes/Oxley) Compliance Content Management System. Business practice documentation. Compliance verification. Auditing. Procedure flowcharting. Graphical flowcharts and swimlane diagrams. WYSIWYG editing. Typed linking and cross referencing. Keyword tagging and searching. Task assignment and management.
(Privately Held; 51-200 employees; Computer Networking industry)
February 2004 — July 2004 (6 months)
Technorati Internet Explorer Toolbar. Purpose: An internet explorer toolbar that lets you search Technorati for reference to the current web page. Post a blog entry about the current web page. WYSIWYG editor for blog postings. Linking with vote-for, vote-against, and other typed relationships. Generic blog-tool plug-in interface with support for Blogger API, MetaWeblog API, Movable Type API, Atom API, Technorati API. XOXO and attention.xml support. Implemented with IE browser in toolbar, so most code is written in JavaScript, with OLE automation interfaces for special features implemented in C++. XML/JavaScript template system for dynamically generating data driven DHTML user interfaces.
(Privately Held; 1-10 employees; Computer Software industry)
September 2003 — January 2004 (5 months)
Network Firewall Monitor. Purpose: Remote network firewall management and monitoring interface. Remove device management. Graphical device status displays and network activity log graphs. Interactive AJAX SVG/XML based interface. Fallback to server side rendering with Batik for non-SVG browsers and phones.
(Privately Held; 1-10 employees; Research industry)
April 2002 — August 2003 (1 year 5 months)
Worked with Will Wright, developed robot brain and control system in Python, running on experimental social robots created by Stupid Fun Club. Developed ideas for toys and games, implemented proof of concept prototypes for patent applications, concept demos, and TV show pilots. Helped develop and perform hidden camera "One Minute Movie" robot reality shows.
Developed telerobotic interface for remotely controlling robot behavior, speech synthesis, facial animation, personality simulation, etc. Used for human/computer interaction research, improvisational performance, and reality TV show pilots.
Developed hidden camera reality TV spots, written by Will Wright and produced by NBC, about a Broken Robot (Empathy), and a Robot Waiter (Servitude).
Developed simulation of talking toys communicating via IR signals with coded conversational protocol.
Expressive Speech Synthesizer and Editor. Synthesize, play, display and edit inflected synthetic speech.
(Privately Held; 11-50 employees; Publishing industry)
November 2001 — February 2002 (4 months)
Wrote a chapter about pie menus for the book Game Programming Gems 3, titled "Natural Selection: The Evolution of Pie Menus".
(Public Company; 201-500 employees; VIA.B; Entertainment industry)
April 2001 — September 2001 (6 months)
Noggin Video Art Installation. Purpose: Developed a real time video art installation incorporating live adaptive video background removal, warping, compositing, video feedback, cellular automata, gestural control, automatic and interactive modes.
(Public Company; 5001-10,000 employees; ERTS; Computer Games industry)
January 1997 — March 2000 (3 years 3 months)
Worked on a small, agile programming team with Will Wright, managed by Jim Mackraz, developing The Sims. Delivered an ambitious, high quality product on schedule, top selling PC game of all time, winning critical acclaim and numerous awards.
Designed and implemented The Sims character animation system, content creation tools, visual programming tools, user interface, pie menus, architectural editing tools.
Contributed to user interface and game design, implementation, pie menus, architectural editing tools, dialogs, etc. SimAntics visual programming language gui. SimShow preview tool. Made significant contributions to the game and user interface design, and developed important tools (SimShow, Transmogrifier, RugOMatic) enabling player created content.
Top selling game of all time, shipping over 70 million units worldwide. Won Outstanding Achievement in Game Design, Outstanding Achievement in Game Play Engineering and Game of the Year 2000, 2001 Game of the Year.
(Privately Held; 51-200 employees; Computer Software industry)
January 1996 — January 1997 (1 year 1 month)
Research programmer. Visual programming languages. Component technology. Signal processing. Graphics. Director. Real time video. Lisp. C++. Win32. ActiveX. MFC. Lots of other secret stuff.
(Privately Held; 51-200 employees; Computer Software industry)
November 1993 — January 1996 (2 years 3 months)
Designed and implemented a distributed object messaging system. User interface and graphics programming. Object oriented software architecture. Web programming. Authoring tool programming. Writing white papers and ScriptX coding samples. Web server administration. Developer services. Demonstrating new technologies at conferences and trade shows.
(Privately Held; 1-10 employees; Computer Software industry)
August 1993 — November 1993 (4 months)
Worked with David Levitt on Bounce, an interactive real time visual data flow programming language for the Mac. Bounce was originally called Body Electric, developed by VPL for graphical data flow programming of virtual reality performances, interactive TV shows, dynamic multimedia simulations, etc. It's useful for real time input device processing, dynamic 3D rendering, and remote control of devices networked via midi, serial, ethernet, etc.
Hacked the ANSI C Bounce language source code, using Think C, as well as programming visual data flow modules in Bounce itself. Worked on the interface to the MacroMedia Director projector, that David had originally developed for his earlier visual programming language "Hookup". Built data flow modules into Bounce for controlling animation, sound, projector info, sprite info, hit detection, window control, monitor volume, etc.
(Privately Held; 1-10 employees; Computer Games industry)
October 1991 — November 1993 (2 years 2 months)
Ported SimCity to Unix, licensed SimCity from Maxis. Produced and shipped two products: SimCity HyperLook Edition for NeWS; Multi Player SimCity for X11. Awarded best product of 1992 by Unix World.
Studied and optimized original Macintosh C and assembly source code. Rewrote gui using NeWS and HyperLook on OpenWindows 3.0. Rewrote gui again using TCL/Tk on X11, adding multi player support. Wrote audio server , multiple scrolling map views, shared overlays, fast shared memory animation, optimized bitmap updating, talking pie menus, and many other improvements. Wrote illustrated reference manual. Produced and delivered completed product and manual to DUX, and distributed SimCity via Internet FTP and the Sun Catalyst CDROM.
Ported SimCity to OpenWindows on Sun, X11 on Sun, SGI, HP, DEC, and NCD audio X terminals. Designed and implemented multi-user SimCity for X11, with TCL/Tk scripting language and gui.
(Educational Institution; 5001-10,000 employees; Research industry)
September 1992 — May 1993 (9 months)
Worked for Brad Myers as a research programmer on the Garnet project.
Garnet is an advanced object oriented user interface management system for X11, written in Common Lisp, using KR, a prototype based object oriented frame system with constraints. Redesigned the "Opal" graphics layer of Garnet to be modular and portable, by defining a "Glass" interface (Graphical Layer and Server Simplifier), in order to port Garnet from X11 to Display PostScript and the Mac. Rewrote the Garnet PostScript graphics printing module. See the "Garnet Project Home Page".
Extended the "tvtwm" X11 ICCCM virtual window manager to support user definable pie menus with graphical labels, and designed a set of efficient window management pie menus. The source code is available via anonymous ftp. See the "piewm" source code distribution.
(Privately Held; 11-50 employees; Research industry)
February 1992 — September 1992 (8 months)
Worked with Arthur van Hoff in Glasgow, Scotland. Developed HyperLook, an object oriented direct manipulation graphical user interface development environment for NeWS in Open Windows.
Designed and implemented object oriented multimedia toolkit components for animation, video, and audio, using ANSI C, object oriented PostScript, and PdB (a C to PostScript compiler).
Integrated The NeWS Toolkit Open Look components so they can be copied and pasted into the user interface and edited with property sheets. Rewrote the direct manipulation user interface editor as a separate component so it can be easily customized and replaced, and removed to create a runtime system.
Rewrote the client/server communication library to use the NeWS "wire service", making it possible to integrate existing client side NeWS libraries into HyperLook applications.
Wrote an interactive animated cellular automata machine, and several other HyperLook demos. Ported SimCity to HyperLook.
(Public Company; 5001-10,000 employees; SUNW; Computer Hardware industry)
July 1990 — October 1991 (1 year 4 months)
Worked for Rafael Bracho on the NeWS toolkit (TNT), an Open Look user interface toolkit written in object oriented PostScript, for the NeWS window system.
Designed, implemented, tested and documented Open Look GUI components. Worked on all parts of the toolkit, designing application programmer interfaces, implementing and extending user interface components, hacking 2D and 3D Open Look, multiple screens, 24 bit displays, and internationalization.
Participated in TNT design reviews and NeWS architecture group. Helped review, rewrite, and produce illustrations for manuals. Ported HyperNeWS 1.3 to TNT, and worked with the Turing Institute in the redesign of HyperNeWS 2.0.
Designed and implemented many applications, tutorial demos, and utilities, including graphical data structure browsers, ICCCM window managers, pie menus, a thin wire Gnu Emacs driver supporting "drag'n'drop", and pizzatool, which graphically previews your pizza then faxes the order to the pizza parlor.
(Educational Institution; 5001-10,000 employees; Research industry)
January 1988 — May 1990 (2 years 5 months)
Worked for Ben Shneiderman, in the Human Computer Interaction Lab, researching and implementing user interfaces.
Developed HyperTIES hypermedia browser and authoring tool for NeWS, hypertext markup language interpreter in Forth and C, PostScript graphics and text formatter, animation, gui components, and a multi-window UniPress Emacs based authoring tool.
Developed compelling feedback techniques for "embedded menu" image map highlighting, with interactive PostScript graphics. Streamlined gui with gestural pie menus for quick paging and navigation. Used Mitch Bradley's Sun Forth to write HyperTIES markup language interpreter. Integrated C formatter library into Forth.
Designed and implemented PSIBER Space Deck, a visual user interface to the PostScript programming environment in the NeWS window system.
Produced and video taped user interface demonstrations for use in classes and seminars, and gave many live demos to visitors and at conferences and trade shows.
(Privately Held; 11-50 employees; Computer Software industry)
June 1988 — August 1988 (3 months)
Worked with Mike Gallaher on the UniPress Emacs NeWS window system interface. Rewrote the multi-window display driver for NeWS. Implemented a popup menu interface, a menu compiler, a text selection interface, tab windows, and pie menus, including custom font and color selection pie menus. Ported the Emacs NeWS interface to the 4Sight window system on the Silicon Graphics Iris 4D.
(Educational Institution; 5001-10,000 employees; Research industry)
September 1985 — January 1988 (2 years 5 months)
Ported Z-80 FIG-Forth to the ZMob parallel processor. Xerox workstations, Vax and Sun Unix installation and system administration, networking, systems programming, MILNET contact, ARPANET liaison, X10 and NeWS window system maintenance, international mailing list administration (NeWS-makers).
Promoted to the Heterogeneous Systems Lab, to research window systems and user interfaces for the late Mark Weiser. Designed, implemented, and evaluated pie menus, as an extension to the X10 "uwm" window manager. Integrated Mitch Bradley's 68000 Sun Forth with the pie menu "uwm" window manager.
Worked with Jack Callahan, Ben Shneiderman and Mark Weiser, to implement and carry out a human factors experiment comparing pie menus and linear menus. Integrated the X10 "uwm" window manager with Mitch Bradley's 68000 Sun Forth, and programmed it to carry out the experiment and record the results. The experiment showed that pie menus were faster and more reliable than linear menus.
(Public Company; 5001-10,000 employees; SUNW; Computer Hardware industry)
June 1987 — August 1987 (3 months)
Worked as a summer intern for Forth Guru Mitch Bradley (the developer of the OpenFirmware Forth boot ROMs used by the OLPC, Mac, Sun, etc).
Extended the CADroid schematic board design CAD system with CForth, and implemented a higher level, user friendly, "programming by demonstration" scripting interface. Integrated a Forth system written in C into the CADroid code, exposed the application's functions to Forth, and designed and implemented a command processor in Forth that executes, records and replays CADroid commands.
Added higher level control statements, loops, conditionals, variables, expressions, macros, argument prompting, and a mouse interface. Supported user friendly syntax, helpful prompting for arguments, macro programming by demonstration, and interactive loops and conditionals.
BS , Computer Science , 1984 — 1990
user interface design and architecture, programming languages, visual programming, scripting and software integration, distributed computing, cellular automata, computer game design.
ACM, IEEE, Bill Jellavich Fan Club, OpenLaszlo Fan Club, OLPC Fan Club, Bandykin, Waag Society, EFF
Member of the core team that developed the critically acclaimed, top selling computer game of all time: The Sims.
Awarded Game of the Year 2000, Outstanding Achievement in Game Design, Outstanding Achievement in Game Play Engineering, by Academy of Interactive Arts and Sciences, and other awards.
The Sims franchise has sold more than 58 million units worldwide.
Designed and developed multi player SimCity user interface, awarded product of the year 1993 by Unix World.