Jay Freeman’s Resume, current 28 April 2021
Jay Freeman’s Resume, current 28 April 2021
JAY REYNOLDS FREEMAN
Internet: Jay_Reynolds_Freeman@mac.com
JAY REYNOLDS FREEMAN
Internet: Jay_Reynolds_Freeman@mac.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.