Superior Software Superior Software
Contact:
Rick Lahrson
rick at supsof.com
Phone: 503-640-6622
United We Stand

Home You're already here Brief Résumé Sample Programs

Résumé of Rick Lahrson, Consultant:

Rick has Retired! (But if your project is interesting enough, he could possibly be persuaded to offer his knowledge and experience.)

Synopsis:
I create software — tools of all kinds: optimizing compilers (with emphasis on smart back ends), run-time systems, device drivers, operating systems, graphics systems, whatever is wanted or needed. I also have a strong background in computer hardware and electronics in general (analog and digital). I have extensive experience in (and am very proficient at) debugging of both hardware and software.
Statement:
This is a sampling of a great deal of professional programming experience. Almost every item listed involves the complete development of a product. I have extensive knowledge in computer architectures, operating systems, language translators and interpreters, run-time systems, debuggers, device drivers, graphics, audio, video, and GUIs -- from the bit-fiddling level to the highest levels of abstraction, including object oriented design and coding.
Summary:
15 years experience creating optimizing compilers for: C, C++, Pascal, and Modula 2; on 680x0, VAX, 80x86, SPARC, 80C196 and several other embedded processors.
Expertise in creating and testing development tools.
3 years experience writing run-time libraries and debuggers.
Expertise in creating and testing development tools.
8 years experience working in mainframe operating systems and device drivers.
Expertise in knowing how operating systems and device drivers work.
5 years experience writing graphics systems.
Expertise in computer graphics.
7 years experience writing utility programs.
Expertise in problem solving with computers.
2 years experience writing application systems.
Expertise in creating whatever is wanted and needed.
8 years experience developing QA Software.
Expertise in testing other people's software modules.
8 years experience writing embedded software.
Expertise in writing low-level software, hardware-software interfacing, and cross-platform development.
9 years experience developing games and toys.
Expertise in design and development of high-speed algorithms, and creating supporting tools (such as program generators and data generators).
Tool Kit:
Languages:
C, C++, Pascal, many Assemblers, Perl, UNIX shells, FORTRAN, ALGOL, Modula 2, PL/I, BASIC, HTML, RTF, DCL, JCL, more. Object oriented design and coding.
GUI's and Interfaces:
COM, MFC, SDK, DirectX, Direct3D Mobile, OpenGL ES (1 and 2), GDI, GDL, Intuition.
Operating Systems:
Microsoft Windows, Windows CE, Linux, UNIX, AmigaDOS, VMS, MS DOS, OS/360, DOS/360.
Mainframes:
IBM S/360 series, Burroughs B5500.
Microprocessors:
80x86, 680x0, VAX, SPARC, PDP-11, 80C196, XSCALE, and many other embedded processors.
Extensive knowledge in:
Computer architectures, operating systems, language translators and interpreters, run-time systems, debuggers, graphics, audio, video.
Other knowledge:
Hardware development, computer architecture design, analog and digital electronics, radar, aviation, music, typesetting, cryptography.
Abilities:
Problem definition and solving, communication, working on or leading a team, learning new systems quickly, and producing efficient, bug-free software under deadline.
Software Development (categorical) :
Optimizing Compilers:
Wrote compilers for C, C++, and Pascal, targeting the 80x86, 680x0, VAX, SPARC, 80C196 and a number of other embedded processors. I do it all, but am especially good at creating back-end optimizations.
Application Systems:
Wrote a small business billing system, a phototypesetter simulator/previewer/word processor with automatic hyphenation (in assembly language on an Ontel 64K 8085 embedded system), several lumber brokerage packages (for a Philips P350), a county government cash control system (for a CADO), and a provisioning documentation system.
Architecture Design:
Advised Intel and others on architectural features for new microprocessor designs, to make them more efficient, especially for programming in high level languages.
Graphics:
Created the original, optimized PLOT-10 graphics package and drivers for Tektronix graphic terminals, and wrote several graphic demonstration programs for them. Around 1972, I designed and proposed a comprehensive CAD package for Tektronix graphic terminals, but the project was not funded ("no market for it", they said!). Also, see below under QA software and Games.
Music:
Wrote a MIDI synthesizer for the Amiga.
Run-time Libraries:
Wrote libraries for the above compilers, and DLLs for Windows, partly in high level languages and partly in assembly languages.
Utilities:
Wrote a screen editor, a universal protocol communications driver package, on-the-fly command language filters, and many subsystems and tools for clients and for other programmers. Wrote a Direct3D Mobile "spy" program to monitor the D3DM API.
Debuggers and Simulators:
Wrote a full-featured symbolic debugger, adapted others to new platforms, and wrote several interactive simulators.
Operating Systems:
Debugged and enhanced several mainframe operating systems, for IBM and Tektronix. In the early 70's, wrote a multitasking, time-sharing, file-sharing "sub-operating-system" for demonstrating Tektronix' graphic terminals in the field.
Embedded Software:
Wrote a multiple-servo controller with delayed closed-loop feedback, and a simulator for it on Windows using MFC. Also see QA Software, below.
Quality Assurance Software:
Wrote many "white box" test programs, for testing cryptographic and COM APIs. Wrote many 2D and 3D test programs for testing embedded video, audio, graphics and display drivers. Wrote several 2D and 3D testing API libraries and several linux driver modules.
Games and Toys:
Wrote a multitasking, multi-game Pool and Billiards simulation, extensible by simply installing additional game module DLLs (and wrote the custom math and graphics routines for it), a mastermind game that plays both sides, and several other games. Wrote several screen savers for the Amiga, for Microsoft Windows using GDI and Direct3D, and for several embedded systems using Direct3D Mobile, GDL, and OpenGL ES.
Patent:
US Patent 3,585,601:
The first US patent ever knowingly granted by the US Patent Office for software, ca 1971.
Experience (chronological) :
Consultant
Superior Software Services, Inc., Hillsboro, Oregon, 2001-present
Developing video games and graphical toys (ongoing).
Environment: Windows 2000, Visual Studio, VSS, C++, MFC, SDK, DirectX, GDI, COM, Win32, Corel Draw, Corel PhotoPaint.
Intel Corp., Hillsboro, Oregon, 2010-2011
Wrote many 2D and 3D stereoscopic test and simulation programs, utilities, and 3D testing API libraries for validating embedded (digital set-top box) video, graphics and display drivers.
Environment: Linux, gcc, vi, OpenGL ES 1.1 and 2.0, HSD, Subversion.
Intel Corp., Hillsboro, Oregon, 2007-2009
Wrote many 2D and 3D test and simulation programs, utilities, a 3D testing API library and several linux driver modules, for validating embedded (digital set-top box) video, audio, graphics and display drivers.
Environment: Windows XP, Linux, Visual Studio, C, C++, OpenGL ES 1.1 and 2.0, HSD, gdl3, Subversion, gdb, insight.
Intel Corp., Hillsboro, Oregon, 2006-2007
Wrote many 2D and 3D test and simulation programs, utilities, and a 3D testing API library for validating embedded (digital set-top box) video, graphics and display drivers.
Environment: Windows XP, Linux, Visual Studio, C, C++, GDL, Tracker, Subversion, gdb, insight.
Intel Corp., Hillsboro, Oregon, 2005-2006
Wrote a Direct3D Mobile "spy" utility (a COM DLL) to monitor D3DM API activity. Wrote several 2D and 3D test programs, utilities, and a testing API library for validating several embedded (digital set-top box) video, graphics and display drivers.
Environment: Windows 2000, Linux, Platform Builder, Visual Studio, Embedded Visual Studio, Visual Source Safe, C, C++, Windows CE, Direct3D Mobile, COM, Win32, GDI, GDL, Tracker, Subversion, gdb, insight.
Intel Corp., Hillsboro, Oregon, 1998-2001
Wrote several test programs for a complex COM client/server application.
Environment: Windows 2000, Visual Studio, VSS, C++, SDK, COM, Win32, Tracker, proprietary tools.

Wrote perl scripts to assist in compiler development, including automatic synchronization (via e-mail) of multiple CVS source control archives on widely separated Linux systems.
Environment: Linux, Perl, CVS, sendmail.

Wrote a set of test programs for a library of cryptographic services.
Environment: Visual Studio, VSS, C++, SDK, COM, Win32, Tracker.

Assessed hundreds of products for year 2000 capability.
Environment: Windows 2000, Tracker, archives, proprietary tools.
Tasking Software, Amersfoort, Netherlands, 1994-1998
Wrote and enhanced extended ANSI C compilers, assemblers, debuggers, simulators and libraries for various manufacturers' embedded microprocessors.
Environment: Linux, gcc, emacs, Windows NT, Visual Studio, proprietary tools.
Intel Corp., Hillsboro, Oregon, 1991-1993
Debugged and modified Intel '196 C compiler and libraries to accommodate new architecture.
Environment: Xenix, C, Omega, proprietary tools.
Oregon Software, Portland, Oregon, 1982-1990
Created and modified numerous compilers and run-time library components.
Environment: VAX/VMS, Pascal.
Crawford Service Company, Portland, Oregon, 1980-1981
Created phototypesetter simulator/previewer/word processor with automatic hyphenation, and a native symbolic debugger for it.
Environment: VAX/VMS, Ontel smart terminals, 8080 Cross-assembler and linker.

Designed, built, and installed video enhancement boards for the Ontel smart terminals.
Environment: my own hardware development lab.

Wrote several other applications.
Environment: VAX, PDP-11, VMS, RSTS, C, DEC Basic+.
Various small companies, Portland Oregon area, 1975-1979
Created many application programs on many different systems.
Environment: VAX, PDP-11, Philips P-350, CADO, RSTS, RT-11, Pascal, C, PDP-11 Assembly, P-350 Assembly, CADOL.
Senior System Programmer (Senior Software Engineer)
Tektronix, Inc., Beaverton, Oregon, 1969-1974
Created PLOT-10 graphics system and many software tools and O/S related extensions and applications, including several transient modules (DLLs, though that term hadn't been coined yet). Wrote a universal protocol data collection program. Modified TSO and TCAM to accommodate special protocols. Wrote several terminal demonstration programs/games, and a dispatching program (a mini-OS) to run them on multiple terminals as one MVT task. Advised hardware engineers on design of terminal features. Modified IBM telecommunications hardware to accommodate the full ASCII character set.
Environment: S/370, MVT, 360 Assembly (BAL), JCL, TSO, TCAM, IBM and Tektronix hardware.
Kaiser Aluminum, Oakland, California, 1967-1968
Created two versions (IBM S/360 and Burroughs B5500) of a time sharing system (patented).
Environment: S/360, 360 Assembly (BAL), B-5500, Algol, Espol.
Customer Engineer and Field Engineer
IBM Corporation, Oakland, California, 1965-1966
Maintained and repaired both S/360 hardware and software in the field, as well as all those fine punched-card handling machines.
TechRep
Philco Corp., Anchorage, Alaska, 1965
Taught radar and computers to Air Force personnel.
Radar Maintenance Technician
US Air Force, 1960-1964
Maintained and repaired long range ground radar and associated systems.
Education:
Engineering, math, and other courses from Merritt College and University of Portland.
Technical courses from Microsoft, IBM, Philco, Burroughs, Tektronix, USAF.
Many years of independent research and practice.
To Contact:

rick at supsof.com

Superior Software
2459 SE T.V.Highway, Suite 123
Hillsboro, OR 97123

Phone: 503-640-6622

Get this Résumé in MS Word format,
or in MS Word format in a zip file
or as a self-extracting zip (.exe) file.

See some samples of my work
Brief Résumé
Return to Superior Software home page

Last updated 12-7-2011.