Roger M. Wilcox

location: California, south bay area (Silicon Valley)
Can commute as far north as Palo Alto; no relocation

Software application developer who has been writing software since 1979 and MS Windows software in particular since 1986.

An innovative, meticulous software engineer who specializes in the Win32 API (Windows 95/98/ME, and NT/2000/XP), MFC and ATL/WTL under Visual C++, COM/OLE/ActiveX, and multithreading; who has developed with the Windows CE toolkit and wxWindows/wxWidgets; who occasionally works with the Windows multimedia interface, C#, Java, and JavaScript; and who has ported Macintosh software to Windows in the distant past.


Velocity 11 / Agilent Automation Solutions – November 2006 to present

Software Engineer: On Windows XP and Vista, developed and maintained a complex dynamic scheduling application for robotic drug-discovery systems under Visual C++ 8.0 and 9.0 on Visual Studio .Net 2005 and 2008.  Also used the .NET Forms library in C# to build an editor which allowed end users to create their own dialog-like forms that interacted with the scheduler using JavaScript.

Microsoft (Mountain View offices) – July 2006 to September 2006

Contractor: On Windows XP, maintained a multi-process ATL-based IE toolbar utility under Visual C++ 8.0 on Visual Studio .Net 2005 which parsed HTML in a user-configurable manner.

Sony – June 2005 to June 2006

Contractor: On Windows 2000 and XP, used WTL and a proprietary JavaScript-like language under Visual C++ 7.1 on Visual Studio .Net 2003 and 2005 to develop a skinnable multimedia player designed to interface with proprietary portable audio devices and a proprietary virtual storefront.

AOL Mountain View/Netscape – May 2002 to May 2005
Contractor: On Windows 2000 and XP, used wxWindows [an object-oriented application framework similar to the Microsoft Foundation Class (MFC) libraries, but more portable; currently called wxWidgets] and GDI+ under Visual C++ 6.0 and 7.1 to enhance and maintain multithreaded software that sent HTML-based e-mail, displayed mail on Mozilla's XPCOM-based browser, and acted as a Simple MAPI server; this product shipped as AOL Communicator and at one point was being used by tens of thousands of users.  Also developed a complex product that used DirectShow and MCI.

FreeHand Systems, Inc. – July 2001 to May 2002
Senior Software Engineer: On Windows 2000 and Linux, used wxWindows under Visual C++ 6.0 and gnu C++ to develop and maintain the software for a complex music viewer which ran on both a PC and a dedicated tablet device.

Socket Communications, Inc. – March 2001 to July 2001
Contractor: On Windows 2000 and Windows CE 2.11 and 3.0, used the Microsoft Foundation Class libraries (MFC) and the Win32 API under Visual C++ 6.0 and embedded Visual C++ 3.0 to port a proprietary user interface for Bluetooth (a network protocol for short-range wireless networking) to the Handheld PC Pro/2000.  Also modifed a 3rd party's OBEX (Object Exchange) networking package so that it would use Socket Communications' proprietary Bluetooth protocol implementation.

Geocast Network Systems, Inc. – February 2000 to February 2001
Software Engineer: On Windows NT, Windows 2000, Windows 98, and Windows ME, used the Active Template Library (ATL, an object-oriented framework for COM development) under Visual C++ 6.0 to develop and maintain ActiveX Controls that communicated with proprietary hardware.  I used ATL and the Microsoft Foundation Class libraries to develop and maintain the container applications that displayed those ActiveX Controls, but the ActiveX Controls were designed to be flexible enough to function in an MS Internet Explorer webpage as well.

UpperCase, Inc. – February 1999 to January 2000
Contractor: On Windows NT and Windows CE 2.11, used the Microsoft Foundation Class libraries under Visual C++ 5.0 and 6.0 to develop and maintain the entire user-interface of a unique hand-held Windows CE device.  The data manipulated by the user interface were classes in an object-oriented persistent database.

Broadcast Management Plus – April 1998 to February 1999
Contractor: On Windows NT, Windows 95, and Windows 98, used the Microsoft Foundation Class libraries under Visual C++ 5.0 and 6.0 to develop and maintain a large ActiveX container application which provided multiple-spreadsheet-oriented sales management capabilities to TV stations.

WYSE Technology – February 1997 to March 1998
Contractor: On Citrix Winframe (Windows NT with multiuser features added), used the Microsoft Foundation Class libraries under Visual C++ 4.2 and 5.0 to develop a Windows-terminal configuration and administration tool.  Also ported a WinSock-using MFC app to a non-MFC non-Intel Network Computer (WinTerm thin client) which required new serial-interface programming.

NetFRAME Systems Inc. – September 1996 to February 1997
Contractor: On Windows NT 4.0 and Windows 95, used the Microsoft Foundation Class libraries under Visual C++ 4.2 to design and develop a multithreaded split-window server-recovery tool which used the new Windows 95-style "Win32 common controls" and popup context menus.  The tool uses TAPI to communicate with specialized hardware inside a downed server.

Cloudrunner, Inc. – January 1995 to June 1997
Part-time contractor: Developed a compact, powerful, easy-to-maintain hypertext/graphic authoring environment portable between the Mac OS, Windows 3.1, and Win32, which used c-tree™ as a database back-end.  Used this to port the Macintosh version of Origami - The Secret Life of Paper (a high-quality multimedia title) to Windows.  Published by Casady & Greene.

Siemens/Rolm, Inc. – September 1995 to September 1996
Contractor: Using the Microsoft Foundation Class libraries version 2.5 under Visual C++, and the Raima data manager, developed modeless dialog forms with spreadsheet controls which generated commands for telephone switch configuration.

Cisco Systems, Inc. – December 1994 to September 1995
Contractor: Using the Microsoft Foundation Class libraries (version 2.5) under Visual C++, developed tabbed dialogs with spreadsheet controls which generated commands for network router configuration.

NEC Systems Laboratory, Inc. – June to December 1994
Contractor: Using the Microsoft Foundation Class libraries (versions 2.0 and 2.5) under Visual C++, designed and developed a time-line based multimedia authoring tool similar to Adobe Premiere.  Ours was the only piece of the package to be ready on time.

Computer Curriculum Corporation – March 1993 to May 1994
Applications Programmer II: Designed and developed complex visual components, QuickTime interface, and decision engine in a proprietary cross-platform (Mac and Windows) C++ class library for those users with some of the toughest user interface requirements of all: young math students.  Time constraints and attention to detail were crucial.

Dynamix, Incorporated – February 1992 to March 1993
Software Engineer: Developed and assisted in the design of a c-tree™ based resource manager, C++ framework, and class library for visual application creation in an otherwise primitive environment.  This was a complete final-product hypermedia authoring engine that cut product shell development time down to 1/3 of what was previously required.

Teradata Corporation – July 1989 to February 1992
Member of the Technical Staff: Rapid-prototyped, designed, developed, and tested software for a massively parallel relational database machine marketed to Fortune 100 companies.


Independent software projects

    Master's Thesis: MS Windows C++ application which simulates two similar microarchitectures.  Required designing the architectures from scratch, building a micro assembler, microprogramming, and benchmarking.
    Hexagonal Minesweeper: hexagonal version of the Windows Minesweeper game, moderately successful as shareware.
    The Internet Stellar Database: , a web server I still run out of my own home.  Required writing CGI programs that use ODBC SQL to retrieve data from a local MS Access database.

Programming languages

    C++, C, Java, C#, Smalltalk-80, Ada, Modula-2, Prolog, yacc, Forth, 80x86 assembly, 680x0 assembly, VAX assembly, Z-80 assembly, IBM-370 Assembler, makefiles, BASIC, JavaScript, VBScript, Lisp, FORTRAN, Pascal, PL/I, Simscript, Simula, COBOL, Embedded SQL, dBASE.

Operating systems and GUI environments

    Microsoft Windows 2.1-3.11 and 95/98/ME, Windows NT 3.1-4.0 and 2000/XP, Windows CE 2.11-3.0, OS/2 1.1-3.0, the Macintosh OS, several variants of Unix (with NFS) including Linux, SunView, the X window system, MS-DOS, VAX/VMS, VM/CMS, MVS/XA, NOS.

Development environments

    Microsoft Visual C++ 1.0-7.1, Borland C++ 1.0-5.0, MFC 1.0-6.0, OLE 2 under MFC 4.x, COM under ATL, Windows 2.1-3.11 API, Win32 API (Win32s, Windows 95/98/ME, and NT/2000), wxWindows, WinSock; I've also had occasion to program in WinG, Windows multimedia (including AVI), Quicktime for Windows 2.0 and 2.1, Raima Database Manager, Windows DDE, ObjectWindows 1.0-2.0, the Mac Toolbox, MPW (with SADE and SourceBug), Xlib, Xt (the X window system toolkit), InterViews, QuickTime for Macintosh, CASE tools, raw MS-DOS, Unix kernel and shells, VMS DCL, VM/CMS, MVS/XA TSO and JCL.

Honors and Awards

    On CSUN team that won 4th place, ACM regional scholastic programming contest, 1990, ahead of UCLA and Caltech.  My contributions to the team's effort were decisive.


University of California at Santa Cruz Extension

Course in OLE programming under MFC, January 1996.

California State University at Northridge

M.S. Computer Science, December 1991

Student member of the ACM and Computer Science Association.
Courses included: Object-oriented programming, simulation languages, programming window-based software (concentrated on the X window system), operating systems design, current issues in computer architecture, software engineering, artificial intelligence, expert systems, combinatorics.

University of California at Los Angeles

B.A. Music Composition, Cum Laude, June 1987

Courses included: Chemistry, physics, differential equations, MIDI synthesizers, and a host of music theory material.

References furnished upon request.

Go back to Roger M. Wilcox's home page.