Jay Freeman’s Resume,  current 28 April 2021

                         JAY REYNOLDS FREEMAN



                Internet: Jay_Reynolds_Freeman@mac.com

                    http://JayReynoldsFreeman.com


                         JAY REYNOLDS FREEMAN



                Internet: Jay_Reynolds_Freeman@mac.com

                    http://JayReynoldsFreeman.com


Summary:

=======

    30 years' experience in software, lately in embedded control software

    for SpaceX spacecraft, but mostly in research and development of

    low-level software for close-coupled massively parallel systems --

    up to 250 000 cores.  I have particular expertise in interprocessor

    communication and message routing in close-coupled parallel systems.

    Experienced C++ and Lisp programmer.  I am pretty much retired but

    if anyone has need of my skills, feel free to talk to me.


    Detailed resume follows.


Education:

=========

    B.S. (Physics) June 1968: California Institute of Technology, Pasadena,

         CA, with honor.

    M.A. (Physics) June 1969: University of California, Berkeley, CA.

    Ph.D. (Physics) June 1979: University of California, Berkeley, CA.

    B.S. (Marine Biology), December, 1996: San Jose State University,

         San Jose, CA.

    B.A. (Physical Anthropology), May, 2000: San Jose State University,

         San Jose, CA.

    Diverse classes at San Jose State University since 2000, notably in

         computer science, also in middle eastern studies, anthropology,

         and other subjects.


Fellowships, Awards, Honors:

===========================

    Presidential Scholar, 1964.

    National Merit Scholar, 1964-1968.

    Tau Beta Pi member, elected 1967.

    National Science Foundation Graduate Fellowship, 1968-1970, 1972-1973.

    NASA Group Achievement Award, 1976.


Professional Societies and Activities:

=====================================

    American Astronomical Society.

    American Geophysical Union.

    Association for Computing Machinery.

    IEEE Computer Society.


Patents Granted:

===============


    U. S. Patent 7,224,689, May 29, 2007, "Method and apparatus for

    routing of messages in a cycle-based system". (sole inventor)


    U. S. Patent 7,478,119, January 13, 2009, "System and method for

    transposing memory patterns within the physical memory space". (one

    of five inventors)


    U. S. Patent 7,516,361, April 7, 2009, "Method for automatic

    checkpoint of system and application software". (one of four

    inventors)


    U. S. Patent 7,752,417, July 6, 2010, "Dynamic selection of memory

    virtualization technique". (one of five inventors)


    U. S. Patent 7,797,329, September 14, 2010, "Method and system for

    enabling a synchronization-free and parallel commit phase". (one of

    six inventors)


    U. S. Patent 7,822,941, October 26, 2010, "Function-based

    virtual-to-physical address translation". (one of five inventors)


    U. S. Patent 7,823,141, October 26, 2010, "Using a concurrent partial

    inspector loop with speculative parallelism". (one of six inventors)


    U. S. Patent 7,827,381, November 2, 2010, "Hybrid techniques for

    memory virtualization in a computer system". (one of five inventors)


    U. S. Patent 7,917,710, March 29, 2011, "Memory protection in a

    computer system employing memory virtualization". (one of five

    inventors)


Published Patent Applications:

=============================


    No. 20070250604, October 25, 2007, "Proximity-based memory allocation

    in a distributed memory system". (one of several inventors)


    No. 20080005526, January 3, 2008, "Local contiguous memory space

    reservation and memory holes elimination". (one of several

    inventors)


    No. 20080034371, February 7. 2008, "Using police threads to detect

    dependence violations to reduce speculative parallelization overhead".

    (one of several inventors)



References:

==========

    On request.



SUMMARY OF EMPLOYMENT AND PROFESSIONAL EXPERIENCE through December, 2018:

========================================================================


Most Recent Employment:

======================


    August, 2013 -- December, 2018: SpaceX (Space Exploration Technologies)

engineer in flight software group. Principle responsibility was design,

modification, implementation and software testing of over 100 algorithms

for guidance, navigation and control (GNC) of SpaceX vehicles, including

Falcon 9, Falcon Heavy and Dragon.


Activity as Entrepreneur:

========================


    !987 -- 2012: Created and maintain several implementations of the

Scheme programming language -- Wraith Scheme (open source, shareware,

for the Apple Macintosh / MacOS), and Pixie Scheme III (open source for the

Apple iPad / iOS).  Both are enhanced "R5" Schemes.  Wraith Scheme features

parallel processing.


Additional Employment:

=====================


    September, 2008 -- December, 2009: Consultant to YOTERRA INC.,

a software startup developing proprietary Internet cataloging and

marketing software.  Developed and tested algorithms, wrote several

thousand lines of Java.


    15 September, 1997 -- 28 September, 2006: Staff Engineer, SUN

MICROSYSTEMS, San Francisco Bay region, in Sun's research laboratory:


        2004 -- 2006: Design and development of software and

    architectural concepts for an advanced highly-parallel

    high-performance computer (DARPA-funded High-Productivity Computer

    System development project, Phase II).  Studied thread allocation

    mechanisms, memory architecture, and other proprietary topics.


        1999 -- 2003: Design, implement, test, debug, maintain and

    document the software system for static (compile-time) routing of

    messages in a proprietary multiple-instruction, multiple-data

    parallel-processing system encompassing up to 56000 individual

    processors.  Developed significant new algorithms (US Patent

    7,224,689) for this work.  Software comprised about 35000 lines

    of C++.


        2003: Design and implement new instruction-scheduling software

    for the project mentioned in the paragraph above.  This software was

    a redesign and reimplementation of the system originally developed,

    slanted toward extendibility and maintainability.


        1998 -- 1999: Developed a compiler component for a different

    proprietary parallel processing system (multiple-instruction,

    multiple-data, with up to about a dozen processors), which

    disassembled an instruction stream for one such processor into

    instruction streams for a small number of the same kind of

    processor.


    November, 1994 -- August, 1997: Member Technical Staff, FILOLI

INFORMATION SYSTEMS CO., Palo Alto, CA.  Analysis, architecture, and

programming, for a large software system for insurance underwriting and

policy issuance (NeXT tools, Objective C, Windows for Workgroups,

Microsoft Visual C++, Microsoft Object Database Connectivity).  Duties

included writing complete, stand-alone applications using both NeXT

developer tools and Visual C++ development environment.


    July, 1988 -- November, 1994: Senior Software Engineer, MASPAR

COMPUTER CORPORATION, Sunnyvale, CA.  Wrote microcode tools and

microcode for single-instruction, multiple-data, parallel-processing

computers: Wrote emulator (in C) for the parallel elements, and two

microcode assemblers (in C++, lex, yacc -- 14000 lines total) for the

first two generations of the machine.  Prepared emulator test vectors.

Designed, wrote, and maintained about half the microcode in two machine

generations (40000 lines total).  Designed, wrote, and maintained

diagnostic programs for many hardware elements.  Designed, wrote, and

maintained verification programs for diverse microcode, including IEEE

floating-point and I/O routines.


    November, 1984 -- June, 1988: Member Technical Staff, SCHLUMBERGER

PALO ALTO RESEARCH, Palo Alto, CA.  Developed high-level algorithms and

software architecture for a virtual reality system with binocular vision

and head-tracking.  Encoded 80% of a Symbolics 3600 implementation

(Common Lisp -- 4000 lines), ported to Lisp and C on a Sun 3, continued

development.  My part (90%) contained 16000 lines of Lisp and C.

    Wrote system software for an in-house parallel-processing system

with an array of proprietary single-instruction multiple-data

single-chip microprocessors, featuring five-stage pipelines, bit-serial

data paths, and substantial on-chip parallelism:  Designed hybrid

microassembly/assembly language for the processor, implemented an

optimizing cross-assembler.  Designed a high-level language -- basically

a functional subset of Lisp -- and implemented an optimizing

cross-compiler.  Designed and implemented runtime interface between the

hardware and a host Symbolics 3600.  This software comprised 30000 lines

of Lisp and 15000 lines of the languages I had created.


    December, 1981 -- November, 1984 (half time from February, 1984):

Research Scientist, DALMO VICTOR, Belmont, CA.  Substantial software and

minor hardware development, for a parallel-processing system for

real-time video data compression and transmission: Refined existing

algorithms and created new ones for digitally processing video data.

Encoded them in high-level languages (Ratfor, Lisp) for test and

optimization.  Assisted with recoding in assembly language on

specialized hardware.  Evaluated performance.  Sought improvements and

advanced features.  Developed top-level architecture for an advanced

parallel-processing computer system based on commercial microprocessors.


    February -- November, 1984 (half time): Mathematician and Computer

Scientist, ALGOS PROJECT (funded by San Jose State University

Foundation), Los Altos, CA.  Assisted with formal basis and

implementation of a programming language based on category theory.


    July, 1979 -- November, 1981: Consulting Physicist to U. S.

Department of Energy, as subcontractor/employee of Maxima Corporation,

Silver Spring, MD, and of Evaluation Research Corporation, Vienna, VA.

Compared scientific, technical and economic aspects of such unusual

energy-production technologies as coal gasification, coal liquefaction,

oil-shale extraction, and thermal and photovoltaic solar energy.  Sought

information (library and interview) and reduced to common basis.


    April -- June, 1979: Postdoctoral Research in experimental space

astronomy, Space Sciences Laboratory, U. C., Berkeley, CA.  Evaluated

and tested microchannel-plate extreme-ultraviolet photon detectors, for

extreme-ultraviolet astronomy satellite.  Operated high-vacuum systems

(1 nTorr), high-voltage gas-discharge extreme-ultraviolet light sources,

laboratory monochrometers, common laboratory electronic equipment.

Mounted microchannel plates and operated support electronics for them.


    October, 1973 -- March, 1979: Ph.D. thesis research at Space

Sciences Laboratory, U. C., Berkeley, CA (including work at NASA Kennedy

and Johnson Space Centers, and at White Sands Missile Range).  Employed

by group developing extreme-ultraviolet astronomical photometers for

sounding rockets and Apollo spacecraft (1975 Apollo-Soyuz Test Project),

to study the nearby interstellar medium.  Instrument design and

development.  Detailed design and construction of mechanical and

electronic components.  Operated vacuum systems, extreme-ultraviolet

radiation sources and other equipment.  Prepared detailed procedures,

for use by NASA, describing handling, spacecraft installation and

checkout of scientific instruments.  Assisted and supervised personnel

carrying out these procedures.  Prepared instrument flight plan.

Assisted with pre-launch and flight operations.

    Developed interactive and non-interactive computer programs (Fortran)

to read data tapes, reduce data, and compare with model calculations.

Prepared articles for publication in scientific journals.


    October, 1970 -- September, 1972: Laboratory Helper in microbiology

research, Molecular Biology and Virus Laboratory, U. C., Berkeley, CA.

(Fulfilled U. S. Selective Service obligation as conscientious

objector.)  Employed by research group developing apparatus to culture

and identify bacteria automatically, on an enormous scale.  Constructed

matched-hole riveted aluminum structures, installed stainless-steel

plumbing, and accomplished other metal-shop and wood-shop tasks.


    June -- July, 1970: Physics Teaching Assistant, U. C., Berkeley, CA.


    Summers, 1967 and 1968: Laboratory Helper, Cosmic Ray Laboratory,

Physics Department, California Institute of Technology, Pasadena, CA.

Performed miscellaneous operations and data reduction involving an array

of large Wilson-type cloud chambers.


    Summer, 1966: Laboratory Helper, University of Vermont, Burlington,

VT.  Collected and studied Lake Champlain water samples, for water

resources inventory.



SPECIAL  TECHNICAL  SKILLS:

==========================


Commercial Pilot:

================

    Hold FAA Commercial Pilot Certificate with single- and multi-engine

landplane ratings and instrument rating.  Former Certificated Flight

Instructor (Airplanes).  Total flight time as a pilot: 1,200 hours.


Computer Programming:

====================

    About thirty-five years' experience.

    Familiar with C++, C, Objective C, Common Lisp, Scheme, Java,

Zetalisp, Portable Common Loops, Symbolics Flavors, lex, yacc, Ratfor,

Fortran, and 8086 assembly language.  Some experience with Maclisp,

Pascal, Microsoft Visual C++, 68000 assembly language and 8080

assembly language.

    Systems used include Intel workstations with Linux, Macintosh

computers with MacOS X, Xcode, Sun workstations with Unix, Symbolics

3600 with Symbolics operating system, Vax with Unix, Intel workstations

running NextOS, Intel with Windows for Workgroups, DEC20 with TOPS20,

Apple Macintosh Finder (release 6.x) and Macintosh Programmer's

Workshop, Intel MDS86 with ISIS, personal computers with CP/M86 and

CP/M80, CDC 6400 with U. C. Berkeley version of SCOPE, and Apollo DM300

with Aegis.

    Experience includes embedded code controlling spacecraft, high-level

applications and operating-system development and modification, numerical

scientific computing in Fortran, and object-oriented symbolic programming

in Lisp, C++ and Objective C, at levels from high-level languages to

microcode.


Electronics:

===========

    Operation of common analog and digital laboratory equipment.

Assembly, test and maintenance of various analog and digital systems.

Hands-on experience with space-qualified electronics, channel-electron

multipliers and microchannel-plate arrays.  Built an Intel 8088 based

personal computer from a bare board. Build tube-type guitar amplifiers

as a hobby.


Mechanical Skills:

=================

    Familiar with common hand tools and hand-held power tools for both

wood and metal shop.  Experience with fixed non-precision power tools,

including drill press, power miter-box saw and band saw.  Use of

oxyacetylene torch for cutting.  Slight experience with metal lathe.

About six months plumbing experience, both with threaded pipe and with

tubing using Swagelok and AN fittings.  About six months experience with

small industrial-scale production of large aluminum structures by

matched-hole precision riveting.  Modest woodworking experience

appropriate to amateur lutherie.


Optical Work:

============

    Have made by hand, astronomical telescope mirrors to 40 cm (16 inch)

diameter, for use in home-made telescopes.


Vacuum Systems:

==============

    Familiar with plumbing and operation of diverse vacuum systems,

including mechanical and adsorption roughing pumps, oil-diffusion pumps,

VacIon and titanium sublimation pumps.  Have operated vacuum

monochrometers and miscellaneous support systems.



HOBBIES AND ACTIVITIES:

======================

    Astronomy, reading, science fiction, play guitar, build guitars,

computer science, ballroom dancing, marine biology, cats, roses.


    If this resume doesn’t format well in your browser -- it looks fine in mine, but that proves little -- try the .pdf version here. Failing that, what is below is straight text, so you can probably cut-and-paste it into an editor or word-processor window. Failing that, send me EMail and I will send you a text copy.