I’m a veteran software engineer with two decades of professional experience. I approach each project with a commitment to delivering clean, maintainable code by combining deep technical expertise with a passion for solving complex problems. I am actively embracing AI and agentic coding workflows, leveraging these tools to accelerate development while applying my extensive experience to ensure quality, reliability, and sound architectural decisions.
I joined Duarte to help build and maintain Duarte AI, an AI-powered web application that assists users in creating persuasive presentations.
The application was built as a Next.js app hosted on Vercel, with two supporting microservices hosted on AWS ECS.
One microservice, the exporter (written in Python), converted LLM-generated slides into PPTX presentations. When I joined, this service was broken and only partially implemented. I refactored and completed it, which required in-depth research into the structure of PPTX files and how to programmatically create and manipulate them.
The other microservice, the converter, transformed PPTX and PDF files into images. It used LibreOffice to convert PPTX to PDF and ImageMagick to render PDFs as slide images. We encountered an issue where fonts in the slide images did not match the originals, causing text overlap. After extensive research, I implemented two solutions: updating LibreOffice to a beta version to resolve an embedded font issue, and creating a font substitution map to replace common fonts with equivalent free alternatives.
My most impactful contribution was refactoring the application to enforce LLM output adherence to JSON schemas. Previously, the LLM produced Markdown, and the application attempted to parse the required information from it, which was error-prone and unreliable.
At JazzHR (Employ Inc.), I collaborated with a team to develop a new feature called Text2Apply. JazzHR is an applicant tracking system that provides tools for companies seeking to hire new employees. Text2Apply enabled candidates to apply for jobs via SMS. My primary responsibility was implementing a REST API client to interface with the SMS service, an internal service maintained by another team at Employ. I followed the documentation and regularly consulted with the SMS service team to complete this task. Additionally, I was tasked with ensuring 10DLC compliance and contributed to the development of related front-end React components. I worked with my team to design the overall API and database schema for the feature, as well as to build automated tests and a test database.
While at Contextual Code, we migrated all our web applications to Platform.sh, a managed hosting provider that automatically builds the hosting environment from a configuration file. For developers at Contextual Code, spinning up a local development environment was always a challenge, and there was always uncertainty whether changes that worked locally would function correctly in production. I realized that the Platform.sh configuration file provided detailed information about the hosting environment, making it possible to build a tool that could recreate that environment locally using Docker. Over the course of a weekend, I built a working prototype. It was well received by my colleagues, and I was given the greenlight to continue development. It eventually became a crucial tool for all developers at Contextual Code. It was named Platform.cc, with CC standing for Contextual Code, a play on the service it was based on.
Around this time, many developers at Contextual Code switched to M1 Macs. Docker had poor performance on these machines, so I decided to build a new tool that could operate without containerization. This tool, named PBrew, used Homebrew to manage dependencies and made it possible to install multiple versions of all the software needed for a local development environment. It mapped all services to custom ports to ensure multiple versions of the same software could run simultaneously. While this approach sacrificed parity with the Platform.sh production environment, it was very fast and made local development significantly more efficient.
https://github.com/chompy/platform_cc https://github.com/chompy/pbrew
A web application that helps cancer patients identify optimal treatment options. I collaborated with a fellow developer and a team from the University of Pennsylvania to build a questionnaire driven by a sophisticated logic engine. This project involved rebuilding their existing ColdFusion system using PHP with the Symfony framework and the Ibexa CMS. We leveraged the CMS to define the nodes within the logic engine, which typically represented questions and answers for patients or their care providers. Each node included conditional logic to dynamically determine which subsequent questions and answers to display. Patient responses were then used to generate a comprehensive report, also constructed using the same logic tree system. Later, we expanded the application to interface with FHIR APIs and developed a containerized version for distribution to third-party partners. Through rigorous automated testing, we successfully launched the application with no significant bugs or issues.
This was my first major project at Contextual Code. I collaborated closely with both my colleagues at Contextual Code and directly with the Modern Language Association (MLA) to build and maintain their website.
The site was powered by the Ibexa CMS (formerly eZPublish) and featured a sophisticated member signup flow, plus a full-fledged bookstore that blended Shopify integrations with custom e-commerce solutions. Additionally, we worked with the MLA’s own developers who built a custom API that allowed us to fetch and display data from the MLA’s internal database.
I launched my software development career by volunteering with the Tallahassee Film Society, helping them rebuild and host their website. Now, 20 years later, I’m still proudly maintaining it.
The site has evolved several times over the years: it began as a custom PHP build, later migrated to WordPress, and now runs on Django. Through each iteration, the core requirement has remained the same: a simple backend where staff can easily add new showings. The site also features a Shopify integration for seamless ticket sales.
Discord soundboard bot with a web interface for playing and managing sounds.
Application for displaying text on a screen that can be updated via the web. Used to display recipes.
Go library for parsing and rendering strategy boards from Final Fantasy XIV. (Example: https://go14.lol/b/4)
Web application for viewing game play statistics for the popular online video game, Final Fantasy XIV.
https://github.com/chompy/ffliveparse_server https://github.com/chompy/ffliveparse_act_plugin
An early attempt to build a library that utilized AI to generate reports based on information collected from codebases and a web browser controlled by the AI via Selenium. It employed a workflow system to determine which reports to run.
My attempt to build a HTTP/FastCGI proxy with a cache extension written in Go. The cache was meant as a very simple and lightweight substitute to Varnish and supported edge side includes (ESI).
A family calendar Arduino project that displayed upcoming family events and photos from a micro SD card. It utilized an Arduino, a TTF shield, and a 3D printed case. These were given to family members as gifts.
A C++ library and toolkit for 2D game development created mostly as a learning exercise.
A top-down fighting game featuring vibrant, stylized characters, built with Panda3D, a free and open-source game engine.