About me
Hi, I’m Bobby.
I’m a Software Engineer 2 at Pacific Northwest National Laboratory. My work connects software, physical devices, and the people who rely on them—from evolving and eventually retiring a portal for international device support to integrating detectors and preparing data from field tests.
Growing into software engineering at PNNL
My professional path began with hands-on support. At the WSUTC Computer Center in 2018–2019, I helped students and faculty with technical problems and service requests. During my senior year at WSU, I joined PNNL as a Tech Intern 4, working at the lab from 2019 to 2020.
The internship brought together large datasets, automation, and field equipment. I prepared data for archival and graphical analysis, wrote Bash, PowerShell, and Python scripts to reduce manual work, and helped configure and maintain networks, routers, and cameras at test events. That work put the code alongside the equipment and the people using it.
After graduating in May 2020 with a B.S. in Computer Science, cum laude, I joined PNNL full time as a Software Engineer 1. I was promoted to Software Engineer 2 in 2021. My work has grown to include leading development and integration efforts, while retaining that practical connection between software and the work it needs to support.
Taking a legacy portal through its next chapter
Providing a device is only part of supporting it. The Nuclear Smuggling Detection and Deterrence (NSDD) Portal cataloged devices provided to countries around the world and tracked their maintenance and training. Those connected responsibilities gave the application its purpose: keeping the information needed to support equipment together.
I inherited an established JavaScript and PHP application built on the legacy Zend Framework, working first as a developer and then as lead developer over six years on the project. Understanding the existing system and the people depending on it was part of deciding how to carry it forward.
The portal originally ran on Windows virtual machines with Microsoft SQL Server. To reduce costs, we migrated it to Linux virtual machines and MySQL. I carried out that migration work while continuing to maintain the application, support new features, and respond to headquarters needs. The change involved the application, its database, and the environment it depended on.
My responsibility continued when a successor system was ready to take over. I handled the data handoff, fulfilled the project’s data and archival requirements, and shut down the legacy portal. Six years of work ended with a deliberate transition: the information needed to move forward and the historical records needed to be retained. That experience is part of how I approach complete systems—taking responsibility for their evolution, ongoing use, and eventual retirement.
Bringing detectors into a working system
The Multi-Purpose Cargo Data Collector (MCDC) brought the integration work closer to physical equipment. It was a large container-based system that opened to detect radiological signatures from passing train cars. Its gamma and neutron detectors needed to work as parts of that larger system.
I was the lead software developer for integrating those detectors. The work connected device data with the software around it, supporting the MCDC’s detection function. It is one example of how my development experience extends beyond an application interface into the relationship between code, equipment, and the environment where a system operates.
Turning field-test data into something useful
At test events for commercial drug-screening devices, collecting readings was the beginning of the work. Government agencies and commercial vendors collaborated to scan large numbers of items, producing data that the vendors could use to improve their algorithms.
I worked on the collection itself, then reformatted and repackaged the resulting data for the vendors. Following it from the device through preparation and delivery kept the engineering task connected to its purpose: giving the next team usable material for its algorithm work. It also brought together hands-on test-event work, data processing, and collaboration across organizations.
From the initial need to ongoing support
These projects involve different technologies, but they share a need to make the parts work together. I start by understanding what people need to accomplish and how the system will fit into their work. Then I carry the solution through design, development, integration, testing, and ongoing maintenance. That applies to both new systems and changes to established platforms.
The common thread in my work is following information through the whole system: from a physical device or user action, through the software, to the person or application that needs the result. I work hands-on with hardware as well as code, connecting devices, collecting their data, and integrating it into larger systems.
That also includes developing Python APIs and applications, and PHP APIs with Zend, Symfony, and Drupal. The implementation changes with the problem; I stay involved in how the pieces connect, how the result is checked, and how it will be maintained.
Adopting new tools with purpose
I use GitHub Copilot and Codex extensively, adapting to new AI tools and agents as they emerge to increase productivity, improve development workflows, and strengthen the reliability and security of existing projects.
I use that assistance within the same process I bring to other development work: understand the codebase, define the requirements, review the changes, and verify behavior with tests. The goal is to make investigation and implementation more productive while keeping responsibility for the result with me.
The community that made me want to build
My interest in coding and system administration began with Sea of Storms, a game I joined in 2000. I became an administrator in 2004 and its Implementor, or head administrator, in 2006. Wanting to improve a world and community I cared about helped lead me toward my degree and engineering career.
Since 2021, I’ve also developed its C/Linux codebase directly. I bring the same involvement from idea through support to combat systems, storytelling tools, and regression coverage, while continuing to run events and help players. It gives me an ongoing reason to learn: building things that matter to the people using them.
The Sea of Storms storyTechnologies I’ve worked with
- Integration
- Device integration, Device data collection, Hands-on hardware work
- AI workflows
- GitHub Copilot, Codex, AI agents for productivity, reliability, and security
- Languages
- Python, C, C++, PHP, JavaScript, HTML, Rust, C#, Bash, PowerShell
- Frameworks
- Flask, FastAPI, Django, Zend, Symfony, Drupal, React, WPF
- Databases
- MySQL, PostgreSQL, SQL Server, MongoDB
- Tools & APIs
- Git, SSH, Visual Studio, REST APIs
- Platforms
- Docker, AWS, Keycloak, Raspberry Pi
- Systems
- Windows, macOS, Ubuntu, Red Hat Enterprise Linux
The work I’m looking for
I’m looking for software engineering work where I can help shape a system, build and integrate its parts, and stay involved as it evolves. I’d like to bring my experience with applications, devices, and data to a team building something useful, while continuing to learn from the people around me.
Something useful
starts with a conversation.
Have a software engineering role in mind?
I’d be glad to hear what you’re building.