26 Alton Av.
Toronto, Ont.
Canada M4L 2M2
(416) 465-9848
mark@pobox.com
One full-time software engineering contract, and occasional part-time ones.
I am looking for contract software design and development work.
Bachelor of Science, Specialist in Computer Science.
Other courses in physics, mathematics, chemistry, biology, and astronomy.
University of Toronto, 1974-1978.
C++ (10 yrs), Java (4 yrs), Object Pascal; XML, HTML; Perl, Tcl; C, Pascal; HyperTalk, SuperTalk; PostScript; TeX; HyperScript; FORTRAN; BASIC; WEB; Macro Assembler; APL; PL/I; SNOBOL IV.
MacOS v3 to v8.5; UNIX, including IRIX, HP/UX, A/UX, ESIX, SCO, and Eunice; VAX/VMS; Windows 95, PC-DOS; UCSD Pascal; RSX-11M; OS-370.
Macintosh family; SGI Indy, HP 9000, SUN 3, PDP-11; IBM PC and clones; VAX family; 6800, 6809, 680x0; 8086; RCA 1802; PASCAL microEngine; DECsystem-10; IBM 370.
Chip-level experience with Motorola 6800-family processors, peripherals, and systems, including hardware and firmware design and debugging.
Codewarrior, Macintosh MPW, and Symantec C; Roaster; Rogue Wave Tools.h++ class library; make and SCCS; Rational Rose; HyperCard.
Object-oriented analysis, design, and programming; Booch method, UML; structured code.
Started developing an application for compositing graphic images. This involved creating the GUI and the API for the core graphics routines. The core was being created by another programmer. Project was cancelled in favour of an all-platform Java implementation being done by a third programmer.
Developed an application to search for images on the Web, display thumbnails, and download selected full-size images. It is called Random Eye image grabber, and is available from http://www.randomeye.com. Presently finishing version 1.2. Wrote the C++ Macintosh application and related Photoshop, Illustrator, Freehand, and DreamWeaver plug-ins, and completely rewrote the Java servlet which the application works with. Both the application and the servlet employ XML for internal data and for data interchange.
C++ on Macintosh, using Codewarrior and PowerPlant.
Taking over existing code for immediate maintenance and later redesign and replacement. PAGE Systems software covers most aspects of Yellow Pages directory production. My area of responsibility includes Macintosh clients of Unix hosts, which typeset listings, including graphics, and delivers them for printing. This also includes the proprietary markup language which creates the graphical layout of ads from textual data.
Current main focus is a dongle-based license-enforcement system, which includes the API and the library behind it, the dongle programmer, implementaion in applications (including creation of encrypted PostScript), and some training of our personnel. Created class-based version of the basic dongle library, to allow more flexible and efficient use. Designed a dongle-independent API to allow creation of a security library that works on any platform with any dongle that has certain minimum capabilities.
Working in C++ with Metrowerks CodeWarrior.
Research and development for a display engine to present an interactive three-dimensional world built from high-quality graphics, for use in game development. This has involved system design and implementation, and some supervision of an intermediate programmer. We investigated various approaches, including QuickTime VR, QuickDraw 3D, and direct coding in C++ or Java. Development was started in C++, but I began experimenting with Java in April '96, and eventually switched the project to it, with small amounts of C code.
Diverse programming and webmastering tasks, such as CGI scripting, database design, and software installers. Whatever skills are needed that we don't have in-house, I learn.
General consulting on programming issues and techniques for other programmers and designers in the company. I am involved in decision-making processes and planning about the technical feasibility of project concepts. I supervise four other programmers.
System analysis and design for Airs, a distributed information retrieval system specialized for fast searches on very large databases with very large text records. The server runs under UNIX on various platforms, and clients can run on any machine which can contact a server.
System analysis and design for AirSource, a source-code version control and archiving system which uses Airs for data storage.
Responsibilities included:
Worked in C and C++, under HP/UX, A/UX, ESIX, and SCO UNIX. Used Booch Method for object-oriented analysis and design, and IEEE software engineering standards.
Installed a WEB site, using HTML and Tcl cgi scripts for promotional and documentation materials, and to provide live product demonstrations.
Porting a Windows application to Macintosh. C, C++, assembler, under MPW, for PowerMac and 68K Mac.
Updating and maintaining a Macintosh program for specialized colour separations. Installing a specialized charge-per-use scheme, with SoftCop protection. Working in Symantic C v7.
Hacker-testing software copy protection, and general consulting with their Macintosh developer. Working with MacNosy and The Debugger.
Ported (from Windows), corrected, and completed Macintosh software for the CD-ROM version of "The Canadian Encyclopedia", working with one intermediate programmer.
User interface and system design for 3-D modeling, animation, and video software. Produced low-level printing code, and integrated it with screen graphics, so that any code which drew on the screen could also print without change, on any printer. Worked on Macintosh, using C++ under MPW. First product, Alias Sketch!, released 28 August 1991.
Responsibilities included user requirements specification, system analysis, tool design and integration, participation in design and code reviews, consulting for other developers.
Co-developed factoryTop front-end to the PROMIS manufacturing control system. Member of the Hypatia hypertext prototype team. Designed an inter-process communication scheme.
Responsibilities included software design and maintenance, office automation, and handling of technical inquiries.
Co-developed MacTeX typesetting system for the Macintosh series of computers. Author of PageOne book production system.
Computer systems specialist writing and maintaining software and systems on a wide variety of machines. Duties also included user education.
Co-developed the CHARTS seismic rock-testing system for Atomic Energy of Canada, Limited. The unit was designed for real-time remote data capture and analysis at geophysical field sites.
Designed and implemented many geophysics experiment controllers and data collectors. Wrote and maintained a series of tape format translators, device drivers, and system utilities. Maintained graphics (CALCOMP and Unified Graphics) utilities, and TeX processor.