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.)
- 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.
- 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: (obsolete)
- 15 years experience creating optimizing compilers for: C, C++, Pascal, and
Modula 2; on 680x0, VAX, 80x86, SPARC, 80C196 and several other embedded
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
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
- 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).
- 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
- 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.
- 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.
- 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
- 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.
US Patent 3,585,601:
- The first US patent ever knowingly granted by the
US Patent Office for software, ca 1971.
- Experience (chronological)
Superior Software Services, Inc., Hillsboro, Oregon, 2001-present
- Developing video games, screen savers, and graphical toys (ongoing).
Environment: Windows 2000/XP/7, 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
- Intel Corp., Hillsboro, Oregon, 1991-1993
- Debugged and modified Intel '196 C compiler and libraries to accommodate
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
Designed, built, and installed video enhancement boards for the Ontel smart
Environment: my own hardware development lab.
Wrote several other applications.
Environment: VAX, PDP-11, VMS, RSTS, C, DEC Basic+.
- Marion County Treasurer's Office, Salem, Oregon, 1979
- Created a cash control system for a CADO computer. Augmented the
8080-based firmware to implement 5-byte integers to accommodate the
county's large amounts of money, accurate to the penny (a mere two
billion pennies (in CADO's "native" 4 bytes) is not enough).
Environment: CADO, CADOL (language), hexadecimal 8080 machine
code (yeah, by hand).
- Various small companies, Portland Oregon area, 1976-1979
- Created many application programs on many different systems.
Environment: VAX, PDP-11, RSTS, RT-11, Pascal, C, PDP-11 Assembly.
- Sunrise Forest Products (and others), Portland, Oregon, 1975
- Created a sophisticated vertical accounting and reporting system for a
lumber brokerage on a Philips P-350, employing magnetic-striped ledger cards.
Developed an overlay mechanism to fit all its functionality into its small
memory space, loaded as needed from an external memory device. Also fixed a
bug in their standard continuation-card handling routines.
Environment: Philips P-350, P-350 Assembly.
- 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 several terminal demonstration
programs/games, and a dispatching program (a mini-OS) to time-share them on
multiple terminals as one MVT task. Advised hardware engineers on design of
future terminal features. Modified IBM telecommunications hardware to
accommodate the full ASCII character set needed by the graphic terminals.
Wrote the manuals for all the above (even the IBM hardware modifications).
Environment: S/370, MVT, 360 Assembly, IBM and Tektronix hardware.
Wrote a universal protocol data collection program. Modified IBM's TSO and
TCAM to accommodate special protocols.
Environment: S/370, MVT, 360 Assembly, JCL, TSO, TCAM.
- Kaiser Aluminum, Oakland, California, 1967-1968
- Created two versions (IBM S/360 and Burroughs B5500) of a time sharing
Environment: S/360, 360 Assembly, B5500, 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.
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.
- Engineering, math, and other courses from Merritt College and University
Technical courses from Microsoft, IBM, Philco, Burroughs, Tektronix, USAF.
Many years of independent research and practice.
- To Contact:
2459 SE T.V.Highway, Suite 123
Hillsboro, OR 97123
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
Return to Superior Software home page
Last updated 12-7-2011.