Greybeard Geek

Accomplished, mature, experienced

Email me

Age

Old guy proving that productivity, relevance, and new learning can go on until I’m done.

A great benefit of age is experience. My experience is long, broad, and deep, ranging over computational science, data science, visualization, high performance computing, computational geometry and game development, all founded on a solid academic background in mathematics and physics.

Old enough to know that experience is not enough. Constantly learning new stuff, developing new skills, taking on new challenges–these are my life-long driving motivators.

Objective

Looking for projects on which I can enjoy being productive in exercising my considerable special skills – Remunerative, challenging, right livelihood, fun.

At this stage of my career I’d be most interested a contractor/consultant role, but employment is not out of the question.

Current employment

Presently, and for past ten years, Senior Engineer at Dynamic Graphics, Inc.

Major role in development and maintenance of DGI’s flagship product, Coviz4D , an interactive scientific visualization system and suite of analytic tools for geophysics, aimed particularly at oil-and-gas exploration and production.

Consulting on computational science and code development for geophysics research groups at two of DGI’s client Big Oil companies. Co-author on some of their published papers.

Oil companies’ geophysical data sets are large, so this work has a lot of the character of big data analytics, and is inherently geospatial.

Some specific achievements detailed here .

Skills and Interests

Machine learning

This is an intense current interest rather than a long standing one. Impressed by the spectacular recent successes of deep learning techniques, and recognizing that it’s an area where my mathematical toolkits and programming skills can find good use, I’ve been giving this a lot of attention as the current focus of my life-long learning program.

Have successfully completed one deep learning project in my employment, for one of DGI’s oil company clients, investigating the application of neural networks to learn a complex multi-variate non-linear function. Used Scikit-Learn, Keras, TensorFlow, Pandas, Seaborn, and the general scientific Python environment.

As a hobby learning experience, have spent some time over the past year working on several Kaggle competitions, have submitted one (as a team of one), which ranked in top 30%. Most interested in the Kaggle competitions involving image data, such as satellite imaging or medical imaging, especially the 3D imaging, such as MRI data. Have found that these projects require a lot of wrangling of the data before even beginning to think about appropriate machine learning models. My long practiced skills in image processing, enhanced by modern tools such as OpenCV 3 and the Python environment, have served well in the data wrangling.

Interactive 3D graphics and computational geometry

A passionate geometer since middle school geometry, have been doing geometry in code through much of my career.

My Ph.D thesis can be viewed as a partial classification of 4-dimensional crystals. It was also a novel application of computational methods to a problem in pure mathematics.

Work in computational fluid dynamics at NASA in 1980s naturally involved 3D and 4D graphics for scientific visualization. Used IrisGL from its beginning; it evolved into OpenGL, which I continue using today in my work at DGI.

In early 1990s, did much consulting work for Digital Equipment Corp ( RIP ) concerning their 3D engineering workstation products. This included application software development, technical writing, and training. Developed and delivered an intensive training course in 3D graphics and PHIGS programming for the DEC engineers in sales support and customer support. Wrote a book on the topic, unpublished (because PHIGS lost to OpenGL in the market), but very well received by the DEC readership.

In 1995-1999, with the advent of commodity 3D hardware for PCs, I found a niche as a consultant implementing geometry and physics engines for immersive 3D games. Have never myself been a gamer, but this niche opened for me because many of the hackers who had been writing the 2D games found the step from 2D to 3D mathematics difficult. Implemented the geometry and physics engines for five published games for PC and Play Station. Much of what I did as one-offs would today be provided by a middle-ware product such as Havok or PhysX. In 1997 I had the best real-time collision detection of any published game. This work all in C++.

Contributions of a geometrical nature have been a big part of my accomplishments in my current employment at DGI. Much of the geophysical work is on highly irregular cellular finite element models of oil reservoirs, giving rise to numerous interesting problems of intersecton and slicing. My solution to a cross-sectioning problem in 2008-2009 put DGI’s product far ahead of the competition of that era.

Except for the Ph.D. thesis, all this geometric work uses geometry that’s not very advanced, just sophomore-level Gibbsian vector calculus. I’m distinguished by my sharply honed skills for doing that in code and crafting algorithms for doing it efficiently on large data sets.

With the rising importance of web programming skills, I’ve turned to learning how to wrap all my 3D expertise in WebGL. Here’s my first experiment with WebGL and JavaScript .

Scientific software development

Presently, and for some years, I’m especially practiced in using C++ in scientific applications– –computational fluid dynamics, geophysical modeling, dynamics engines for games, data visualization, and financial modeling. I’m fluent in the latest C++11 idioms, the Boost libraries, move semantics, and generic programming, which all I exercise in my daily work. I’m a great fan of modern C++, for the way that it simultaneously affords expressive power, runtime performance, and programmer freedom.

In my current employment, we support the product on Windows and Linux, and I’m in command of the appropriate C++ development tools on these two platforms, such as Visual Studio and Eclipse.

A long time major interest is performance optimization of scientific applications on parallel architectures. In my present job the focus is on multi-threading on multicore shared memory processors and on GPUs, and I have been the leader in our company for introducing parallel processing into new code, as well as retrofitting a very large, very old legacy code base. OpenMP for multi-core and CUDA for GPU are our parallel programming tools. Previous periods of my career included significant experiences in parallel programming for distributed-memory architectures using MPI, and for SIMD vector supercomputing with vectorizing Fortran compilers. I’m practiced in the power tools, such as Valgrind and Intel Parallel Amplifier.

I’m expert in computational geometry and in 3D graphics programming. OpenGL is the graphics API of my current practice, and I also have considerable game programming experience using Direct3D. Have participated in development of two scene graph languages.

Image processing, image manipulation experience has gone along with the 3D work. Multi-resolution imaging (from 1990’s MipMapping to current MrSid.)

Python scientific programming ecosystem

The Python environment–IPython, Jupyter notebooks, Pandas, MatPlotLib,OpenCV, Scikit-Image----has become my most comfortable workbench, even to testing and debugging projects for my C++ developments. Recent forays into machine learning and data science projects have afforded practice with Scikit-Learn, Keras, Theano, TensorFlow.

Location

Berkeley, California.

Education

A.B. in Physics with Honors
M.A. in Physics
Ph.D. in Mathematics
all from University of California, Berkeley.

Academic honors include Phi Beta Kappa and Woodrow Wilson Fellowship.

My Ph.D. thesis, “The Compact Euclidean Space Forms of Dimension Four”,
was a novel application of discrete computational methods to a problem
in pure mathematics, being a special case of Hilbert’s 18th problem.

Some projects at DGI

(detailed descriptions in progress)
Formula Processor
Computational Geometry kernels
Numerous computational solutions in geophysics, essentially as on line computational scientist for a major DGI Client,
being an international energy company.
Seismic response simulation

Previous employments

Humboldt State University, Associate Professor of Mathematics, 1969-78

Excellent teacher, mathematics and computer science. Served three years as Departmant Chairman (department of 15).

Resigned tenured position because it was strictly undergraduate teaching, mostly lower-division, in a geographically remote setting that offered no support for research or interesting prospects for my own intellectual growth. Another 25 years of reteaching the same undergraduate curriculum would have been anti-thetical to my driving principle of life-long learning.

Gap year 1979

Went sailing. Blue-water adventures, including single-handed ocean crossing.

NASA Ames Research Center, Institute of Advanced Computation, Analyst 1980-83

First job after quitting teaching career, employed by NASA contractor Technology Development Corporation. Began on assignment working on NASA computational fluid dynamics codes for Illiac-IV supercomputer under direction of the late Harvard Lomax . This evolved into assignment to the evalutation team for NASA’s first acquistion of a commercially produced supercomputer. This was a one-year project in which I ported various NASA CFD codes to three different parallel architectures for benchmarking the competitors. This led to authoring and publishing
“Supercomputers” in Scientific American . Continued doing systems programming in Fortran for the winning system, the Cray 1-X.

Two startup companies that went nowhere 1983-1985

Independent consultant, dba Dorian Research, Inc., 1985-1999

Client list includes:
National Aeronautics and Space Administration, General Electric Company, Digital Equipment Corporation, Kubota Pacific Computer, Inc., Stanford Linear Accelerator Center, Clorox Company, Midway/Atari Games, Accolade, Mindscape, 3Dfx Interactive, Virgin Interactive Entertainment, Autodesk, Ampex Corporation, Grumman Data Systems, PathScale.

Assignments have included:
Development: Application software design and development, systems software and systems engineering for supercomputers, application development work in computational sciences, scientific visualization, and other graphics-oriented application areas; graphics API development; interactive game development projects, both real time engines and tools. Wrote the game engine with the best collision detection of any published game c. 1998.

Writing and training:
Authoring technical marketing literature, such as technical overviews, white papers and trade journal articles, particularly in 3D graphics technology and networking. Development and delivery of training programs for engineers in 3D graphics theory, software, and technology.

Planning: Technology assessment and planning, proposal writing and strategy consulting.

NextBus Information Systems, Senior Data Scientist, 2000-2004

Gap years 2005-2006

Current employment above

Greybeard Geek home