Current role
I am a staff scientist at Lawrence Livermore National Laboratory. My work includes HPC software leadership, scientific computing infrastructure, performance portability, GPU-oriented implementation, and support for demanding research workflows.
Background
I received a PhD in Computer Science from Rensselaer Polytechnic Institute and a BA in Applied Mathematics plus a BS in Computer Science from Cal Poly Humboldt.
Technical scope
I am most useful where numerical methods, parallel computing, software design, and delivery infrastructure have to work together. That includes kernels, runtimes, communication layers, toolchains, testing, and the developer workflows around them.
Focus
- Performance-critical scientific software and numerical methods.
- Parallel and distributed computing for research workloads.
- Mixed-language codebases spanning C, C++, Fortran, and Python.
- Reproducibility, testing, and maintainable research software practice.
Work Threads
- Current LLNL work spans scientific software projects, research computing infrastructure, performance engineering, and workflow support.
- GEOS remains an important part of my recent background, but my role there is now mostly continuity, legacy knowledge, and occasional advisory support rather than day-to-day primary development.
- GPU enablement and performance-portability work, including HIP and ROCm-oriented development for AMD platforms and Frontier-era / El Capitan-era readiness.
- In-situ data extraction, serialization and halo-exchange infrastructure, and asynchronous CPU, GPU, and MPI overlap.
- Visualization and data-query tooling for
.milisimulation databases, including modern browser-facing and Python-facing access patterns. - Build, packaging, CI, testing, workflow automation, and software modernization work for long-lived technical codebases.
Capacity
- I am comfortable moving across the full HPC software stack, from numerical kernels and distributed-memory behavior to build systems, testing, packaging, and developer tooling.
- I work well in large, long-lived, runtime-critical, mixed-language codebases that need steady technical ownership.
- I am not especially attached to any one implementation language. I usually approach a problem from the underlying computer science and systems constraints first, then use the language or mix of languages that best fits the job.
- I can usually enter an unfamiliar scientific software system quickly, identify meaningful engineering leverage, and contribute at both low-level and architectural layers.
Navigate
- Capabilities: technical areas, methods, and working style.
- Public Work: open-source links, talks, publications, notes, and example artifacts.
- Notes: informal self-published technical notes, not peer-reviewed publications.
- Lab: small browser-runnable numerical demos and toy experiments.
- CV: a longer-form academic and technical summary.
- Contact: public contact routes and profile links.