hey! i'm a software engineer in based in new york's hudson valley region. i also make music sometimes!
worked on an implementation of the HTTP/2 protocol in z/TPF's enhanced HTTP client, which provides the ability for transactional applications to make HTTP/REST calls using z/TPF's connection pooling support called the high-speed connector. the cool thing about HTTP/2 is that it's multiplexed, so a single connection can carry multiple outstanding requests. this means that compared to HTTP/1.1, users can dramatically reduce the number of sockets for a given endpoint, which is a big deal for lighter-weight remote distributed hosts.
i implemented an adaptive connection selection algorithm optimized for mixed-size traffic with concurrent requests, which considers real-time data from the HTTP and TCP layers, as well as from TCP internals that aren't usually exposed. also, a bunch of work on error handling and connection cleanup, which gets pretty complex with multiple pending requests.
IBM Docs pageadapted z/TPF's MongoDB compatibility layer to work with the latest version of the MongoDB Wire Protocol, allowing users to reap the benefits of using the latest versions of MongoDB client drivers in their distributed applications.
i worked in the protocol-handling layer here, including a significant restructure to allow both old- and new-format MongoDB requests to be processed. also, implemented support for the SCRAM-SHA-1 authentication mechanism, enabling industry-standard security for z/TPF's MongoDB server layer.
IBM Docs pageworked on infrastructure improvements to z/TPF's logical record cache system. added support for dynamically resizing caches without losing existing data — previously you had to delete and recreate the entire cache, which meant repopulating everything from scratch.
also implemented a time-initiated sweeper program that monitors caches for expired entries. separately, reduced MIPS consumption and processing time when adding entries to full caches by optimizing the castout process—particularly important for time-sensitive operations. these changes made it much more practical to use very large caches in time-sensitive applications.
IBM Docs pagehelped extend z/TPF's business events support to handle multiple unordered dispatch queues. previously, business events shared a single system default queue, which meant that if one event encountered transmission errors or timeouts, it could delay processing of completely unrelated events.
implemented support for separating events across multiple queues based on destination, volume, or other criteria—so issues on one queue don't impact others - specifically for traditional z/TPF database data event. also added support for increasing the maximum number of dispatch queues beyond the default limit of 20, providing more flexibility in business event environment configuration.
IBM Docs pagewrote this about working in an environment not dissimilar to z/TPF's high-speed connector with HTTP/2.
this paper goes a step further than what we actually implemented, saying that not only can we use real-time connection health data to intelligently choose an optimal connection for a given request - we can use machine learning to continually improve the selection engine. this goes into a theoretical implementation of a few models with a feedback loop and re-training to get better results.
The IP.com Journal - 2026
View Publicationp.s. this costs $40 to read at the link, but i know a gal who might be able to kick up a spare copy over email :)
the title's wordy, i know. this is about resiliency in exactly-once message streaming systems! a message streaming system uses transaction scopes to ensure the atomicity of working with the message queue.
if a fatal error occurs after popping a message from the queue, the transaction scope caises the message to reappear on the queue. this ensures that the message is not lost before it can be sent to a remote system - it can be retried. but if something causes repeated errors with a specific message, then that fatal error is going to keep happening over and over again. as a result of the repeated error, the message might be retransmitted multiple times, and processing of the queue will block as this message is stuck on the queue. the paper talks about how you can use fatal error intercept functions to move those messages to an error queue as part of process exit, preventing the message streaming system from getting stuck on that message.
The IP.com Journal - 2025
View Publicationp.s. this is also paywalled but get in touch if you want to chat
contributed to the IBM redpaper "securing your z/TPF environment," documenting security features and best practices for the z/TPF operating system. wrote sections on managing and controlling access to z/TPFDF databases through z/TPF support for MongoDB, including user authentication, role-based access control, and filtered collections that limit data visibility based on business need.
also wrote on z/TPF's file system security support, covering the posix-y permissions, users and groups as they're supported on z/TPF, as well as access controls that restrict operator commands and administrative functions. the redpaper gives A LOT of guidance on protecting mission-critical systems running on z/TPF, aligned with the NIST cybersecurity framework.
IBM Redbooks - 2024
view publicationcentralized database system that enables compliance with data localization laws without requiring application redesign. many countries require that data about their citizens be physically stored within their borders, which traditionally meant partitioning databases geographically — complex and risky.
this patent describes a method wherein the database manager transparently handles geographic storage requirements: when a document is created, the system determines the required storage location based on attributes like citizenship or address, creates a remote copy in that geographic location, and modifies the local copy to contain only location metadata. applications can continue reading and writing documents as if they're stored locally, while the database manager automatically routes requests to the correct geographic storage. with this approach, there's no need to redesign applications around geographic partitioning.
US Patent 11,636,139 - 2023
view patenta series of posts about HTTP/2 support for z/TPF's enhanced HTTP client.
announcement | configurationthis is about how you can use z/TPF's ZFILE sudo command to start the IBM health center on JVMs that are already up in a JAM cluster.
View Postthese posts are a high-level intro to z/TPFDF, a database management system for the z/TPF OS.
part 1: database organization | part 2: basic application usagelittle unfinished tracks - to call these WIPs would be very generous. they really just represent the moment at which i hit "save" and went off to do something else. these are mostly experiments with music programming using ORCA and other tools.
listenfeel free to reach out for collaborations, questions, or just to chat about shared interests.