I am a currently a software engineer and systems administrator at the University of Washington department of Bioengineering.
Software Engineer University of Washington Department of Bioengineering, Seattle, WA Oct 1993 - present Focus: Numerical Modeling and Simulation Projects: JSim, QPP, XSIM Software Engineer UW Department of Cardiology, Seattle WA Apr 1988 - Dec 2002 Focus: Medical Imaging Projects: QPP, I4, ALVR Scientific Programmer / Systems Administrator UW Department of Geophysics, Seattle, Washington Feb 1988 - Jul 1991 Focus: Estuarine Current Data Aquisition Projects: ECDA Programmer/Analyst The Systems House / Group-4 / Wolf Creek Water District, Beaverton, OR Feb 1980 - Oct 1987 Focus: Administrative systems Projects: payroll, accounts payable & receivable, general ledger, utility billing Programmer SB Stone Company, Chicago, IL Sep 1977 - Jan 1980 Focus: Administrative systems Projects: accounts receivable, general ledger, order entry Student University of Chicago, Chicago, IL Oct 1973 - Jun 1977 Focus: Mathematics, Natural Sciences, Music Projects: Bachelor's Degree
JSim is an application suite for building quantitative numeric models and analyzing them with respect to experimental reference data. JSim supports high-level hybrid model specification, intermixing ODEs, PDEs, implicit equations, integrals, summations, discrete (stochastic and deterministic) events and procedural code as appropriate. JSim's model compiler can automatically insert conversion factors for compatible physical units as well as detect and reject unit unbalanced equations and mathematical overspecification or underspecification. JSim GUI balances the needs of beginning and advanced modelers. JSim's advanced technical features include a client/server computational architecture, a declarative model language specification, a highly optimizing model compiler, advanced analysis capabilities (sensitivity analysis, optimization, functional imaging), transparent multiprocessing support, asynchronous real-time monitoring, a large variety of user-selectable numeric methods, and multiplatform support (Windows, MacIntosh, Linux, WWW applet). See http://physiome.org/jsim.
JSim's code base contains approximately 100,000 lines of Java, 1,000 lines of JLex/Cup, 17,000 lines of C, 90,000 lines of Fortran, 3,200 lines of Bash, and 16 third-party provided modules. JSim's WWW site contains approximately 17,000 lines of (manually edited) user documentation, 120,000 lines of (automatedly generated) API documentation, and 13,000 physiological models in JSim's three supported model formats (MML, SBML, CellML). I designed the JSim architecture and implemented and maintain approximately 95% of its Java, JLex, Cup and Bash code. I also integrated JSim's 16 third-party modules, including modifying legacy C and Fortran numerical solvers for multi-processing support. I also designed and maintain the JSim WWW site (part of the larger physiome.org site) using HTML, PHP and CSS.
QPP (Quantitative Perfusion Protocol) is a software tool for measuring regional myocardial flow and coronary flow reserve from cardiac PET and CT images. QPP has both a clinical mode (where simplicity, efficiency and reproducibility concerns are paramount) and research mode (where more tinkering is allowed). Clinical users are guided through a series of screens for study selection, region of interest definition, time activity curve extraction, and modeling phases of the protocol. Once modeling is completed, the user may examine standard or polar-mapped views of quantitative measurements, and compare them with the more traditional qualitative views. QPP is currently in beta testing at selected sites, with public release expected in 2009 or 2010. See http://www.physiome.org/software/j4.
The QPP code base consists of approximately 18,000 lines of Java in addition to JSim, of which I wrote approximately 95%. Some code relating to Dicom image import was written by Dr. Adam Alessio. The JSim cardiac flow model used by QPP was developed by Drs. James Bassighthwaighte, James Caldwell and Adam Alessio.
XSIM is an X-windows scientific simulation environment featuring novel run-time controls, data analysis methods and client-server computational architecture. An XSim model consist of a C or Fortran program for numerical calculation and a Configuration File (CF) for configuring the GUI. The program linked to XSim server library code creating a process that answers requests from the XSim GUI client. This architecture is suitable for controlling models on remote supercomputers and viewing results on the desktop. XSIM ran on various Unix flavors (it is no longer in development) and many of its features were later incorporated into JSim (above). See http://www.physiome.org/software/xsim.
I co-designed and implemented the client side of XSIM, consisting of approximately 50,000 lines of C and Motif. The model configuration file parser was written in lex and yacc. Rick King and Dr. Larry Weissman wrote the XSIM server-side code in C and Fortran. A large number of researchers wrote the various models distributed with XSIM.
I4 is a research-oriented medical imaging system developed for the analysis of 4D dynamic cardiac PET image sets. Commercially available clinical image analysis packages did not provide adequate access to internals to support local experimental protocols, thus I4 was developed. Limited programming staff necessitated a no-frills design focused on flexible programatic manipulation of cardiac-specific data structures. I4 consists of a set of standard file types with appropriate I/O libraries; a set of command line tools programs for performing various operations on standard files; a Postscript-like scripting language for quick development of new image processing tools; an GUI for image viewing and overlay (region of interest) editing. See http://www.physiome.org/software/i4
The I4 code base consists of approximately 40,000 lines of C, lex, yacc, Bash, make and Postscript. I designed it and wrote it all, under the scientific guidance of Dr. James Caldwell.
ALVR (Automated Left Ventricle Recognition) is an artificial intelligence system for defining the left ventricle region of interest (LVROI) in cardiac PET image sets. The combined issues of image noise, pathologic anatomy and necrotic tissue make simple model-based approaches to the problem unsatisfactory. ALVR mimics manual operator drawing by examining slices individually for likely LVROI candidates and then combining data from nearby slices with continuity constraints. ALVR run in the context of the I4 system (see above).
I was solely responsible for the development of the ALVR algorithms and their implementation, which comprises approximately 5,000 lines of C.
Estuarine Current Data Aquisition (ECDA) is a real-time data collection system for estuarine current time-series data (water speed, direction, temperature and salinity by depth). Special purpose data-collection hardware fed a data-aquisition process which ran in the background at high priority. This fed data to a lower-priority X-window based monitor process which presented the user filtered time-series for experiment status information. System design stressed stability under stressful conditions and real-time graphical presentation of analyzed data.
ECDA was written primarily in C with X Windows and IEEE-488 device control libraries. Some Fortran was also utilized. I designed and wrote the entire application under scientific guidance from Dr. David Jay.
Under development