Skip to main content
Tumulty Web Services home page
Peter Tumulty

Peter F. Tumulty

AI-Driven Technical Product Management & Engineering

Hello, I'm Peter allow me to introduce myself. I am a technologist above all else. My experience whether personal or professional has lead me to touch all sorts of areas of tech. I've done some help desk work; setting up computers and printers. I've done some IoT work and networking. I've written programs that analyze complex data. I've even trained some AI models.

However, most of my experience lies in full-stack web development. I've built everything from user experiences that reach tens of thousands of people a month to interconnected systems that automate processes, and deliver complex content. The purpose of this site is to share the outcomes of projects I've had best the time working on.


Projects

  1. Legacy App Migration to a New Stack, Built with AI

    Personal

    Took an educational photo-gallery app designed 10+ years ago and rebuilt it on a modern stack I had never used, with Claude as a partner. That app had been archived and no major updates since 2015. When it first ran it had 3 high-severity vulnerabilities in its upload dependencies, 9 packages it used but never listed in dependencies, and failed to start on a clean install. I checked each result by hand, threw out two bad performance measurements, and confirmed deletes remove both the record and the stored file. Dependency checks now find 0 vulnerabilities, a fresh clone runs locally in 16 seconds with 13 commands, and compression cut CSS from 232 KB to 49 KB.

    Angular · ASP.NET Core · Azure Cosmos DB · Blob Storage · Claude Source (opens in a new tab) Baseline : Legacy App Migration to a New Stack, Built with AI Results : Legacy App Migration to a New Stack, Built with AI

  2. AI-Assisted Migrations at Scale

    Between 2024 and 2025 our team's workspace needed several platform-level updates, and until they were done we couldn't release new features. The timing was bad: we were also slated for a massive feature update before the end of the year. I presented a plan to my manager and our staff engineer to let me automate the updates with agentic workflows and custom AI skills, so the team could stay on the feature work. I finished each update 3 to 6 weeks ahead of schedule, with minimal assistance from the team beyond reviewing PRs.

    Agentic Workflows · Parallel Agents · Agent Skills · CI/CD

  3. Law Firm Web Platform: Monolith to Headless

    As a full-time technical product manager and engineer at a law firm, I owned a monolithic WordPress site on $200 a month hosting that kept hitting its tier limits and crashing. We were at a point where we needed to get out of the routine of just keeping the site stable and start driving lead generation. I proposed a plan that would solve both problems. First, a decoupled architecture: the front end moved to a Next.js app on Vercel hosting, and WordPress moved to a $10 a month DigitalOcean server with a $20 managed MySQL database. This was a success because hosting fell from $200 to $30 a month. Second, since I could write code, I wrote custom scripts and microservices to integrate Mailchimp and HubSpot and avoid paying for their premium plugins and marketing packages. Overall, the whole platform, marketing tools included, cost $130 a month less than the old hosting alone.

    Digital Ocean · Next.js · Node.js · Vercel · WordPress GraphQL · MySQL · GitHub Actions · Mailchimp · HubSpot Site (opens in a new tab)

  4. High School Hall of Fame: Redesign & Migration

    As an independent consultant, I rebuilt the website for the a non-profit high school alumni hall of fame group. The old site was hand-written HTML: adding one inductee meant editing up to 107 files, because the navigation was copied into every page, and the copies had drifted out of sync (88, 76 and 63 names on different pages). It ran on plain HTTP, had no mobile layout, and in 2020 its homepage still congratulated the class of 2016. I scoped the work in three phases (wireframes, development, then testing), and the committee approved the designs before I wrote any code. All the content now lives in one data file that generates every page, and I moved the site off paid hosting onto a free tier, so the committee pays nothing to keep it online. Adding an inductee takes 1 file instead of 107, the yearly content update takes me about 30 minutes, the whole class of 2026 went live in one change, Accessibility rose from 53 to 96, SEO went from 82 to 100, and all 141 inductees are served over HTTPS.

    Next.js · Cloudinary · Vercel · Accessibility · SEO Baseline : High School Hall of Fame: Redesign & Migration Results : High School Hall of Fame: Redesign & Migration

  5. Unleashed Potential: Headless CMS Rebuild

    A friend referred me to a life coach whose site on a popular website builder cost her $240 a year, was hard to manage, and still didn't give her the marketing and SEO she wanted. After a discovery meeting about what she wanted the site to do, I proposed a plan: move off the builder, manage her own written content in a CMS, and bring me in for design updates. Once the site was on the new platform, we set up technical SEO, link building, a media (blog and podcast links) section on the site, search engine indexing, and Google Analytics, none of which she had before and all of which would have meant buying extra packages. Her yearly cost dropped from $240 to $16, the price of her domain, and the move has since paid for itself. Later rounds of updates raised Lighthouse performance from 73 to 88.

    Next.js · TypeScript · Contentful CMS · SEO Site (opens in a new tab) Baseline : Unleashed Potential: Headless CMS Rebuild Results : Unleashed Potential: Headless CMS Rebuild

  6. Shopify Order Automation

    Shopify stores often lean on manual steps to keep orders moving. On one project, I designed and led the build of a backend service that reads orders from the store and creates shipping labels automatically, then worked with customer service to automate return labels too. I ran twice-weekly standups, tracked the work in Linear, and tested against the live store before launch. On another, I built a tool that takes a CSV upload and updates item quantities across many orders at once through Shopify's GraphQL API, then reports which updates went through and which need a manual fix. In both cases, work that used to be done by hand now runs on its own.

    Node.js · Express · Shopify GraphQL · Shippo API · MongoDB · Heroku · DigitalOcean · Linear