Developed a reference implementation for a new NVME command set, which included a library, Linux driver, and fio plugin.
Made modifications to the Linux kernel io_uring code to support asynchronous ioctl type commands to the driver.
Used the reference implementation as both a test bed for the hardware implementing the new NVME command set, and to provide feedback on the command set to the hardware team.
Senior Staff Software Engineer
Samsung
2014.11 - 2020.09
Developed a flash based caching solution for ESXi based on VmWare's VMIOF framework.
Wrote a simulator in C++ to speed development and enhance testing of the caching plugin by simulating both the virtual machine and the virtual disk in an ESXi system.
Developed a Linux device mapper plugin and Windows filter driver that performed deduplication and compression to effectively enhance the storage capacity of flash devices.
Architected and developed a scalable clustered object store which included data distribution and redundancy using key-value flash devices.
Senior Software Engineer
Proximal Data
2011.12 - 2014.10
Developed a flash based Virtual Machine storage caching system for ESXi and HyperV.
Developed a Windows file system minifilter driver that acted as the front end to the caching solution.
Wrote ESXi hostprofile and esxcli plugins in Python.
Obtained certification for a Windows file system filter and PNP Device Drivers.
Lead Software Engineer
Logic Innovations
2000.03 - 2011.12
Systems Engineer/Software Lead Engineer for a Linux based IP Encapsulator/IP to ASI router.
Wrote a Linux network driver for the IP Encapsulator ASI output.
Project Manager/Software Lead Engineer for MPEG transport stream multiplexer product line.
Wrote C++ components for MPEG packet processing and section re-assembly, collision resolution for MPEG identifiers, system configuration management, and license management.
Developed a web interface for the multiplexer.
Wrote MPEG-2 utilities including a video parser and a prototype stream splicer.
Wrote an object oriented class library in C++ to abstract operating system functions and implement recurring software patterns.
Brought up PowerPC 440 and PowerPC 860 based boards using an emulator and reference design.
Wrote programming routines for Xilinx FPGA.
Software Engineer
Cayenta.com
1999.01 - 2000.01
Worked with Sempra Energy to move its HR and payment systems from an older mainframe application to an SAP system.
Wrote software in Java to analyze and convert data records from COBOL based format into new format required for use in SAP system.
Used CORBA for reporting failures to central server.
Managed a SUN High Availability cluster.
Software Engineer
Tiernan Communications
1998.01 - 1999.01
Worked on a Windows based network management system for Tiernan MPEG-2 encoders and decoders using Microsoft Foundation Classes and Visual Studio.
Wrote device drivers and control software in C for a Nucleus RTX based MPEG-2 encoder card.
Migrated encoder software to C++ and VxWorks.
Architected and implemented C++ software for modular MPEG-2 encoder product, including device drivers, system configuration, and monitoring and reporting components.
Software Engineer
Tenth Mountain Systems
1997.01 - 1998.01
Developed C++ software for compliance testing suite with Secure Electronic Payments (SET) electronic commerce protocol developed by Visa and MasterCard.
Wrote ASN.1 Distinguished Encoding Rules parser in Perl, and RSA and DES decryption software utilities to analyze protocol messages.
Worked with SET and digital certificate toolkit to implement hundreds of test cases.
Staff Data Platform Software Engineer
ServiceNow
2024.10 - Current
Improved performance of Postgres database by adding features to the planner such as additional rewrites and query modifications
Implemented table pre-extension to the database to reduce lock contention on the extension of tables
Diagnosed and resolved customer issues involving slow queries and other bottlenecks
Software Engineer
SAIC
1995.01 - 1997.01
Worked on network security assessment tool for Department of Defense contract.
Researched and integrated existing exploitation tools into the assessment tool.
Created new tools in C, Bourne shell and Perl to implement known exploits.
Collected results of tools using Perl scripts and reported them to central database.
Worked as member of a team performing analysis on secure electronic commerce protocol developed by Microsoft and Visa (Secure Transactions Technology).
Wrote software to facilitate interoperability testing between vendor implementations of the STT protocol.
Intern
Oak Ridge National Laboratory
1994.01 - 1994.01
Worked with Fortran code using the Monte Carlo method to simulate radiological dose to organs from internal sources in pregnant women.
Wrote software in C to analyze and display results of Monte Carlo simulation code.
Education
MS - Radiological Health Physics
San Diego State University
1994-01
BS - Physics, BA History
University of California, San Diego
1991-01
Skills
Programming in several languages, including C, C, Java, Perl, Python, PHP, Unix Shell Scripts, HTML, JavaScript and Assembly
Programming for various operating systems, including VxWorks, Linux and Windows
Software architecture including object oriented design
Embedded programming including Linux device drivers and board bring up
Experience in TCP/IP networking, sockets programming, IP routing and the Linux stack
Knowledge of MPEG-2 and H264 video systems
Virtualization on VmWare, HyperV and RedHat Enterprise Linux
Familiarity with revision control and build systems including Git and Jenkins
Knowledge of Postgresql, SQL, and database internals