- team management
- object-oriented design, analysis, and programming (OOA/OOD/OOP, UML)
- modular and structured programming (Java, C++, C#, Python, Perl)
- computer cluster: design and specification, use: PBS (Torque/MAUI), SGE
- cluster parallel programming: MPI (MPICH, LAM, MVAPICH, OpenMPI)
- grid technologies: Globus (GTK, Web Services); distributed computing
- IDEs, SDKs: Eclipse, MS Visual Studio, Android Studio; Gnu tools; SVN, Git; Ant
- numerical algorithms: research, development and exposition
- signal noise analysis and filtering
- neural stimulus sequencing
- GUI applications programming: Android, Java, Mac, Windows (Win32, Frames, WPF)
- medical/clinical data processing and imaging
- database programming: SQL(C/BASE, MySQL, PostgreSQL)
- languages: Java, C++, C#, C, PHP, Perl, Python, XSLT, FORTRAN, BASIC, PowerShell
- operating systems: MS Windows, Mac OS, Linux/Unix, DOS
- Internet communications and programming: TCP/IP, HTTP(S)
- system administration on Linux, Unix (A/UX, HP-UX, Solaris), Mac OS
- network administration: LAN, Internet
Jan ’21– Present
Founded Harmonische Software, a computer programming and consulting business.
Freelancing as computer programmer.
Jan ’19– Dec ’20
Sabbatical: Occupied with various technical projects.
Developed a Python package for graph theory. Administered GNU FreeFont project.
June ’18– Dec ’18
Software Developer for Medical Devices ― OD-OS GmbH
Designed, developed Windows software for retinal laser device and interface to cloud-based data storage solution. Took part in hiring and filling out ISO standards documentation.
Jan ’17– May ’18
Wrote open-source Android app. Administration of free software projects—wrote Python scripts for them. Travel (Spain, Greece).
March ’14– Jan ’17
Develop and debug workflow solutions for customers using the DocYard suite of distributed document processing products, and aid customers in doing the same; write workflow macros and test scripts MS PowerShell. Install product at customer sites and deliver tutorials on DocYard use. Field service calls, provide technical support for customers for sales representatives. Document and explain product features, present customer needs to GUI developers.
June ’11– March ’14
Occupied with various projects, often involving programming. Built my own computer. Administrated GNU FreeFont project. Projects include physics and mathematics, linguistics and typography. Traveled, read.
June ’07– June ’11
Scientific Programmer — Leibniz-Institut für Astrophysik Potsdam
As a member of the German Astronomy Community Grid, worked on computing resource sharing on the grid. Collaborated with cosmologists to run very large astrophysical simulations by developing applications to distribute computing jobs among clusters, and to make terabytes of information easily available.
Researched, implemented, documented and published methods of integrating cluster use into the grid. Coordinated with other grid groups in maintaining compute resources. Wrote “virtual observatory” compatible database application with Web front-end. Helped maintain groupʼs Web site, including Web applications.
Sept ’03– Dec ’06
Scientific Programmer — Max-Planck-Gesellschaft - Albert-Einstein-Institut
Projects with the Numerical Relativity Group, including specification and purchase of clusters and programming. Primary concern: Cactus framework. For it, wrote utility modules, some involving physics and MPI parallel programming, helped scientists write interoperative code, participated in quality maintenance efforts, helped maintain group’s Web site.
Pushed for multi-core processors and InfiniBand networking in group’s new cluster, which is judged the best for running group’s simulations.
Mar ’98– Mar ’01
Team Leader/Application Designer/Programmer — asterion
Lead team of programmers through full production cycle: conception, gathering specs, design, documentation, coding, testing, deployment, and maintenance. Coordinated with quality assurance to maximize client satisfaction. Performed such managerial duties as time-lining, prioritizing, participating in top-level company meetings, hiring new employees, and reporting to upper echelons.
Produced Java thin client graphical user interface for the application suite. This tied two deals with major clients. Wrote and maintained suite’s libraries.
Wrote new applications for the firm's mainframe medical/insurance database application suite, re-wrote existing libraries to facilitate extension and debugging.
June ’92– Jan ’98
Data Analyst and Programmer — CTF Systems Inc.
Responsible for research and implementation of algorithms for imaging of neuromagnetic data, and for solving data noise problems. Wrote analysis programs in C++, C, RLab, and Mathematica.
Designed, wrote real-time neural stimulus sequencing package in C++ for Windows, and a magnetic dipole tracking and display application in C++ for Mac. Participated in team to extend large clinical data analysis and display package in C for Mac.
Sept ’88– May ’92
Computer lab tech — SFU Math Dept
Maintained networked computer lab. Aided graduate students with computer use, typesetting and adding graphics to theses, and Internet connectivity. Assembled and maintained computer network, general system administration. Set up local and wide area networking.
Sept ’82– May ’91
Teaching assistant — SFU Math Dept
T.A.’d most undergraduate applied Math courses: Calculus, Introductory and Advanced Linear Algebra, Introductory and Advanced Ordinary Differential Equations, Partial Differential Equations and Boundary Value Problems, Introductory and Advanced Numerical Analysis, Vector Calculus, Linear Programming, Business Math courses.
Sept ’80– Aug ’82
Instructor/Teaching assistant — Texas Tech Math Dept.
Taught Calculus II, Geometry, Business Math.
Completely designed several major industrial products, as well as dozens of smaller ones. Prefer to have a basic design agreed upon before coding any new project. Practice an iterative approach, involving milestones that bring users real functionality, in order to draw users into the project as partners, and involve quality assurance (code or personnel) from the start.
Lead a team of 2 to 4 programmers for two years, performing as supervisor, mentor, and representative to other departments. Worked as member of teams of a range of sizes, from a group of a dozen programmers. Often took sole responsibility for projects. Work well under pressure.
Academic specialty was in applied mathematics, especially numerical analysis, so had written hundreds of small number-crunching algorithmic programs, many of my own invention, before entering industry, where these skills were used either to implement new or optimize existing functionalities.
Wrote large and small programs for Windows, Unix, Linux, and Mac OS. Developed using modern IDEs, or with a text editor and a compiler. Worked on all levels: GUIs, APIs, libraries, and wrote real-time hardware-level code, for small devices, compute clusters, and network applications. Hacked more spaghetti code than you can twirl a fork at, but often designed from scratch.
Recent personal projects
Mathematics (Physics minor) — Texas Tech University
Studied: Calculus I, II, III, Linear Algebra, Complex Analysis, ODEs, PDEs, Rings and Fields, Statistics, Number Theory; Elementary Physics, Atomic Physics, Mechanics, Optics; French, Latin
Mathematics (Physics minor) — Texas Tech University
Studied: Real, Complex, Numerical and Functional Analysis, Partial Differential Equations, and Topology; Quantum Mechanics; Mandarin Chinese
Thesis: “Invariant Imbedding Applied to Singular Inhomogeneous Two-Point Boundary Value Problems”
Mathematics — Simon Fraser University
Studied: Ordinary and Partial Differential Equations, Numerical Analysis (specialized in Two-Point Boundary Value Problems and Multigrid), Quantum Field Theory.
Thesis: “The Resistive Strip Integral Equation”
Topic: Electromagnetism, Numerical Analysis, Functional Analysis, Differential and Integral Equations, Complex and Real analysis, and Topology