Camp Bow Wow
2022 – 2025
History
After leaving DesignInk, I quickly found a job as a Senior Developer with Camp Bow Wow. Well, technically, I was hired for a senior position and promised the title and pay bump after a few months of proving myself. Within a couple of months, however, our entire department was let go by the new company president and replaced with contractors — except for me and one other senior developer. I kept my head down and became increasingly familiar with Symfony, the framework in use at the company, and began drafting solutions to address our backlog of issues. For several months, I helped complete ongoing projects and contributed actively to Scrum meetings.
We two “senior” developers were tasked by our new contracted supervisor to research how to implement microservices to stop the expansion of the monolithic codebase used across all 200+ franchises — known internally as Data Dawg. After researching the six pillars of the AWS Well-Architected Framework, I concluded it would save both time and money to reuse Data Dawg’s existing internal authentication system and stick with the technologies our team already knew. I upgraded the Docker image and created a foundation for Symfony-based microservice distribution. The idea was greenlit, and three pending projects were almost immediately implemented using it.
Around the same time, I was offered the opportunity to lead the development of a system for Data Dawg to send automated text messages to clients using a service provider called Voxie. I jumped on it, and frankly, the Voxie team was absolutely delightful to work with. We held weekly meetings with our marketing director to align business needs and track development progress. The first step I took was to abstract an older API communication system that Data Dawg used for AWS SQS into a new interface library that worked seamlessly with the existing event system. Using that and my newly designed microservice image, I successfully implemented automated text messaging in nearly all 200+ Camp Bow Wow franchises nationwide.
By early 2024, I asked for the title promotion and pay raise I had been promised over a year earlier. I was denied on the basis that the company was being sold. In February, the company was sold to Propelled Brands LLC, and about half our office was let go. Though my fellow senior developer and I once again survived the layoffs, it was heartbreaking to see so many of our colleagues go, and the workplace grew increasingly hostile — his words, but I agreed. I continued working there for another year until I was the last in-house developer remaining. I left the position in January 2025 to pursue new opportunities.
Professional Work

Symfony-Based Microservices Implementation
Docker
Symfony
Microservices
As one of the first projects to tackle of my own initiative, our team was tasked with brainstorming ideas for how to begin converting our monolithic internal program — dubbed Data Dawg — into microservices, It was my conclusion that because of the expertise retained by the years of knowledge documentation and practice across our team of in-house and contract developers that we should use as much of the same technologies as we could for consistency and easy of facilitation without outside expertise. Using internally developed tools would allow us portability as well, not being bound to a proprietary commercial format. After diagramming the ideal flow of information across API boundaries considering the 6 pillars of the AWS Well-Architected Framework, I proposed my solution to the team and leadership. Garnering a positive reception, I stripped down the original, outdated Data Dawg Docker image to the bones and began upgrading the packages and configuring communication protocols, as well as setting up a CI/CD cycle that integrated with our current sprint and release process. With the help of my friend and coworker, Rob — who worked IT, we designed a private network we could distribute these images across which was only allowed communication access by the existing applications using our internal authentication. 3 new projects were immediately initiated and completed using this design pattern and the development, which made me very happy.
QMessage API Library
PHP
Symfony
Abstraction
Packagist
Confluence
As an almost-in-between step for the microservice development transition and being able to adequately begin development on the SMS project I had elected to spearhead, I took a look towards the aging code Data Dawg currently interacted with an existing microservice system with for posting SQS messages in AWS to send to Emma — the company’s chosen email marketing system. It was my intent to mimic the same patterns and verbiage used in the code so that the integration into Data Dawg would work out-of-the-box with the existing event handler system. A few weeks of note taking yielded a wonderful diagram describing what could be designed as a reusable system for sending API requests. This proved to be a useful teaching tool for the team across several R&D sessions where I was able to shed a lot of light on internals of the system which had lost their original development knowledge and had spent a few years untouched for fear of breaking something. I developed out what was called the “QMessage” library (named after the Q in SQS) which could be included in microservices projects by simply using Composer. The company agreed to fund the use Private Packagist to distribute library updates, which worked very will with the Bitbucket pipelines we had set up for CI/CD. Though I never had the opportunity to upgrade the original system the library was named after, it was a crucial tool in developing the Voxie microservice.


Voxie API Integration
PHP
Symfony
APi
Bitbucket
Team Leadership
Product Ownership
I consider this project my crowning achievement during my tenure at Camp Bow Wow. My dog, Knuckles (pictured left), also considered coming into the office and representing our team alliance as a fun part of his time there! There was a decent amount of programming involved on my part to initialize the project and connect the pieces as I had been envisioning since my work on the microservice concepts, but I think most of the work came from collaborating with both the Voxie team and our upper-management to interpret ideas and gather information about the Voxie platform to succinctly design API interfaces from our Data Dawg system to their servers. Not consequently, but during my development of this all, I suffered a heart attack and was hospitalized for a couple days. Despite this trial and some decreased productivity, I did meet my agreed deadlines. Once the basis for the Voxie microservice had been established and integrated into our deployment cycle, I was able to begin teaching the team how to develop for the new service. Using sprint epics in Bitbucket, I laid out detailed development issues and test notes to dole out to the team, working with the product owner to balance estimated sprint points with our team commitments. All of the requested features from management were developed out, and most of the 200+ franchises have adopted the SMS functionality.
Data Dawg Support
PHP
Symfony
MySQL
Git
Unit Testing
Release Mgmt.
Support
QA
While I am very proud of the work I led at the company, it was no small part of my time that I spent maintaining the Data Dawg application. Being a regular contributor to the sprint cycle was a normal part of life, and I had points to fill out every week too. With every new class and feature we introduced, developers were expected to write unit tests to ensure safe functionality and future-proof code. Release manager responsibilities were given out on a rotating basis to all developers to keep the entire team apprised of release highlights. Running QA tests with TestComplete was also an alternating responsibility for the team. Additionally, developers were rotated out on a weekly basis to provide working support to the actual support team and help solve issues that came up in real time. I gained much experience in writing SQL queries as data designs and fixes, which were implemented both directly and as Symfony commands. While properly planning foreign key and index design has always been important to me as a query designer, I also grew to love CTEs as selection results to make query code more readable. Though it was not the highlight of my time at Camp Bow Wow, the work was very fulfilling and taught me a lot as a developer and team member.
