Résumé
Helping you do the amazing work you already do, but do it better, faster, more safely, and with more joy.
Software Craftsman & Developer Experience Professional
My career has taken me from being an engineering physicist to a computational mathematician and ultimately to a professional software engineer, as I chased the problems I encountered from magnetically confined high-temperature plasmas, to the numerical algorithms under the hood, to their implementation in the software. At that point I realized it’s less about the implementation details and more about the team culture you have and how that contributes to the overall success of the project, and thus the switch to Developer Experience (DevEx), which is a specialized field, blending deep expertise in both software craftsmanship and human interaction, aiming to improve the cumulative feeling of happiness, productivity, and ease that developers experience while interacting with a platform, tool set, processes, documentation, and team culture.[1] It spans the entire developer journey, from onboarding and environment setup to daily coding, testing, deployment, and long term maintenance. Studies show developers lose more than 8 hours per week on inefficiencies,[2] and poor DevEx often contributes to turnover, resulting in loss of institutional knowledge and recruitment cost.[3] Fast delivery, high confidence, and low defect rates are what most teams desire, and all are correlated with improved DevEx. A strategic investment in continuous improvement in this arena is the only realistic way to turn these hidden costs into measurable gains, while preserving the flexibility teams need to respond to change in the future.[4]
With 8+ years of experience in this field, I specialize in getting plugged into a team, determining what its various pain points are that prevent it from being as successful as it can be, prioritizing which of those need to be addressed first, and then iterating with the team to make incremental improvements to help them move in the right direction, while tracking both qualitative and quantitative metrics. Engagement with your team can look like any combination of the following:
- Building Shared Understanding
Often the foundation for culture transformation must first be laid by building a shared understanding of why any proposed changes are both beneficial and necessary to achieve a team’s goals. This is often best achieved by facilitating a weekly lunch & learn series focused on a particular topic. This could look like, for instance, a team book club, or a video discussion lunch & learn series. If attendees are only a subset of the team, the goal is to motivate and empower them as early adopters to gently advocate for the better way of doing things they’re learning.
- Training
Often teams do things the way they do things, because they don’t yet realize there’s a better way to do things. This is where continuous improvement in the skills required to be a professional software developer comes in. Training engagements could be one-off sessions to give participants a feel for what’s possible and point them to additional resources for further learning (e.g., introduction to GitLab). They could also be longer-term courses designed to teach certain skills or practices over the course of a number of sessions (e.g., intermediate git: 12 hours over 8 sessions).
- Consultation
Often teams need assistance assessing their current state, identifying sources of friction, prioritizing which to address, and then developing action plans to execute to work toward solutions. Such a consultation could be a one-time event (e.g., ~20 hours of interviews and team discussions, followed by preparing a report of prioritized recommendations). They may also be recurring, as it’s beneficial to periodically re-assess and pivot to whatever the largest pain point at the time is, and outside facilitation of those assessments is often valuable.
- Embedded Support
Often teams desire not just an initial consultation, but to have someone embedded into the team long-term to implement solutions in the prioritized areas. Such support can be part- or full-time, depending on other commitments.
Throughout my career, I’ve enjoyed the opportunities afforded for continual learning and improvement, whether that’s developing my skills as a leader, or honing my competencies with an ever-evolving tech stack. I excel in self-directed study, come up-to-speed with new technologies quickly, and then often find myself the most proficient person around in whatever language, library, or tool is in question. I pride myself in being not just a developer, but a software engineer, who is able to assess a project’s needs, determine the optimal technologies to address them, and then design, build, deliver, and maintain solutions with their long-term sustainability and resiliency to the ever-shifting landscape in mind.
I function best as a generalist, leading or interfacing with a team of specialists. I excel at keeping the high-level and long-term plan in mind, breaking it down into manageable pieces, and finding the right people to work those tasks. When needed, I have the experience and attention to detail to dig down into the weeds with the specialists to ensure the solutions we’re designing and building will meet the overall project needs. I do all this best through asynchronous communication via project management and team collaboration tools, with synchronous meetings scheduled only as needed.
Education
Experience
Sandia National Laboratories, Albuquerque, New Mexico
December, 2022 – Present
Senior Member of the Technical Staff
Automating adherence to software engineering best practices; assisting
teams in improving their project management practices; streamlining a
process for open-sourcing Python infrastructure; establishing
coding/testing standards for Python package development; forking,
modifying, and deploying open-source tools for corporate-internal use.
Sandia National Laboratories, Albuquerque, New Mexico
September, 2017 – December, 2022
Member of the Technical Staff
Leading an initiative to automate manual integration and release
testing; encouraging fuller adoption of GitLab as an all-in-one DevOps
and project management platform to improve developer productivity and
overall team success; developing continuous integration/deployment
workflows and infrastructure; leading teams to design and develop tools
to improve sustainability and reproducibility; introducing software
engineering best practices into team workflows; developing code
integration workflows and infrastructure.
Skills
Software Engineering:
DevOps: Well-versed in the three ways and five ideals. Extensive experience serving as DevOps lead on computational science teams.
git: Extensive experience developing, using, and teaching simple to sophisticated workflows, along with managing GitLab/GitHub projects. Prefer GitLab for an all-in-one DevOps solution.
GitLab CI/CD: Extensive experience establishing GitLab CI/CD pipelines, along with coupling them to Jenkins for more complex workflows when needed.
GitHub Actions: Significant experience standing up GitHub Actions workflows and interfacing external services with GitHub for additional CI testing.
Jenkins Pipelines: Extensive experience crafting complex pipelines and maintaining hundreds of jobs via Pipeline scripts. Modest experience administering Jenkins instances.
Cloud: Experience with OpenStack (similar to AWS, GCP, Azure), Kubernetes, and Helm managing and deploying applications containerized with Docker/Podman to an internal cloud.
Automation: Extensive experience writing custom scripting to ensure all users, developers, and CI services interact with a codebase in the same, replicable way. Basic experience with Ansible and Terraform.
Quality: Experience with SonarQube, Fortify, BlackDuck, etc.
Agile: Extensive experience with Scrum, Kanban, and the Scaled Agile Framework (SAFe). Specialize in tailoring methodologies to the team to get the most out of them.
Project Management: Experience with requirements elicitation, design, execution, monitoring, and stakeholder interaction. Flexible within the plan, but will work hard to protect scope and team from external interference.
Programming:
Python: Extensive experience writing tools to unify build processes. Substantial experience with Sphinx/MkDocs, pytest, and building modular ecosystems of reusable packages. Some experience with Django and the SciPy stack. Referred to as the “Python ninja”. Current language of choice.
Groovy: Extensive experience using advanced features to build complex Jenkins Pipeline suites. A close second in language of choice.
C++: Extensive experience developing and maintaining large object-oriented codes. Experience creating and utilizing templated classes, including template metaprogramming. Proficient with the Standard Template Library and RogueWave containers. Some experience with Boost libraries.
bash/tcsh: Extensive scripting experience.
Fortran 77/95/2003: Experience developing large, parallel, object-oriented codes.
OpenMPI: Experience parallelizing Fortran FEM codes.
OpenMP: Some experience parallelizing Fortran FEM codes. Prefer OpenMPI.
Basic experience with Perl, Julia, Java, JavaScript, TypeScript, Ruby on Rails, Golang.
Mathematical Tools:
LaTeX: Extensive experience typesetting a variety of works. Prefer to use
tikZ,pgfplots, andpgfplotstableto automate the generation of papers from code-generated data using only LaTeX.Mathematica: Certified by Wolfram Research. Extensive experience with symbolic manipulations, visualizations, creating dynamic user interfaces to codes, etc.
MATLAB: Extensive experience implementing numerical methods and visualizing results. Developed “Problem Solving with Matlab” tutorial series. Some experience with computer vision packages.
Trilinos: Panzer, Teuchos, Thyra, Phalanx, E/Tpetra, NOX, LOCA, Piro, Teko.
PETSc/LAPACK: Experience implementing parallel FEM codes.
Other:
German: Once fluent in conversational and some technical.
SketchUp: Extensive experience utilizing for woodworking and carpentry design.
Blackboard/Desire2Learn/MyMathLab: Experience managing courses; online education certified.
Open-Source Work
staged-script
Lead Architect / Lead Developer / User / Maintainer
GitHub
| PyPI
| ReadTheDocs
See Transforming Hacky Scripts into a Modular Infrastructure below.
reverse-argparse
Lead Architect / Lead Developer / User / Maintainer
GitHub
| PyPI
| ReadTheDocs
See Transforming Hacky Scripts into a Modular Infrastructure below.
SetProgramOptions
Requirements Developer / Code Reviewer / User / Maintainer
GitHub
| PyPI
| ReadTheDocs
See Unifying the DevOps Infrastructure Within Trilinos below.
ConfigParserEnhanced
Requirements Developer / Code Reviewer / User / Maintainer
GitHub
| PyPI
| ReadTheDocs
See Unifying the DevOps Infrastructure Within Trilinos below.
shell-logger
Project Lead / Developer / User / Maintainer
GitHub
| PyPI
| ReadTheDocs
See One Script to Rule Them All: Unifying Build Processes Across
Platforms below.
SPiFI
Requirements Developer / Code Reviewer / User / Maintainer
GitHub
See Developing the SPiFI Library and Associated Jenkins Pipelines below.
Projects
NLS³C Community of Practice
Sandia National Laboratories, Fall, 2025 – Present
Recently tapped to lead the development for a Community of Practice for
the National Laboratories Sustainable Scientific Software Conference.
Clean Code Lunch & Learn Series
Sandia National Laboratories, Fall, 2025 – Present
Leading a 16-month long lunch & learn series on Uncle Bob’s
Clean Code series of videos, to develop a group of early adopters to
take software quality principles back to their teams.
Software Security Champion
Sandia National Laboratories, Spring, 2025 – Fall, 2025
Served as a liaison between our software security department and various
projects and teams across the labs. Implemented security best
practices, gave talks on various security-related subjects, and attended
Black Hat and DEFCON, bringing back immediately actionable
insights.
Internal OpenSSF Tools
Sandia National Laboratories, Winter, 2024 – Spring, 2025
The Open Source Security Foundation provides the
Best Practices Badge App and Scorecard, such that open-source
projects can manually and automatically assess the quality of their
software engineering practices, particularly with respect to security.
I led a small team to fork, modify, and deploy internal instances of
these tools, so internal software projects can take advantage of all the
same benefits, without us having to release any data to the open
internet. The project required coming up-to-speed quickly on Ruby on
Rails, Golang, and Nuxt.
Software Quality for a MATLAB Simulation Suite
Sandia National Laboratories, Fall, 2024 – Present
RaMSeS is a MATLAB tool suite for modeling and simulation of radars.
Initially a collection of tools written by various radar engineers, it
has grown to be the one-stop shop for all things radar mod-sim. With
the growing user base, we’ve focused in recent years on improving the
overall project quality. We’ve stood up a user and developer
documentation site via Sphinx, have given developers more and faster
feedback in CI, and have begun integrating AI into the development
workflow to help scientific subject matter experts write more and better
unit tests.
Clearance
DOE Q: July, 2018 – Present
Certifications
The Linux Foundation’s Devloping Secure Software Certification Course
CompTIA Security+ (June 2014 – May 2017)
Mathematica—Advanced Foundations
Continuing Education
Kubernetes:
Docker & Kubernetes Internals Workshop (internal)
Certified Kubernetes Administrator (CKA) with Practice Tests
Python:
Project Management:
Leadership:
The Art of Being an Effective Mentor (internal)
Preparing for Management (internal)
Five Conflict Styles and How to Use Them (internal)
Miscellaneous:
Basic Instructor Training (internal)
System Administrator Policies (internal)
Presentations
Jeremy Castile and Jason M. Gates. “What Great Teams Do Differently: Standardizing Developer Workflows”. Interview. GitKraken. January 2026.
Jason M. Gates. “Collaborative Storytelling in Code: Enhancing Team Synergy”. Presentation. GitKon. December 2024.
Jason M. Gates and Joseph Valeriano. “Best Practices for Remote Work.” Interview. GitLab Government User Group. November 2023.
Jason M. Gates and Jonathan Silva. “When Workflows Don’t Feel Like Work: A Lesson in Simplifying Pull Requests”. Interview. GitKon. October 2023.
Jason M. Gates. “The Complexities of Replicability.” Presentation. The Department of Applied Mathematics @ CU Boulder. April 2023.
Jason M. Gates, David Collins, and Josh Braun. “ShellLogger: Keeping Track of Python’s Interactions with the Shell.” Presentation. Tri-lab Advanced Simulation & Computing Sustainable Scientific Software Conference. May 2022.
Jason M. Gates and William McLendon. “Enhancing Python’s ConfigParser.” Lightning talk. US Research Software Engineering Association Community Call. April 2022.
David Collins, Josh Braun, and Jason M. Gates. “Logger: A Tool for Keeping Track of Python’s Interactions with the Shell.” Presentation. US Research Software Engineering Conference. May 2021.
Jason M. Gates, William Mclendon, Josh Braun, and Evan Harvey. “LoadEnv: Consistently Loading Supported Environments Across Machines.” Presentation. US Research Software Engineering Conference. May 2021.
Jason M. Gates, David Collins, and Josh Braun. “CI Tools as Lego Blocks: Build Your Ideal Custom Solution.” Presentation. Society of Industrial & Applied Mathematics Computational Science & Engineering Conference. March 2021.
Vivek Sarkar, Jason Gates, Charles Ferenbaugh, Vadim Dyadechko, Anshu Dubey, Hartwig Anzt, and Pat Quillen. “Technical Approaches to Improve Developer Productivity for Scientific Software.” Panel discussion. Collegeville Workshop on Scientific Software. July 2020.
Jim Willenbring, Ross Bartlett, and Jason Gates. “Git Solutions.” Interview. Collegeville Workshop on Scientific Software. July 2020.
Jason M. Gates. “Training Best Practices.” Tea time discussion. Collegeville Workshop on Scientific Software. July 2020.
Jason M. Gates. “Introduction to GitDist.” Presentation. Trilinos User-Developer Group Meeting. October 2019.
Jason M. Gates. “Intro to SPiFI.” Presentation. Trilinos User-Developer Group Meeting. October 2019.
Jason M. Gates. “Stability w.r.t. the Tip of develop: An Experience Report from Two Years In.” Presentation. Trilinos User-Developer Group Meeting. October 2019.
Jason M. Gates. “Training in Version Control and Project Management.” Lightning talk. Collaborations Workshop. March 2019.
Jason M. Gates. “Stability w.r.t. the Tip of Develop.” Presentation. Trilinos User-Developer Group Meeting. October 2017.
Jason Matthew Gates, Roger P. Pawlowski, and Eric Christopher Cyr. “Panzer: A Finite Element Assembly Engine within the Trilinos Framework.” Presentation. Society of Industrial & Applied Mathematics Computational Science & Engineering Conference. March 2017.
Publications
Jason Gates. “From Beginner to Pro: The Three Stages of Git Adoption.” Blog post. Git Blog. December 2023.
Miranda Mundt, Jon Bisila, Reed Milewicz, Joshua Teves, Michael Buche, Jonathan Compton, Jason Gates, Kirk Landin, and Jay Lofstead. “Challenges and Strategies for Testing Automation Practices at Sandia National Laboratories.” Paper. US Research Software Engineering Conference. October 2023.
Jason M. Gates. “Using GitLab Issues for Iterative, Asynchronous Software Design.” Whitepaper. Collegeville Workshop on Scientific Software. July 2023.
Reed Milewicz, Jonathan Bisila, Miranda Mundt, Sylvain Bernard, Michael Buche, Jason M. Gates, Samuel Andrew Grayson, Evan Harvey, Alexander Jaeger, Kirk Timothy Landin, Mitchell Negus, and Bethany L. Nicholson. “DevOps Pragmatic Practices and Potential Pitfalls in Scientific Software Development.” Paper. International Congress on Information and Communication Technology. February 2023.
Jason M. Gates, Josh Braun, and David Collins. “One Script to Rule Them All: Unifying Build Processes Across Platforms.” Whitepaper. Collegeville Workshop on Scientific Software. July 2020.
Jason M. Gates, Joe Frye, Brent Perschbacher, and Dena Vigil. “Git Productive!” Whitepaper. Collegeville Workshop on Scientific Software. July 2020.
Jason M. Gates. “Faster Turnaround Improves Developer Productivity.” Poster. Collegeville Workshop on Scientific Software. July 2020.
Patrick McCann, Rachael Ainsworth, Jason M. Gates, Jakob S. Jørgensen, Diego Alonso-Álvarez, and Cerys Lewis. “How do you motivate researchers to adopt better software practices?” Speed blog. Collaborations Workshop. July 2019.
Jason M. Gates. “Defining Policies to Turn a Team and Project Around.” Poster. Third Conference of Research Software Engineers. September 2018.
D P Brennan, P K Browning, J Gates, and R A M Van der Linden. “Helicity-injected current drive and open flux instabilities in spherical tokamaks.” Plasma Physics and Controlled Fusion 51.4 (2009):045004.
Honors & Awards
Team Employee Recognition Award for EMPIRE
Team Employee Recognition Award Nomination for Advanced Simulation and Computing DevOps Visionaries
Spot Award for Git Training
Department of Applied Mathematics and Statistics Graduate Student Teaching Award
Graduate Teaching Fellowship and Assistantships
Outstanding Senior in German
Academic Excellence Award
Member of ΦΒΚ, ΦΣΙ, ΤΒΠ, ΣΠΣ
University of Tulsa Presidential Scholarship
Byrd Scholarship
Oklahoma Academic All-State Scholarship
ACT Perfect Score
Footnotes