Skip to content

Software Design

This page summarizes software and tooling I have designed or built over time. It is not intended as a portfolio or a catalog of technologies. Instead, it highlights recurring problem types and the kinds of solutions I tend to build when existing tools are insufficient.

Where links exist, they are provided for reference.

Patterns I return to

Across environments and eras, the work here tends to cluster around a few recurring needs:

  • Make structured data easier to describe, validate, or transform
  • Reduce manual steps in repeatable operational workflows
  • Expose system state so failures are visible early
  • Provide small, focused utilities that do one job well
  • Build "glue" systems that bridge gaps between platforms

Data description and schema

Projects in this category focus on making datasets and text formats describable in a way that supports validation, transformation, and long-term clarity.

APIs and data utilities

These projects exist to provide narrowly scoped data services, typically focused on simplifying consumption, reducing processing cost, or providing consistent formatting.

  • Toolbox Resources: A collection of API-oriented resources used for testing, training, and validating integration software.
  • Weather API: A web API that retrieves and formats current weather observations from the National Weather Service.

Visualization and comprehension tools

Some tools exist primarily to make complex structures easier to understand.

Operational tooling and automation

This category covers tooling built to reduce manual work, increase visibility, and keep operational systems moving.

Examples include:

  • File processing and integration tooling to bridge systems and automate routine workflows
  • Monitors and checks that detect stalled processing before it becomes an operational issue
  • Utilities that validate, index, archive, or route structured integration data

Representative examples:

  • Cloud Conversions Sales Force API Connector: File processing system to move data between a warehouse system and an API, including OAuth and JSON/XML conversion.
  • File Activity Monitors: Tools to detect integration files that have not processed within expected time windows.
  • X12 File Indexer: Tooling to read and archive X12 documents based on direction, sender/receiver, and transaction type; originally implemented over a decade ago and still in active production use.
  • Bulk File Processing System: Automated processing of network file shares for ingestion and indexing into an archive system.

Small utilities and personal tools

Some projects are intentionally small: a single purpose utility that is useful because it removes friction.

Examples include:

  • Facilitating Fabulous Fantasy Football Foolery: Helper utilities used to facilitate league management and draft operations.
  • Norfolk, VA Weather: A simple weather reporting utility illustrating practical data extraction and formatting.
  • Out To Lunch: Randomly select from a predefined list of diners.
  • Visual Decimal To Fraction: Visual relationship between decimals and common fractional measurements.
  • TimeCard-O-Matic: Calculate take-home pay based on hours worked.
  • WebVert: Simple value conversion utility.
  • Palmvert: Measurement conversion for Palm devices.

Archive and catalog systems

A recurring interest is building systems that catalog, organize, and make collections usable.

Examples include:

  • Snarky Contacts: Personal contact manager with address list generation.
  • Snarky Catalog: Home collection catalog with the ability to fetch book data from the Library of Congress.

Historical note

Some work on this page spans older platforms and toolchains. The details are less important than the recurring concerns: clarity, repeatability, observability, and operator-oriented design.