Professional profile
Full-stack software engineer with two decades of professional and independent experience developing business applications, modernizing legacy systems, integrating disparate data sources, and building domain-specific products. Technical background spans frontend architecture, database-driven applications, API and reporting workflows, and complex data cleanup. Led complete frontend delivery for a production healthcare regulatory reporting system and independently built numerous applications spanning tournament management, media cataloging, alumni data, and game reconstruction. Recently incorporates AI coding agents into a test-driven, human-reviewed workflow. Experienced across W-2 consulting engagements, enterprise product teams, nonprofit systems, and self-directed software development.
Core engineering strengths
- Full-stack delivery: JavaScript/TypeScript, HTML/CSS, Angular, React, PHP, Python, Perl, Java, C#; responsive UX, APIs, SQL databases, integrations, and testing.
- Data-intensive applications: Relational modeling, database-backed reporting, scheduled ingestion, entity resolution, reconciliation, format conversion, legacy-data normalization.
- Modernization & troubleshooting: ColdFusion-to-.NET work, JavaScript-to-TypeScript conversion, batch-job adaptation, integration debugging, error handling, application maintenance.
- Engineering quality & leadership: Automated unit/contract/end-to-end tests, code review, requirements translation, cross-functional work, mentoring two junior engineers at Cigna.
- AI-assisted engineering: Codex-guided implementation and refactoring; AGENTS.md and other context files, roadmaps, iterative specification, tests, developer automation, and manual verification.
Professional experience
Independent Software Engineer & Product Developer
Charlotte, NC; independent engineering and product development, with dated projects listed below.
- Designs, develops, tests, and deploys independent web products; combines established full-stack experience with agent-assisted iteration, architectural decisions, and domain-specific data validation.
Sitzmark | Independent Full-Stack Product (modern iteration; origins c. 2007) | Fall 2025–2026
View in timeline →- Designed and built the modern Sitzmark web application for competitive Scrabble player histories, ratings, archives, profiles, social discovery, and interactive word-game features using React/Vite, Python, and PostgreSQL. The product evolved from Badqoph, an earlier Scrabble community directory begun around 2007.
- Modeled historical results and cross-organization player identities where aliases, spelling variation, duplicated records, and inconsistent identifiers prevent reliable automated matching; incorporated domain knowledge, source provenance, and human-review workflows for ambiguous records.
- Built administrative and source-reconciliation features for corrections and provenance, plus player browsing, account and preference workflows, content aggregation, and experimental game interfaces.
- Developed a proof-of-concept game reconstruction pipeline combining optical character recognition of a Scrabble board photograph with a move list to produce a GCG game record and move-by-move playback; prototyped rather than released as a general-purpose feature.
- Added database migrations, backend tests, frontend Vitest tests, Playwright smoke tests, structured logging, production configuration/deployment scripts, and backup/restore documentation.
- Directed iterative AI-assisted development using Codex, Markdown design and roadmap documents, project rules/context files (including AGENTS.md), and npm commands for development, testing, and release tasks; reviewed outcomes and retained responsibility for correctness and design decisions.
- Reworked player search and rankings by moving repeated computations into PostgreSQL materialized views. In local tests, a previously slow player-dashboard request improved from roughly 10 seconds cold to about 0.26 seconds after the later optimization work; results vary by query and environment.
- Investigated database normalization regressions where repeat schema application could erase resolved player links, and where merging duplicate players could delete the corresponding review decisions. Repaired data, updated migration behavior, and added regression and integrity checks.
- Worked with datasets containing millions of historical records (approximately four million rows) and built tools to resolve player records across Scrabble organizations.
Software Engineer, Full Stack | AuditBoard | Jul 2021–Mar 2023
View in timeline →Remote | Enterprise audit, risk, and compliance applications
- Maintained and modified application components in a complex Ember, TypeScript/JavaScript, and Node.js codebase; investigated and resolved bugs and cross-service integration issues.
- Converted existing JavaScript implementations to TypeScript and made targeted schema, field, and application changes.
- Documented API endpoints and behavior for enterprise clients and collaborated with other teams on client integration questions and migration troubleshooting; work included documentation for major financial-services customers.
W-2 Software Engineering Contract Engagements | 2015–2021
Successive staffing-agency assignments across healthcare, telecom, financial services, and enterprise systems. Individual client engagements and dates retained below; not a single continuous legal employer.
Cigna | Lead Frontend Developer, BEAM | Mar 2020–Mar 2021 | Remote
View in timeline →- Owned frontend design and implemented the Angular/TypeScript, HTML, and SCSS user interface for BEAM, a production healthcare utilization-management regulatory reporting application across state-specific compliance domains; worked in a HIPAA-regulated healthcare environment.
- Designed report-list and generation-status screens plus dialogs initiating new reports; the workbooks documented state-specific utilization-management decisions, including reasons for coverage denials. Coordinated UI behavior and service integration with a separate backend team and lead architect.
- Expanded beyond the assigned frontend lead role by learning Python and implementing Flask-side application-flow logic, error handling, and regulatory Excel-report components within the established backend architecture.
- Contributed reporting implementations and updates for six state-specific reports covering Arkansas, Rhode Island, Delaware, Colorado, Maine, and Maryland; domains included prior authorization, utilization review, grievances, and related regulatory reporting.
- Transformed Teradata SQL results into state-specific spreadsheets using pandas, StyleFrame, and openpyxl, including data restructuring, cell/worksheet formatting, and dynamic section layouts; authored extensive Maryland formatter logic that repositioned tables and merged cells for variable-length report sections.
- Implemented or contributed shared Report-class logic, report routing, error types, metadata recording, and tests; worked within asynchronous Kafka processing and Ceph S3 report-storage workflows.
- Coordinated with UI/UX, backend engineers, and the lead architect; mentored two junior developers, reviewed code, and provided implementation standards and feedback.
- Participated in architecture discussions and frontend testing using Jasmine, Karma, and Cypress. Worked hands-on with Okta, Jenkins, and AWS components of the development environment; BEAM reached production.
Charter Communications | Lead Web Developer | Apr–Aug 2019 | Charlotte, NC
View in timeline →- Designed and implemented the Management Leadership Development Portal, used to track employees participating in a leadership development program, in a three-person engineering team.
- Created UI designs/prototypes, responsive Angular/TypeScript and SCSS views, database schemas, Java / Spring Boot REST services, and tests; worked directly with stakeholders on business requirements.
- Also contributed to a CMS search feature and an ESC cross-functional support application.
Clean Slate | Web Developer | Jul–Nov 2018 | Remote
View in timeline →- Maintained and enhanced legacy PHP/JavaScript healthcare billing and data-management applications at an addiction-treatment organization, implementing interface and MySQL changes in a healthcare environment handling sensitive information.
- Began C# rewrite work on a claims-billing interface integrated with Athena; the initiative was interrupted by a staffing change before its completion.
Camping World | Web Consultant | Jan–Jun 2018 | Remote
View in timeline →- Maintained customer-facing e-commerce features, including clothing color-swatch presentation and product lookup/display behavior using JavaScript/jQuery and web application technologies.
- Updated Perl/PHP workflows and data-transfer scripts associated with importing and distributing corporate product and pricing information.
- Worked on targeted Adobe Analytics and Tealium issues.
Chase Paymentech | Application Developer | Jun 2016–Apr 2017 | Tampa, FL
View in timeline →- Developed and maintained enterprise application and batch-processing workflows in an Oracle/PLSQL and .NET environment, using Control-M to configure scheduled jobs and coordinate production promotion requests.
- Adapted legacy Perl, KornShell, and Java wrapper scripts toward Perl-based stored-procedure execution in preparation for an Oracle Exadata migration; implemented assigned changes rather than architecting the migration.
- Helped teammates navigate Control-M configuration and job-development procedures; participated in Agile ceremonies and monthly releases.
Harris Corporation | Software Engineer III | Apr 2015–Jan 2016 | Palm Bay, FL
View in timeline →- Developed internal departmental web applications with C#/.NET MVC, Entity Framework, LINQ, JavaScript/jQuery/Kendo, and Microsoft SQL Server.
- Rewrote legacy ColdFusion functionality for a departmental parts-search database and converted other applications and pages toward .NET/modern HTML/CSS structures.
- Participated in code reviews and source control using Crucible/SVN and continuous integration using CruiseControl; performance improvements were not quantified.
Database / Integration Developer | Governor’s School Foundation of NC | Jul 2017–Mar 2019
View in timeline →Part-time, remote; overlapped other employment
- Normalized and transformed an alumni contact dataset of approximately 38,000 records for use in outreach and fundraising, including names, addresses, telephone numbers, and email addresses.
- Migrated flat-file records into MySQL, integrated a WordPress Participant Database system, and developed Perl/DBI and webhook-based processes to synchronize data with Little Green Light CRM.
- Implemented scheduled jobs and WordPress plugin adjustments to support record editing and data propagation; Little Green Light later became the primary system of record.
Developer | Habilitation Software, Inc. | Oct 2014–Jan 2015
View in timeline →Monroe, NC
- Developed a civic engagement/crowdsourcing application with C#, SQL Server, HTML/CSS, JavaScript, and functionality for registration, authentication, surveys, forums, usage statistics, and data aggregation.
Independent software and long-running projects
Scrabble Rotisserie | Creator / Full-Stack Developer | 2010–2019
View in timeline →- Designed, developed, and maintained a fantasy-style tournament application over approximately ten annual Scrabble Championship cycles, allowing participants to draft teams, view player statistics, follow standings, and compete for prizes.
- Built Perl-based data ingestion and scheduled roster/standing updates, PHP user-facing workflows, MySQL persistence, and JavaScript/HTML/CSS interfaces.
- Handled domain-specific data-quality problems involving irregular player names, changing divisions, last-minute withdrawals, and reconciliation of roster records against official tournament data.
- Iterated annually in response to changes in competition structure and participant needs; served a real niche community rather than functioning solely as a technology demonstration.
Podcast Dynamite | Creator / Full-Stack Developer | 2017–2019 active development; later intermittent
View in timeline →Podcast Dynamite
- Built a podcast discovery/catalog prototype from scratch, originally envisioned as an IMDb-style directory for podcasts, with episode lists, metadata, and original episode-minute summaries.
- Seeded the Harmontown catalog from a personally maintained /r/harmontown wiki indexing more than 360 episodes; historical metadata was later used by other community cataloging efforts.
- Collected and synchronized episode information from RSS feeds, using feed identifiers to resolve duplicate episodes and maintain stable records across updates.
- Repeatedly rebuilt the application across several stacks, including a React/PHP/MySQL implementation and a later Angular/Java Spring Boot/jOOQ/PostgreSQL version; used Perl and cron for ingestion and DigitalOcean for hosting.
Wonderfish Films | Next.js Portfolio Application | Recent active development: 2026
View in timeline →Website: Wonderfish Films
- Developed a film-production and editing portfolio in Next.js 14, TypeScript, and React using the App Router; implemented file-based routing and shared layout composition with prerendered Server Component pages and interactive client components.
- Implemented same-origin Next.js Route Handlers for CAPTCHA and contact submissions that proxy to a separate service, with uncached requests, a 15-second timeout, payload-size guard, status propagation, and error responses.
- Used the Metadata API for per-page titles, descriptions, canonical URLs, and a typed sitemap; used next/image for responsive images and runtime optimization validation.
- Authored self-hosted standalone release scripts for Linux packaging, dependency checks, checksummed artifacts, SSH transfer, remote smoke testing, and systemd/release verification; configured a GitLab build job.
Anagrams on Stream | Creator / Developer | April 2021
View in timeline →Source repository
- Built a Twitch-integrated anagram game in Go 1.16 with tile draws, scoring, player state, dictionary checking, and a chat bot using Twitch IRC authentication, parsing, keepalives, and reconnections.
- Loaded a Scrabble-style lexicon from SQLite (
go-sqlite3) into memory and used a trie to validate words. - Built an NW.js desktop display using HTML, CSS, and vanilla JavaScript, consuming JSON emitted by the Go executable.
- Ran and tested the game on a personal Twitch stream; this was a working prototype rather than a hosted commercial application.
Badqoph Directory | Creator / Developer | 2007–2023; legacy content now in Sitzmark
View in timeline →- Aggregated and indexed Scrabble community blogs, player references, and useful online resources with Perl scripts, SQL, XML feeds, and scheduled updates from blogging platforms.
- Became the direct conceptual and data precursor to Sitzmark. Its surviving community-blog archive now exists as a smaller legacy directory within the modern product, rather than the same continuously deployed application.
DigiYear | Independent Prototype / Product Concept | Concept developed c. 2006; application prototype c. 2016
View in timeline →- Conceived an interactive video-yearbook system enabling point-and-click access to students’ candid recorded greetings, predating widespread smartphone video and modern social-media distribution.
- Developed a later web application using Angular, Java/Spring Boot REST APIs, and PostgreSQL; commercial adoption or broad production release is not claimed.
Additional Independent and Freelance Work | 1997–2014; selected
View in timeline →- The 23rd Frame (2006–2007): Built multi-user article creation, editing, and collaboration features.
- Gigaboard (1999–2002): Created a discussion-board platform using PHP and MySQL; additional early freelance work included registration, protection, shopping-cart, and publishing applications.
- Eduweb (1997–1999): Developed JavaScript educational activities for children covering mathematics, science, and art history.
- myfriendpam.com (1999): Developed a Perl/MySQL matchmaking website; created the 1999 website for the Blue & White UNC–Chapel Hill political magazine.
- Boston Area Scrabble Tournament (2010): Developed event promotion and registration features; Encore Consignment (2013–2014): Built a PHP/MySQL website displaying merchandise.
Additional technical and editorial contribution
Paid Technical Reviewer | Wrox Press, Beginning XHTML | 1999–2000
View in timeline →- Reviewed book material for technical correctness, applying early web standards and markup expertise to a commercially published technical resource.
Technology inventory
- Core strengths: JavaScript, SQL, Perl, HTML, and CSS; substantial professional experience with PHP, Python, Java, C#, and TypeScript.
- Additional hands-on language: Go (Twitch integration project, 2021).
- Frontend/frameworks: Angular, React/Vite, Next.js 14 (App Router, server/client components, static generation, Route Handlers, Metadata API, image optimization), Ember, TypeScript, HTML5, CSS3/SCSS, responsive web interfaces, jQuery, Kendo, Material Design, Figma.
- Backend/integration: Node.js, Flask, Spring Boot, .NET MVC, RESTful APIs, Perl DBI, webhooks, cron, pandas, StyleFrame, openpyxl, SQL query/report pipelines.
- Databases & data platforms: PostgreSQL, MySQL, SQLite, Microsoft SQL Server, Oracle/PLSQL, Teradata; Kafka, Ceph S3, Control-M, and legacy platform migration exposure within specific enterprise roles.
- Testing, tools & delivery: Vitest, Playwright, backend unit/contract tests, Jasmine, Karma, Cypress, Git/GitLab, Jenkins, Docker, AWS exposure, DigitalOcean, structured logs, scripting, npm tooling, Codex.
- Other exposure: GraphQL tutorials; cloud and CI tools used in the specific enterprise roles described above.
Education
University of North Carolina at Chapel Hill | BA, Communication Studies (Media Studies & Production) | Minor, Creative Writing | 2005