Roger M. Wilcox
*******@**.******.***********: 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.
PROFESSIONAL EXPERIENCE
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.
SKILLS AND ACCOMPLISHMENTS
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:
http://www.stellar-database.com, 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.
EDUCATION
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.