{
  "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
  "basics": {
    "name": "Joseph O'Driscoll",
    "label": "Web Application Consultant",
    "image": "https://jodriscoll.com/portrait.webp",
    "url": "https://jodriscoll.com/",
    "summary": "I have spent the past decade reinventing how I understand and build web interfaces, while the platform underneath them kept changing. Keeping up has been a challenge. I still push the work in front of me, whichever layer of the stack it sits on, and the part I care about most is mentoring developers at any level so they can see where they fit in a field that does not sit still. I use AI to push how much can ship in a business day, but I never let it write code I couldn't read, explain and troubleshoot without it. If it went away tomorrow, the work would slow down, not stop. I own Nomadic Digital. Independent work goes back to 2010, and the practice has run since January 2016: on the side while I was full time at Jellyfish and Mindgrub, and full time since May 2023.",
    "location": {
      "region": "Florida",
      "countryCode": "US"
    },
    "profiles": [
      {
        "network": "GitHub",
        "url": "https://github.com/jodriscoll",
        "username": "jodriscoll"
      },
      {
        "network": "LinkedIn",
        "url": "https://www.linkedin.com/in/jtodriscoll",
        "username": "jtodriscoll"
      }
    ]
  },
  "work": [
    {
      "name": "Nomadic Digital LLC",
      "position": "Owner",
      "location": "Florida · Remote",
      "startDate": "2016-01",
      "highlights": [
        "I own Nomadic Digital. It has run since January 2016: on the side while I worked full time at Jellyfish and Mindgrub, and full time since May 2023.",
        "I use what I know of a client's current systems to improve them, and I build something custom when that is what they need.",
        "I manage projects for manufacturing, technology, and B2B clients. The current client work is held inside this practice."
      ]
    },
    {
      "name": "Taoti Creative",
      "position": "Solutions Engineer",
      "location": "Washington, DC · Remote",
      "startDate": "2023-07",
      "summary": "Consultant. Held under Nomadic Digital LLC",
      "highlights": [
        "I consult for Taoti Creative as a solutions engineer on the client work that studio delivers.",
        "The contract is remote from Washington, DC, and it has been open since July 2023.",
        "It is held under Nomadic Digital, at the same time as the other clients of the practice."
      ]
    },
    {
      "name": "Sageworx",
      "position": "Solutions Architect",
      "location": "New York, NY · Remote",
      "startDate": "2023-08",
      "summary": "Consultant. Held under Nomadic Digital LLC",
      "highlights": [
        "I consult for Sageworx as a solutions architect, remote from New York, NY.",
        "The engagement started in August 2023 and is still open.",
        "It is a contract under Nomadic Digital, carried alongside the other current clients rather than as a separate career."
      ]
    },
    {
      "name": "Mindgrub Technologies",
      "position": "Managed Services Consultant",
      "location": "Remote",
      "startDate": "2022-01",
      "endDate": "2022-06",
      "summary": "Consultant. Held under Nomadic Digital LLC",
      "highlights": [
        "A short consulting contract through Nomadic Digital, separate from my earlier full-time role at Mindgrub.",
        "I helped service and maintain Mindgrub's client web apps through its managed services team while I moved from Mindgrub to Rehab.",
        "The contract ran from January to June 2022."
      ]
    },
    {
      "name": "millermedia7",
      "position": "Web Engineering Lead",
      "location": "Ithaca, NY · Remote",
      "startDate": "2023-06",
      "summary": "Contractor. Held under Nomadic Digital LLC",
      "highlights": [
        "I am the web engineering lead for millermedia7, on contract, remote from Ithaca, NY.",
        "The role started in June 2023 and is still open.",
        "I hold that lead seat inside Nomadic Digital while the rest of the client work runs with it."
      ]
    },
    {
      "name": "PDA.nyc",
      "position": "Open Source Solutions Engineer",
      "location": "Brooklyn, NY · Remote",
      "startDate": "2024-08",
      "summary": "Contractor. Held under Nomadic Digital LLC",
      "highlights": [
        "I am the open source solutions engineer for PDA.nyc, on contract, remote from Brooklyn, NY, and the public site is on Webflow.",
        "The engagement started in August 2024 and is still open.",
        "It sits under Nomadic Digital, concurrent with SAUCE.nyc, which shares this start."
      ]
    },
    {
      "name": "SAUCE.nyc",
      "position": "Open Source Solutions Engineer",
      "location": "Brooklyn, NY · Remote",
      "startDate": "2024-08",
      "summary": "Contractor. Held under Nomadic Digital LLC",
      "highlights": [
        "I am the open source solutions engineer for SAUCE.nyc, on contract, remote from Brooklyn, NY, and the public site is on Webflow.",
        "The engagement started in August 2024, the same month as PDA.nyc, and it is still open.",
        "It is held under Nomadic Digital with that shared start, not a separate one."
      ]
    },
    {
      "name": "Ancient LLC",
      "position": "Ancient UI Architect Lead",
      "location": "Brooklyn, NY · Remote",
      "startDate": "2026-07",
      "summary": "Contractor. Held under Nomadic Digital LLC",
      "highlights": [
        "Through Ancient LLC I'm the UI architect lead on PepsiCo's Pepviz, the single client collaboration of the engagement.",
        "I work with one international designer to build uniquely designed marketing landing pages for Pepviz's messaging and brand communications.",
        "Each page is hand-authored semantic HTML, one SCSS file and a small vanilla JavaScript file, staged on CodePen so the client can paste it straight into their own CMS."
      ]
    },
    {
      "name": "ZUGU",
      "position": "Design and Implementation",
      "summary": "Held under PDA.nyc",
      "highlights": [
        "I assisted ZUGU with the product release of incaseofdeath, on the design and the implementation.",
        "That release led me into supporting the go-live and the product branding.",
        "ZUGU was a client of PDA.nyc, not of Nomadic Digital; I did this work through the PDA.nyc engagement."
      ]
    },
    {
      "name": "Rehab LLC",
      "position": "Director of Web Operations",
      "location": "Remote",
      "startDate": "2022-10",
      "endDate": "2023-05",
      "summary": "Contractor",
      "highlights": [
        "Took charge of optimizing and streamlining a dated Symphony application, successfully reducing its codebase by over 60% through thorough cleanup and optimization measures.",
        "Effectively oversaw the implementation of GitHub Actions and CloudFlare Pages technologies, enhancing our development workflow and optimizing the deployment of our website.",
        "Played a crucial role in reducing AWS hosting costs for the business, resulting in a significant decrease of over 50% in monthly expenses.",
        "Successfully eliminated a single point of failure in security across multiple web applications under my management at Rehab.com, enhancing their resilience and safeguarding them against potential vulnerabilities.",
        "Managed multiple Vue.js applications, where I diligently implemented security enhancements, optimized code, and improved performance to deliver exceptional end-user experiences.",
        "Responsible for overseeing an internal administrative platform, leveraging Vue.js, AWS Amplify, Lambda, Cognito, and GraphQL technologies, ensuring efficient operation and smooth functionality.",
        "Played a pivotal role in facilitating the sale of an LLC by assisting in the seamless transition of several technical applications, ensuring a smooth handover and continuity of operations for the new owners.",
        "I used Python to aggregate the data for the sale of the company, the domain, and its assets, and I replaced a pre-existing dashboard with a more modern automation and management system."
      ]
    },
    {
      "name": "Rehab.com",
      "position": "Senior Performance Engineer",
      "location": "Remote",
      "startDate": "2022-01",
      "endDate": "2023-10",
      "summary": "Contractor. Held under Rehab LLC",
      "highlights": [
        "Collaborating closely with Core Web Vitals and performance auditing tools, I meticulously fine-tuned the performance of a Symphony web application, aiming to achieve a higher ranking for organic users by delivering an optimized and seamless user experience.",
        "Led adoption and implementation of AGILE methodologies for a small business, driving efficient collaboration and adaptability in our processes.",
        "Adeptly managed the day-to-day operations of multiple web applications, addressing a wide range of issues, including performance optimization, bug resolution, SEO enhancements, payment integration, content management, and many other challenges that arise, ensuring smooth and efficient functionality across all products.",
        "Successfully developed and delivered a Vue.js application seamlessly integrated with Symphony, empowering patients to curate treatment providers tailored to their needs and preferences."
      ]
    },
    {
      "name": "MentalHealth.com",
      "position": "MentalHealth.com",
      "startDate": "2023-02",
      "endDate": "2023-10",
      "summary": "Held under Rehab LLC",
      "highlights": [
        "Part of the Rehab LLC work in this window."
      ]
    },
    {
      "name": "Cicada Capital",
      "position": "Cicada Capital",
      "startDate": "2023-03",
      "endDate": "2023-10",
      "summary": "Held under Rehab LLC",
      "highlights": [
        "Part of the Rehab LLC work in this window."
      ]
    },
    {
      "name": "Mindgrub Technologies",
      "position": "Senior Software Engineer",
      "location": "Hybrid",
      "startDate": "2017-08",
      "endDate": "2022-01",
      "summary": "Full-Time",
      "highlights": [
        "Responsible for building ground-up user interfaces within WordPress, Drupal, React, and Angular frameworks utilizing MySQL, LocalStorage, MongoDB, AWS, GitLab CI, and Composer configurations.",
        "Leveraged RESTful API services leveraging JSON, AJAX, LocalStorage, and SessionStorage.",
        "Utilized AGILE and Waterfall methodologies to accomplish a variety of project deliverables.",
        "Conducted observational user testing, reviewed designs against usability heuristics, and performed performance audits on various web applications.",
        "Collaborated on usability and accessibility best practices for WAI-ARIA, 508 compliance, and ADA/AODA standards.",
        "Optimized web apps for maximum speed and scalability utilizing modern PaaS tools focused on end-user deliverability and search engine requirements (Core Web Vitals).",
        "Oversaw the UI application shell and content management of multiple Progressive Web Applications (PWAs), employing Material Design principles, manifest.json configurations, and service workers for offline caching.",
        "Delivered web applications utilizing coding best practices, code documentation, and effective source control management.",
        "Supported the vision of projects and worked closely with team members to see it through to completion.",
        "Participated in code reviews and implemented unit tests to reduce technical debt."
      ]
    },
    {
      "name": "Jellyfish",
      "position": "Senior Front-End Engineer",
      "location": "On-site",
      "startDate": "2015-07",
      "endDate": "2017-08",
      "summary": "Full-Time",
      "highlights": [
        "Developed web apps using HTML5, CSS3 (SASS & LESS), JavaScript ES5, Angular 3, Bootstrap, jQuery, WordPress, Drupal, Docker, and several other Front-End technologies.",
        "Agile (SCRUM) team member delivering regular updates and participating in daily scrums, retrospectives, and backlog pruning.",
        "Built and managed DoubleClick interactive ads.",
        "Worked closely with graphic designers, UX designers, and interactive design specialists to create rich user experiences.",
        "Introduced the adoption of CSS Flexbox and ES5 for improved user experiences and consolidated JavaScript composition.",
        "Utilized JSON as a communication protocol between the front-end and back-end, enabling seamless data exchange and integration between the two components of the application.",
        "Implemented and tested data management using MySQL, Postman, and API development/testing using Swagger.",
        "Utilized jQuery extensively for event manipulation and employed various plugins to enhance and extend interactive functionalities across multiple web applications.",
        "Efficiently managed code reviews and releases by utilizing GitHub and GitLab, ensuring smooth collaboration, version control, and quality assurance throughout the development process."
      ]
    },
    {
      "name": "kor group",
      "position": "Lead Web Engineer",
      "location": "On-site",
      "startDate": "2014-08",
      "endDate": "2015-07",
      "summary": "Full-Time",
      "highlights": [
        "Collaborated as the front-end developer with the design team to establish workflows, user personas, and website content structure, ensuring a cohesive and user-friendly experience.",
        "Applied UI and UX design expertise to contribute to the design and development process, effectively collaborating and presenting ideas to stakeholders.",
        "Utilized knowledge of browser compatibilities and responsive site design to create visually appealing and functional web and mobile interfaces.",
        "Conducted user research and user testing to gather insights and feedback, iteratively improving the user experience and optimizing website performance.",
        "Managed multiple projects and time-sensitive deadlines.",
        "Collaborated with the creative, technical, and client teams daily.",
        "Translated Photoshop/Illustrator mockups into hand-coded HTML, CSS, and JS, ensuring pixel-perfect accuracy and attention to detail.",
        "Efficiently manage multiple projects simultaneously, prioritizing tasks and meeting time-sensitive deadlines.",
        "Fostered effective collaboration with creative, technical, and client teams, actively participating in discussions and providing valuable input to achieve project goals and client satisfaction."
      ]
    },
    {
      "name": "CogoLabs",
      "position": "Interactive Quantitative Producer",
      "location": "On-site",
      "startDate": "2014-02",
      "endDate": "2014-07",
      "summary": "Contractor",
      "highlights": [
        "Collaborated with a cross-functional team of engineers, designers, and product managers to ideate, build, and launch web-based startups from inception to deployment.",
        "Demonstrated experience building responsive email templates that utilize A/B testing methodologies and have undergone rigorous HTML testing with Litmus.",
        "Developed and maintain high-quality web applications using a variety of programming languages such as Python, Ruby, Ruby on Rails, PHP, and JavaScript.",
        "Implemented engaging user interfaces and experiences through front-end development tasks, including responsive email development, HTML, CSS (SASS and Dart), and JavaScript.",
        "Stayed current with industry trends, technologies, and best practices and leveraged this knowledge to propose innovative solutions and approaches.",
        "Actively participated in agile development processes, including daily stand-ups, sprint planning, and retrospectives, to ensure efficient project execution and timely delivery.",
        "I used Python to automate internal tools that called the Uber system and distributed email across target lists."
      ]
    },
    {
      "name": "Shawmut Construction",
      "position": "Interactive Multimedia Producer",
      "location": "On-site",
      "startDate": "2013-08",
      "endDate": "2014-02",
      "summary": "Contractor",
      "highlights": [
        "Executed daily web and email production for the company, located and resolved issues, conducted quality assurance, and tested the effectiveness of campaigns through A/B testing.",
        "Performed regular updates on web pages using content management systems and standard HTML/CSS.",
        "Worked with external web developers and the internal IS&T department to facilitate fixes of website and email platform bugs, enhancements, and new development.",
        "Built, tested, and distributed emails using email management platforms, HTML/CSS editors, email service providers, and standard web browsers.",
        "Created mock-ups and designs for web pages, email templates, banners, etc., using current industry best practices.",
        "Worked collaboratively with marketing/creative departments to propose and deploy new creative/interactive marketing strategies, production methods, and design changes.",
        "Expressed a solid grasp of online and offline direct response advertising principles and CRM."
      ]
    },
    {
      "name": "Mass General Hospital",
      "position": "Interactive Web Producer",
      "location": "On-site",
      "startDate": "2010-12",
      "endDate": "2013-08",
      "summary": "Contractor",
      "highlights": [
        "Focused on producing web-ready assets and managing content across various websites using respective content management systems.",
        "Creating front-end XHTML/CSS templates for CMSs and web-based applications using design files (e.g., Photoshop, Fireworks) and adapting/repurposing existing HTML/CSS.",
        "Converting externally produced content to the appropriate electronic format and generating packages using supplied editorial content and visual assets.",
        "Supported the Assistant Director of Communications for Electronic Communications and worked on assigned projects, including limited video and multimedia production, front-end web development and design, art direction, image cropping, optimization, e-mail template development, and other tasks.",
        "Collaborated closely with the director to implement AWS hosting solutions for various web applications, ensuring optimal performance, scalability, and cost efficiency.",
        "Provided technical troubleshooting support for the Department's applications and supported the Department's e-philanthropy platform, Blackbaud NetCommunity."
      ]
    },
    {
      "name": "Aptima",
      "position": "Creative Media Specialist",
      "location": "On-site",
      "startDate": "2008-03",
      "endDate": "2010-10",
      "summary": "Full-Time",
      "highlights": [
        "Served as a Creative Media Specialist, specializing in graphical design and multimedia training implementation.",
        "Expertise in applications such as Adobe, Autodesk, Animation, and Broadcast Graphics allowed him to excel in various areas.",
        "Successfully developed courseware for the Army and Air Force, including 40 hours of Interactive Multimedia Instruction (IMI) for the Combined Arms Support Command (CASCOM).",
        "Played a vital role in converting existing CD-based training to a web-based format, contributing to the accessibility and scalability of the training materials."
      ]
    },
    {
      "name": "HealthcareSource",
      "position": "Junior Web Developer",
      "location": "On-site",
      "startDate": "2007-09",
      "endDate": "2008-02",
      "summary": "Internship",
      "highlights": [
        "Developed and managed web applications using languages such as ColdFusion, JavaScript, CSS, HTML, PHP, XML, and Ajax.",
        "Worked with high-fidelity graphics and created layout designs based on pre-existing web applications.",
        "Used Visual Source Safe as a code management system.",
        "Managed projects using the SalesForce.com CMS system.",
        "Assisted in creating dynamic JavaScript PDF forms leveraged within proprietary web apps."
      ]
    },
    {
      "name": "Earthbound Media Group",
      "position": "Junior Media Programmer",
      "location": "On-site",
      "startDate": "2004-08",
      "endDate": "2005-08",
      "summary": "Full-Time",
      "highlights": [
        "Contributed to the design of electronic media such as interactive CD-ROMs, Flash animations, website design and development, corporate branding, dynamic e-mail, and marketing campaigns.",
        "Successfully managed multiple projects simultaneously in a fast-paced environment heavily involved in higher education.",
        "Part of an award-winning design and interactive team playing the role of the Front-End Developer.",
        "Introduced new technologies within the industry, such as CSS2 and JavaScript."
      ]
    }
  ],
  "projects": [
    {
      "name": "GameKal",
      "description": "A release calendar for PC, PlayStation, Xbox and Switch games. One Expo and React Native codebase ships the web app, iOS and Android, fed by a catalog scraped from nine storefronts, with 538 automated tests.",
      "url": "https://www.gamekal.com/",
      "startDate": "2026-09",
      "entity": "Nomadic Digital LLC",
      "type": "Creator",
      "roles": [
        "Founder, Designer and Solutions Architect"
      ],
      "keywords": [
        "Expo",
        "React Native",
        "React",
        "TypeScript",
        "Supabase",
        "Vercel",
        "Swift",
        "Expo SDK",
        "react-native-web",
        "Reanimated",
        "Gesture Handler",
        "react-native-svg",
        "Custom Expo module",
        "expo-notifications",
        "expo-image-picker",
        "Vercel Functions",
        "Static catalog on the Vercel CDN",
        "Vercel BotID and Firewall",
        "Store scrapers",
        "Wikipedia and history backfills",
        "Built search and picks indexes",
        "Storybook",
        "VitePress",
        "Mermaid",
        "Three.js",
        "CodeMirror 6 and TanStack Table",
        "Vite"
      ],
      "highlights": [
        "Fonts cut to what's drawn",
        "Lighthouse",
        "A 78 MB catalog, opened in pieces",
        "Public data as files, not a function",
        "147,000 games in 8,192 buckets",
        "59 bytes that staled every index",
        "640 MB down to a 35 MB function",
        "Retries that buried a cold instance",
        "Profiled on the phone, not the desktop",
        "One temp folder, two names"
      ]
    },
    {
      "name": "PepsiCo Pepviz",
      "description": "Seven marketing landing pages for PepsiCo's Pepviz, built with one international designer: hand-authored HTML, one SCSS file and a little vanilla JavaScript per page, staged on CodePen so the client can paste them into its own CMS.",
      "url": "https://jodriscoll.com/things-built/pepviz",
      "startDate": "2026-07",
      "entity": "Ancient LLC",
      "type": "Ancient LLC",
      "roles": [
        "UI Architect Lead"
      ],
      "keywords": [
        "HTML",
        "Sass",
        "JavaScript",
        "CodePen",
        "CSS",
        "Image maps",
        "Splide",
        "Figma"
      ],
      "highlights": [
        "Built to be pasted",
        "Desktop and mobile art"
      ]
    },
    {
      "name": "Fisher of Fire",
      "description": "Breath of Fire III's fishing mode, decrypted from a disc I own, decompiled with Ghidra (11,676 functions) and rebuilt in TypeScript and Phaser 4 rather than emulated, then extended with save files, four fishers and a 128-track jukebox.",
      "url": "https://jodriscoll.com/things-built/fisher-of-fire",
      "startDate": "2026-11",
      "entity": "Nomadic Digital LLC",
      "type": "Creator",
      "roles": [
        "Reverse Engineering, Design and Engineering"
      ],
      "keywords": [
        "TypeScript",
        "Phaser",
        "Vite",
        "Ghidra",
        "Node.js",
        "ffmpeg",
        "Java",
        "WebGL",
        "Vercel",
        "pspdecrypt",
        "llvm-objdump",
        "Gamepad API",
        "Web Audio API",
        "npm",
        "Vercel CLI"
      ],
      "highlights": [
        "Rebuilt, not emulated",
        "Measured against the original",
        "Past the original",
        "Any input",
        "Tooling for the next one"
      ]
    },
    {
      "name": "PawDings",
      "description": "An app I created for iOS, Android and the web that keeps dog owners active: one weather- and location-aware idea a day, GPS arrival checks and fully customizable reminders, on Expo with a typed OpenAPI backend.",
      "url": "https://pawdings.com/",
      "entity": "Nomadic Digital LLC",
      "type": "Creator",
      "roles": [
        "Product, Design and Engineering"
      ],
      "keywords": [
        "Expo",
        "React Native",
        "React",
        "TypeScript",
        "expo-location",
        "expo-notifications",
        "expo-task-manager",
        "expo-image-picker",
        "Node.js",
        "PostgreSQL"
      ],
      "highlights": [
        "One nudge, not a feed",
        "Activity you can see",
        "Privacy by restraint",
        "Built to swap the backend"
      ]
    },
    {
      "name": "Nioh 3 Tracker",
      "description": "A progress tracker for Nioh 3, built with the game's community where the wikis fell short and printed strategy guides no longer exist.",
      "url": "https://nioh3tracker.vercel.app/",
      "entity": "Nomadic Digital LLC",
      "type": "Hobby project",
      "roles": [
        "Design and Engineering, Built with the Community"
      ],
      "keywords": [
        "Vercel"
      ],
      "highlights": [
        "Built with its users"
      ]
    },
    {
      "name": "ZEFR",
      "description": "Zefr's marketing site rebuilt on Craft CMS 5 and moved onto Craft Cloud, with a Neo block library editors build pages from, SAML single sign-on, SEOmatic and a Vite build.",
      "url": "https://zefr.com/",
      "startDate": "2026-03",
      "endDate": "2026-07",
      "entity": "millermedia7",
      "type": "MillerMedia7",
      "roles": [
        "Web Engineering Lead, through millermedia7"
      ],
      "keywords": [
        "Craft CMS",
        "PHP 8.4",
        "nginx",
        "MySQL 8.0",
        "Craft Cloud",
        "Vite",
        "SEOmatic",
        "Neo",
        "SAML SSO",
        "DDEV",
        "CKEditor",
        "Navigation",
        "Retour",
        "SAML SP",
        "Lottie",
        "PHP",
        "nginx-fpm",
        "MySQL"
      ],
      "highlights": [
        "A 500 that was really a missing rewrite",
        "A block library, not page templates",
        "Craft Cloud project config"
      ]
    },
    {
      "name": "Cascade Space",
      "description": "A Next.js 14 static site for a space-technology company, assembled from a typed block library: every block has a TypeScript interface, a Storybook story and Vitest tests, and every word lives in content files ready for a CMS.",
      "url": "https://jodriscoll.com/things-built/cascade-space",
      "startDate": "2025-11",
      "endDate": "2025-12",
      "entity": "Nomadic Digital LLC",
      "type": "Client",
      "roles": [
        "Design System and Front-End Engineering"
      ],
      "keywords": [
        "Next.js",
        "React",
        "TypeScript",
        "Tailwind CSS",
        "Storybook",
        "Vitest",
        "Vercel",
        "Framer Motion",
        "MDX",
        "JSON content files",
        "Vimeo Player",
        "ESLint and Prettier"
      ],
      "highlights": [
        "Every block, three ways",
        "Content outside the code"
      ]
    },
    {
      "name": "Echoes of History",
      "description": "An educational app for evidence-based historical reasoning, built through tutoring: TanStack Start and React 19, Supabase auth and saved reports, Vercel's AI Gateway and BotID, with answer keys kept on the server.",
      "url": "https://echoeshistory.org/",
      "startDate": "2026-08",
      "entity": "Nomadic Digital LLC",
      "type": "Tutoring",
      "roles": [
        "Tutoring and Technical Guidance"
      ],
      "keywords": [
        "TanStack Start",
        "React",
        "TypeScript",
        "Tailwind CSS",
        "Supabase",
        "Vercel",
        "Vite",
        "Radix UI",
        "Google and Microsoft sign-in",
        "Vercel BotID",
        "Resend"
      ],
      "highlights": [
        "Answers stay on the server",
        "An honest MVP"
      ]
    },
    {
      "name": "TruBridge",
      "description": "TruBridge's site, for a healthcare IT company: a custom Timber and Twig WordPress theme on WP Engine, with events, products and resources as their own content types and an admin trimmed to what editors use.",
      "url": "https://trubridge.com/",
      "entity": "millermedia7",
      "type": "MillerMedia7",
      "roles": [
        "Web Engineering Lead, through millermedia7"
      ],
      "keywords": [
        "WordPress",
        "WP Engine",
        "PHP",
        "Timber",
        "Twig",
        "ACF",
        "Custom post types",
        "JavaScript",
        "Alpine.js",
        "Swiper",
        "Lottie",
        "Plyr",
        "Vimeo Player",
        "Headroom.js",
        "Quicklink",
        "CSS",
        "Google Tag Manager",
        "Adobe Fonts",
        "Ninja Forms",
        "Editor clean-up"
      ],
      "highlights": [
        "An admin built for the editors"
      ]
    },
    {
      "name": "Election Center",
      "description": "The Election Center trains and certifies election officials. Its site is Bedrock WordPress with a Timber and Twig theme, WP Rocket and Redis for speed, and BackstopJS visual regression tests in CI.",
      "url": "https://electioncenter.org/",
      "entity": "Taoti Creative",
      "type": "Taoti Creative",
      "roles": [
        "Solutions Engineer, through Taoti Creative"
      ],
      "keywords": [
        "WordPress",
        "PHP",
        "Timber",
        "Twig",
        "Composer",
        "ACF Pro",
        "Yoast SEO",
        "FileBird",
        "Duplicate Post",
        "WP Rocket",
        "Redis Object Cache",
        "EWWW Image Optimizer",
        "WP 2FA",
        "Taoti Security Scanner",
        "JavaScript",
        "jQuery",
        "Gulp",
        "Sass",
        "webpack",
        "Babel",
        "PostCSS",
        "BackstopJS",
        "Behat",
        "Nightwatch",
        "PHP_CodeSniffer",
        "GitHub Actions",
        "AWS",
        "Lando",
        "Apache",
        "MariaDB",
        "Node"
      ]
    },
    {
      "name": "International Women's Forum",
      "description": "The International Women's Forum's public site: a custom Taoti theme on Composer-managed WordPress with ACF and Gravity Forms, built and deployed to Pantheon by GitHub Actions on every push.",
      "url": "https://iwforum.org/",
      "entity": "Taoti Creative",
      "type": "Taoti Creative",
      "roles": [
        "WordPress Development"
      ],
      "keywords": [
        "WordPress",
        "PHP",
        "Sass",
        "Gulp",
        "webpack",
        "GitHub Actions",
        "Pantheon",
        "Advanced Custom Fields",
        "Gravity Forms",
        "Yoast SEO",
        "Solid Security",
        "Babel",
        "PostCSS",
        "Accessible Slick",
        "AOS",
        "PHP_CodeSniffer",
        "Stylelint",
        "Prettier",
        "Lando"
      ],
      "highlights": [
        "Built on deploy, not committed"
      ]
    },
    {
      "name": "AAMI",
      "description": "AAMI's member community on Bedrock WordPress and BuddyBoss, with a Timber theme and a homepage feed that blends curated stories with the live activity stream, cached in Redis and behind SAML single sign-on.",
      "url": "https://aami.org/",
      "entity": "Taoti Creative",
      "type": "Taoti Creative",
      "roles": [
        "Solutions Engineer, through Taoti Creative"
      ],
      "keywords": [
        "WordPress",
        "Bedrock",
        "PHP 8.3",
        "Apache 2.4",
        "MySQL 8.0",
        "Redis",
        "ACF Pro",
        "BuddyBoss",
        "WP Rocket",
        "Yoast SEO",
        "SAML SSO",
        "Lando",
        "BuddyBoss Theme",
        "Timber",
        "Twig",
        "ACF Extended",
        "ACF Table Field",
        "Gravity Forms add-on for ACF",
        "Permalink Manager",
        "Redirection",
        "Members",
        "Redis Object Cache",
        "EWWW Image Optimizer",
        "miniOrange SAML SSO",
        "WP 2FA",
        "WP Activity Log",
        "Solid Security",
        "Taoti Security Scanner",
        "PHP",
        "Apache",
        "MySQL",
        "Node",
        "Gulp",
        "Webpack"
      ],
      "highlights": [
        "Curated first, then automatic",
        "One post, two places",
        "Cached, de-duplicated, invalidated"
      ]
    },
    {
      "name": "Combioh",
      "description": "A Nioh 3 combo trainer: pick a style, weapons and a difficulty, and a custom controller UI shows each combo on your own button layout as timed sequences, in five languages, with every choice shareable from the URL.",
      "url": "https://www.combioh.com/",
      "startDate": "2026-05",
      "endDate": "2026-10",
      "entity": "Nomadic Digital LLC",
      "type": "Creator",
      "roles": [
        "Design and Engineering"
      ],
      "keywords": [
        "Next.js",
        "React",
        "TypeScript",
        "Tailwind CSS",
        "Vitest",
        "ESLint"
      ],
      "highlights": [
        "Your controller, your inputs",
        "Timed sequences",
        "State in the URL",
        "Flags are not languages"
      ]
    },
    {
      "name": "APTA",
      "description": "The American Physical Therapy Association's site on Bedrock WordPress, with Composer-managed plugins, ACF Pro, Redis object caching and Taoti's security scanner, held to one security and version baseline.",
      "url": "https://www.apta.org/",
      "entity": "Taoti Creative",
      "type": "Taoti Creative",
      "roles": [
        "Solutions Engineer, through Taoti Creative"
      ],
      "keywords": [
        "Bedrock",
        "ACF Pro",
        "ACF Better Search",
        "Media Library Assistant",
        "Enable Media Replace",
        "Yoast SEO",
        "tawk.to",
        "Redis Object Cache",
        "EWWW Image Optimizer",
        "Solid Security",
        "Taoti Security Scanner",
        "GDPR Cookie Compliance"
      ]
    },
    {
      "name": "OCAD University",
      "description": "Development on the public Drupal site for OCAD University, Canada's largest university of art and design.",
      "url": "https://www.ocadu.ca/",
      "entity": "Taoti Creative",
      "type": "Taoti Creative",
      "keywords": [
        "Drupal"
      ]
    },
    {
      "name": "Sequoia Capital",
      "description": "A custom Gutenberg block theme for Sequoia Capital on WordPress VIP, with motion from CSS animation, Animate on Scroll and Lottie.",
      "url": "https://www.sequoiacap.com",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "WordPress Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "AOS + CSS Animations",
        "Bootstrap 5.x",
        "PHP + MySQL",
        "WordPress VIP",
        "Custom block theme",
        "Bootstrap",
        "Animate on Scroll",
        "Lottie",
        "CSS animations",
        "PHP",
        "MySQL"
      ]
    },
    {
      "name": "SageLife",
      "description": "A WordPress multisite on Pantheon for SageLife, the senior-living operator: each community runs on its own domain through AWS name servers, on a Bootstrap and webpack theme with Animate on Scroll.",
      "url": "https://www.sagelife.com",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "WordPress Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress Multisite",
        "HTML5 + SCSS + Webpack",
        "AOS + CSS Animations",
        "Bootstrap 4.x",
        "PHP + MySQL",
        "Pantheon + AWS",
        "Multisite",
        "Bootstrap",
        "SCSS",
        "Webpack",
        "Animate on Scroll",
        "PHP",
        "MySQL"
      ]
    },
    {
      "name": "TAK.gov",
      "description": "TAK.gov, home of the Team Awareness Kit community: a Ruby application whose Bootstrap 5 and ES6 front end was prototyped in a standalone Express app, then imported, on AWS with GitLab.",
      "url": "https://tak.gov",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "Ruby",
        "AWS",
        "GitLab",
        "Bootstrap 5.x",
        "JavaScript ES6+",
        "Express",
        "Bootstrap",
        "JavaScript",
        "SCSS"
      ]
    },
    {
      "name": "i6tix",
      "description": "A browser-based poster maker for events: a React 16 and Redux app with a canvas editor, uploads held in LocalStorage between steps, review and checkout, tested with Jest and served from CloudFront.",
      "url": "https://d2ywhp6fltyv6h.cloudfront.net/storefront.html",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "React Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "React 16 + Redux",
        "ESLint + Jest",
        "AWS + CloudFront",
        "LocalStorage",
        "SCSS + JavaScript ES6+",
        "React",
        "Redux",
        "Canvas",
        "ESLint",
        "Jest",
        "SCSS",
        "JavaScript"
      ]
    },
    {
      "name": "Rehab.com",
      "description": "Rehab.com's treatment directory: a Symfony and MySQL application with HubSpot and API integrations, Vue and Angular sections and a Vue patient portal, cut by more than 60% and moved to GitHub Actions.",
      "url": "https://www.rehab.com",
      "entity": "Rehab LLC",
      "type": "Rehab LLC",
      "roles": [
        "Director of Web Operations and Senior Performance Engineer, Rehab LLC"
      ],
      "keywords": [
        "Symphony + MySQL",
        "VueJS",
        "HTML5 + SCSS",
        "AWS",
        "Python",
        "GitHub Actions",
        "Symfony",
        "MySQL",
        "HubSpot",
        "Vue",
        "Angular",
        "SCSS",
        "Cloudflare Pages"
      ],
      "highlights": [
        "From the resume",
        "A sale, handed over"
      ]
    },
    {
      "name": "Portfolio ver. 3",
      "description": "The third and current version of my portfolio: an Astro 7 site on Cloudflare Workers. 94 pages render at build time and ship as static assets; a Worker answers the contact form and a JSON content API.",
      "url": "https://jodriscoll.com/",
      "startDate": "2026-09",
      "entity": "Nomadic Digital LLC",
      "type": "Portfolio",
      "roles": [
        "Designer and Engineer"
      ],
      "keywords": [
        "Astro 7",
        "TypeScript",
        "CSS",
        "Cloudflare Workers",
        "Resend",
        "Node 24",
        "Astro",
        "Shiki",
        "View Transitions",
        "@astrojs/cloudflare",
        "Wrangler",
        "JSON-LD",
        "llms.txt",
        "JSON Resume",
        "Content API",
        "RSS and sitemap",
        "Node"
      ],
      "highlights": [
        "Written for the screener too",
        "One source of truth",
        "Static first",
        "From Pages to Workers",
        "No client framework"
      ]
    },
    {
      "name": "Portfolio ver. 2",
      "description": "The second version of my portfolio: jodriscoll.com as an Angular 13 single-page app on Cloudflare Pages, with every word of copy in ngx-translate files, a service worker, Bootstrap 4, Animate on Scroll motion and Karma tests.",
      "url": "https://jodriscoll.com/things-built/angular-portfolio",
      "startDate": "2023-07",
      "endDate": "2026-11",
      "entity": "Nomadic Digital LLC",
      "type": "Portfolio",
      "roles": [
        "Design and Engineering"
      ],
      "keywords": [
        "Angular 13",
        "TypeScript",
        "SCSS",
        "Bootstrap 4",
        "ngx-translate",
        "AOS + CSS Animations",
        "Karma",
        "Cloudflare Pages",
        "Angular",
        "RxJS",
        "Angular service worker",
        "Bootstrap",
        "ng-bootstrap",
        "Animate on Scroll",
        "ngx-owl-carousel-o",
        "Font Awesome",
        "Protractor",
        "TSLint",
        "Google Analytics"
      ],
      "highlights": [
        "Copy out of the templates",
        "Offline loads",
        "Preview per branch"
      ]
    },
    {
      "name": "Patient Portal",
      "description": "A Vue application inside Rehab.com's Symfony site that lets patients curate and compare treatment providers, exchanging data with MySQL over a REST API.",
      "url": "https://www.rehab.com/login",
      "entity": "Rehab LLC",
      "type": "Rehab LLC",
      "roles": [
        "Senior Performance Engineer, Rehab.com"
      ],
      "keywords": [
        "VueJS + Symphony",
        "HTML5 + SCSS",
        "MySQL",
        "AWS",
        "REST API",
        "Vue",
        "Symfony",
        "SCSS"
      ]
    },
    {
      "name": "Energy Rate Calculator",
      "description": "A rate calculator inside an electric utility's WordPress site: customers enter their home usage and get an estimate, with every rate managed by editors in ACF.",
      "url": "https://www.nbutexas.com/bill-calculator/",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "PHP + WordPress + ACF",
        "JavaScript ES5+",
        "SCSS",
        "ACF",
        "PHP",
        "JavaScript"
      ]
    },
    {
      "name": "Trinity Cyber",
      "description": "The customer dashboard for Trinity Cyber, a cybersecurity startup: React with Redux-Saga and D3 visualizations, shipped in containers against an API documented in API Blueprint. One of my first React applications.",
      "url": "https://www.trinitycyber.com/",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "React",
        "Redux",
        "Redux-Saga",
        "D3",
        "react-vis",
        "styled-components",
        "Express",
        "Docker",
        "GitLab CI",
        "API Blueprint",
        "Apiary"
      ]
    },
    {
      "name": "Royal Farms Rewards Portal",
      "description": "The ROFO Rewards loyalty program for Royal Farms: web services behind the rewards app and a React and Redux admin portal, Dockerized and tested with Jest and Enzyme. One of my first React applications.",
      "url": "https://jodriscoll.com/things-built/rofo-rewards",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "React",
        "Redux",
        "Jest",
        "Enzyme",
        "webpack",
        "Docker",
        "nginx",
        "Skygear",
        "GitLab CI"
      ]
    },
    {
      "name": "Black & Decker · Nostos",
      "description": "Nostos, a multilingual React application for Black & Decker, internationalized with react-intl and built on Reactstrap and Sass.",
      "url": "https://jodriscoll.com/things-built/black-and-decker-nostos",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "React",
        "react-intl",
        "Reactstrap",
        "Sass"
      ]
    },
    {
      "name": "PTC Therapeutics",
      "description": "Headless WordPress for PTC Therapeutics: content and languages managed in WordPress and served over the REST API to a separate React front end.",
      "url": "https://jodriscoll.com/things-built/ptc-bio",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "WP REST API",
        "React",
        "Lando"
      ]
    },
    {
      "name": "File & Serve Xpress",
      "description": "The Angular front end for File & Serve Xpress, a legal e-filing and service platform: an Nx monorepo on Angular Material and DevExtreme, tested with Jest, documented in Storybook and shipped through Azure Pipelines.",
      "url": "https://jodriscoll.com/things-built/file-and-serve-xpress",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "Angular",
        "Nx",
        "Angular Material",
        "DevExtreme",
        "RxJS",
        "TypeScript",
        "Jest",
        "Storybook",
        "Azure Pipelines"
      ]
    },
    {
      "name": "Project Health Dashboard",
      "description": "An internal React dashboard that tracked project health across the agency, built on CoreUI and Reactstrap with Chart.js reporting.",
      "url": "https://jodriscoll.com/things-built/mindgrub-project-health",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "React",
        "CoreUI",
        "Reactstrap",
        "Chart.js",
        "webpack",
        "Sass"
      ]
    },
    {
      "name": "UMBC Home Visiting Training",
      "description": "UMBC's Maryland MIECHV home-visiting training platform on Drupal 8: content exposed through GraphQL and OpenAPI with OAuth, pages built from Paragraphs, and BackstopJS and Behat tests.",
      "url": "https://homevisitingtraining.umbc.edu/",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "Drupal 8",
        "Pantheon",
        "Lando",
        "GitLab CI",
        "GraphQL",
        "OpenAPI",
        "Simple OAuth",
        "Paragraphs",
        "Search API",
        "BackstopJS",
        "Behat"
      ]
    },
    {
      "name": "UNISYS",
      "description": "UNISYS's move onto Drupal 8 on Pantheon, with content carried across by a scripted Migrate Plus migration from CSV and directory sources, and Paragraphs for layout.",
      "url": "https://jodriscoll.com/things-built/unisys",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "Drupal 8",
        "Pantheon",
        "Docksal",
        "Migrate Plus",
        "Migrate Source CSV",
        "Paragraphs"
      ]
    },
    {
      "name": "NCIT",
      "description": "A Composer-managed Drupal 8 site on Pantheon, with Feeds and Feeds Tamper importing content and Pantheon's Solr powering search.",
      "url": "https://jodriscoll.com/things-built/ncit",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "Drupal 8",
        "Pantheon",
        "Docksal",
        "Feeds",
        "Search API Pantheon",
        "Bootstrap"
      ]
    },
    {
      "name": "NAMW",
      "description": "A Composer-managed Drupal 8 site on Pantheon, with Paragraphs for page building, Config Split per environment, Docksal locally and Behat tests.",
      "url": "https://jodriscoll.com/things-built/namw",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "Drupal 8",
        "Pantheon",
        "Docksal",
        "Paragraphs",
        "Config Split",
        "Behat"
      ]
    },
    {
      "name": "Relief Wizard",
      "description": "A Drupal 8.8 site on Pantheon built around Webform, with Lando locally and a Bootstrap theme.",
      "url": "https://jodriscoll.com/things-built/relief-wizard",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "Drupal 8",
        "Pantheon",
        "Lando",
        "Webform",
        "Bootstrap"
      ]
    },
    {
      "name": "The Children’s Inn at NIH",
      "description": "Composer-managed WordPress for The Children's Inn at NIH, with FacetWP search, Gravity Forms and WP All Import, tested with Behat and PHPUnit and deployed through Dockerized GitLab CI to Pantheon.",
      "url": "https://jodriscoll.com/things-built/childrens-inn-nih",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Composer",
        "GitLab CI",
        "Docker",
        "ACF Pro",
        "FacetWP",
        "Gravity Forms",
        "WP All Import",
        "Sentry",
        "Behat",
        "PHPUnit"
      ]
    },
    {
      "name": "ComEd · Powering Lives",
      "description": "A WordPress multisite for ComEd's Powering Lives program, with Lando locally and GitLab CI handing builds to Azure DevOps.",
      "url": "https://poweringlives.comed.com/",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "WordPress Multisite",
        "Lando",
        "GitLab CI",
        "Azure DevOps"
      ]
    },
    {
      "name": "Baltimore Gas & Electric (BGE)",
      "description": "Baltimore Gas & Electric's custom WordPress theme on Bootstrap 4 and Pantheon, plus part of the interface for BGE's iOS app, written in Swift.",
      "url": "https://jodriscoll.com/things-built/bge",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4",
        "jQuery",
        "Lando",
        "Swift"
      ]
    },
    {
      "name": "AARP Pharmacy",
      "description": "A custom WordPress theme for AARP Pharmacy, built on Bootstrap 4 with a Lando local environment and hosted on Pantheon.",
      "url": "https://jodriscoll.com/things-built/aarp-pharmacy",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4",
        "PHP",
        "Lando"
      ]
    },
    {
      "name": "Entergy · Shore Power",
      "description": "A lead-generation site for Entergy's Shore Power service, a custom WordPress theme on Bootstrap 4 with GitLab CI deploying to Pantheon.",
      "url": "https://jodriscoll.com/things-built/entergy-shore-power",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4",
        "Lando",
        "GitLab CI"
      ]
    },
    {
      "name": "Entergy · TLG",
      "description": "A custom WordPress theme for Entergy's TLG, on Bootstrap 4, with Lando locally and GitLab CI deploying to Pantheon through Terminus.",
      "url": "https://jodriscoll.com/things-built/entergy-tlg",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4",
        "Lando",
        "Terminus",
        "GitLab CI"
      ]
    },
    {
      "name": "Dragos",
      "description": "A redesign for Dragos, the industrial-cybersecurity company: a custom WordPress theme on Bootstrap 4, with Lando locally and GitLab CI deploying to Pantheon.",
      "url": "https://jodriscoll.com/things-built/dragos",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4",
        "Lando",
        "GitLab CI"
      ]
    },
    {
      "name": "Volexity",
      "description": "A custom WordPress theme for Volexity, the security firm, built with Gulp and jQuery and deployed by GitLab CI to Pantheon.",
      "url": "https://jodriscoll.com/things-built/volexity",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Gulp",
        "jQuery",
        "GitLab CI"
      ]
    },
    {
      "name": "Cloudtamer.io",
      "description": "The October 2019 launch site for Cloudtamer.io, the cloud-governance company: a custom WordPress theme with FacetWP-powered search, on Pantheon.",
      "url": "https://jodriscoll.com/things-built/cloudtamer",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "FacetWP",
        "Bootstrap 4",
        "jQuery"
      ]
    },
    {
      "name": "Check To Protect",
      "description": "A 2018 national campaign site urging drivers to look up and fix open vehicle recalls: a custom WordPress theme on Bootstrap 4, hosted on Pantheon.",
      "url": "https://jodriscoll.com/things-built/check-to-protect",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4",
        "PHP"
      ]
    },
    {
      "name": "Communities In Schools",
      "description": "A custom 2018 WordPress theme for Communities In Schools, the national dropout-prevention nonprofit, built on Bootstrap 4 for Pantheon.",
      "url": "https://jodriscoll.com/things-built/communities-in-schools",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4",
        "PHP"
      ]
    },
    {
      "name": "Brown Goldstein Levy",
      "description": "A custom WordPress theme for the Baltimore law firm, on Bootstrap and jQuery, with Lando locally and GitLab CI deploying to Pantheon through Terminus.",
      "url": "https://jodriscoll.com/things-built/brown-goldstein-levy",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap",
        "jQuery",
        "Lando",
        "Terminus",
        "GitLab CI"
      ]
    },
    {
      "name": "EQRx",
      "description": "A custom WordPress theme for EQRx, built with IMRE, plus a plugin that syncs open roles from a jobs API every day on WP Cron.",
      "url": "https://jodriscoll.com/things-built/eqrx",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4",
        "WP Cron"
      ]
    },
    {
      "name": "Gilchrist Hospice · Infoweb",
      "description": "Infoweb, a custom WordPress intranet for Gilchrist Hospice staff, built on Bootstrap 4 and hosted on Pantheon.",
      "url": "https://jodriscoll.com/things-built/gilchrist-infoweb",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4"
      ]
    },
    {
      "name": "Archdiocese of Baltimore · #iamcatholic",
      "description": "#iamcatholic, a campaign microsite for the Archdiocese of Baltimore built with Sizeable, on WordPress and Pantheon.",
      "url": "https://jodriscoll.com/things-built/iamcatholic",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon"
      ]
    },
    {
      "name": "InSource Solutions",
      "description": "A custom WordPress theme for InSource Solutions, built on Bootstrap 4 and hosted on Pantheon.",
      "url": "https://jodriscoll.com/things-built/insource-solutions",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4"
      ]
    },
    {
      "name": "New Braunfels Utilities",
      "description": "The Texas utility's custom WordPress site on Bootstrap 4 and Pantheon, including a rate calculator its staff manage through ACF.",
      "url": "https://www.nbutexas.com/",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "ACF",
        "Bootstrap 4"
      ]
    },
    {
      "name": "NDPI",
      "description": "A custom WordPress theme for NDPI, built on Bootstrap 4 and hosted on Pantheon.",
      "url": "https://jodriscoll.com/things-built/ndpi",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4"
      ]
    },
    {
      "name": "ThinkBabies",
      "description": "A custom WordPress theme for ThinkBabies, the national early-childhood campaign, built on Bootstrap 4 and hosted on Pantheon.",
      "url": "https://jodriscoll.com/things-built/think-babies",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4"
      ]
    },
    {
      "name": "Venture Trailers",
      "description": "A custom 2019 WordPress theme for Venture Trailers, the trailer manufacturer, built on Bootstrap 4 for Pantheon.",
      "url": "https://jodriscoll.com/things-built/venture-trailers",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4",
        "PHP"
      ]
    },
    {
      "name": "Vyleesi",
      "description": "A custom WordPress theme for the Vyleesi pharmaceutical brand, built on Bootstrap 4 and hosted on Pantheon.",
      "url": "https://jodriscoll.com/things-built/vyleesi",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap 4"
      ]
    },
    {
      "name": "YouCanWA.org",
      "description": "YouCanWA.org, a Washington State youth campaign: a WordPress theme on Bootstrap and Pantheon, animated with GSAP and ScrollMagic.",
      "url": "https://youcanwa.org/",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "GSAP",
        "ScrollMagic",
        "Bootstrap"
      ]
    },
    {
      "name": "Focus On",
      "description": "A custom WordPress theme for Focus On, hosted on WP Engine.",
      "url": "https://jodriscoll.com/things-built/focus-on",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "WP Engine"
      ]
    },
    {
      "name": "Alive & Thrive",
      "description": "Ongoing development and upkeep of the WordPress site for Alive & Thrive, the global maternal and child nutrition initiative, on GMMB's theme and hosted on Pantheon.",
      "url": "https://www.aliveandthrive.org/",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon"
      ]
    },
    {
      "name": "Chemonics",
      "description": "Upkeep and development of the WordPress site for Chemonics, the international-development firm, on WDG's theme and hosted on Pantheon.",
      "url": "https://jodriscoll.com/things-built/chemonics",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon"
      ]
    },
    {
      "name": "ASAP",
      "description": "A WordPress multisite for ASAP on Social Driver's theme: I maintained and extended the network on Pantheon.",
      "url": "https://jodriscoll.com/things-built/asap",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "WordPress Multisite"
      ]
    },
    {
      "name": "Viaplace",
      "description": "Upkeep and development of the Viaplace WordPress site on the Genesis Framework, hosted on Pantheon.",
      "url": "https://jodriscoll.com/things-built/viaplace",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Genesis"
      ]
    },
    {
      "name": "MindBuzz",
      "description": "Upkeep and development of the MindBuzz WordPress site on a Themify theme, hosted on Pantheon.",
      "url": "https://jodriscoll.com/things-built/mindbuzz",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "WordPress",
        "Pantheon"
      ]
    },
    {
      "name": "Under Armour",
      "description": "Under Armour's shopping experience, inside a web of Jenkins builds, approvals and per-build test environments from before CI was a common word, plus the NEXT event app in Laravel for the USA and Canada.",
      "url": "https://jodriscoll.com/things-built/under-armour",
      "entity": "Mindgrub Technologies",
      "type": "Mindgrub Technologies",
      "roles": [
        "Senior Software Engineer, through Mindgrub Technologies"
      ],
      "keywords": [
        "Jenkins",
        "Laravel",
        "PHP",
        "Gulp",
        "Bower",
        "PHPUnit",
        "phpspec"
      ]
    },
    {
      "name": "CVS Health · SilverScript Call Center",
      "description": "The call-center application for SilverScript, CVS Health's Medicare Part D plan: Laravel and Vue, with CSV import and seeding, PHPUnit tests and AWS CodeDeploy releases.",
      "url": "https://jodriscoll.com/things-built/cvs-silverscript",
      "entity": "Jellyfish",
      "type": "Jellyfish",
      "roles": [
        "Senior Front-End Engineer, through Jellyfish"
      ],
      "keywords": [
        "Laravel",
        "Vue",
        "Bootstrap",
        "Laravel Mix",
        "PHPUnit",
        "AWS CodeDeploy"
      ]
    },
    {
      "name": "Samsung Display",
      "description": "Samsung Display's product-information site, formerly pid.samsungdisplay.com, on Drupal 7, packaged as RPMs and deployed to AWS with CodeDeploy.",
      "url": "https://www.samsungdisplay.com",
      "entity": "Jellyfish",
      "type": "Jellyfish",
      "roles": [
        "Senior Front-End Engineer, through Jellyfish"
      ],
      "keywords": [
        "Drupal 7",
        "PHP",
        "AWS CodeDeploy",
        "RPM"
      ]
    },
    {
      "name": "Transport Research Laboratory",
      "description": "The Drupal 7 site for TRL, the UK's Transport Research Laboratory, packaged as RPMs for deployment.",
      "url": "https://jodriscoll.com/things-built/trl",
      "entity": "Jellyfish",
      "type": "Jellyfish",
      "roles": [
        "Senior Front-End Engineer, through Jellyfish"
      ],
      "keywords": [
        "Drupal 7",
        "PHP",
        "RPM"
      ]
    },
    {
      "name": "Jellyfish UK",
      "description": "Jellyfish's own UK website on Drupal 7, including a patched reCAPTCHA module that every contact form relied on.",
      "url": "https://jodriscoll.com/things-built/jellyfish-uk",
      "entity": "Jellyfish",
      "type": "Jellyfish",
      "roles": [
        "Senior Front-End Engineer, through Jellyfish"
      ],
      "keywords": [
        "Drupal 7",
        "PHP",
        "MySQL"
      ]
    },
    {
      "name": "Channel 5",
      "description": "WordPress for the UK broadcaster Channel 5, maintained from Jellyfish's repository and hosted on AWS.",
      "url": "https://www.channel5.com/",
      "entity": "Jellyfish",
      "type": "Jellyfish",
      "roles": [
        "Senior Front-End Engineer, through Jellyfish"
      ],
      "keywords": [
        "WordPress",
        "AWS",
        "PHP"
      ]
    },
    {
      "name": "Kahootz",
      "description": "WordPress for Kahootz, the UK collaboration-software company, hosted on AWS while at Jellyfish.",
      "url": "https://jodriscoll.com/things-built/kahootz",
      "entity": "Jellyfish",
      "type": "Jellyfish",
      "roles": [
        "Senior Front-End Engineer, through Jellyfish"
      ],
      "keywords": [
        "WordPress",
        "AWS",
        "PHP"
      ]
    },
    {
      "name": "Avention",
      "description": "A Jellyfish-built WordPress theme for Avention, the business-data company, hosted on AWS.",
      "url": "https://jodriscoll.com/things-built/avention",
      "entity": "Jellyfish",
      "type": "Jellyfish",
      "roles": [
        "Senior Front-End Engineer, through Jellyfish"
      ],
      "keywords": [
        "WordPress",
        "AWS",
        "PHP"
      ]
    },
    {
      "name": "Casepoint",
      "description": "Casepoint's WordPress site, maintained for the e-discovery company on AWS while at Jellyfish.",
      "url": "https://jodriscoll.com/things-built/casepoint",
      "entity": "Jellyfish",
      "type": "Jellyfish",
      "roles": [
        "Senior Front-End Engineer, through Jellyfish"
      ],
      "keywords": [
        "WordPress",
        "AWS",
        "PHP"
      ]
    },
    {
      "name": "HomeProtect.co.uk",
      "description": "HomeProtect.co.uk, the UK home-insurance site, on Joomla 3.7 with YOOtheme's ZOO product system and a Gulp and Sass theme build.",
      "url": "https://www.homeprotect.co.uk/",
      "entity": "Jellyfish",
      "type": "Jellyfish",
      "roles": [
        "Senior Front-End Engineer, through Jellyfish"
      ],
      "keywords": [
        "Joomla",
        "YOOtheme ZOO",
        "Gulp",
        "Sass",
        "PHP"
      ]
    },
    {
      "name": "PAUL UK",
      "description": "PAUL UK's Magento storefront, for the French bakery chain's UK business.",
      "url": "https://jodriscoll.com/things-built/paul-uk",
      "entity": "Jellyfish",
      "type": "Jellyfish",
      "roles": [
        "Senior Front-End Engineer, through Jellyfish"
      ],
      "keywords": [
        "Magento",
        "PHP",
        "MySQL"
      ]
    },
    {
      "name": "Drive Empower",
      "description": "A custom WordPress theme for Drive Empower, built for the block editor on Bootstrap and Pantheon: designed, written and delivered by me under Nomadic Digital.",
      "url": "https://jodriscoll.com/things-built/drive-empower",
      "entity": "Nomadic Digital LLC",
      "type": "Client",
      "roles": [
        "Consultant, through Nomadic Digital"
      ],
      "keywords": [
        "WordPress",
        "Gutenberg",
        "Bootstrap",
        "Pantheon"
      ]
    },
    {
      "name": "JasonMPerry.com",
      "description": "JasonMPerry.com, the 1.0 site Jason Perry used to get his business off the ground: a WordPress build I delivered as a contractor under Nomadic Digital.",
      "url": "https://jasonmperry.com/",
      "entity": "Nomadic Digital LLC",
      "type": "Client",
      "roles": [
        "Consultant, through Nomadic Digital"
      ],
      "keywords": [
        "WordPress",
        "Pantheon",
        "Block Editor",
        "@wordpress/scripts",
        "webpack",
        "Lando"
      ]
    },
    {
      "name": "LightingAndSupplies.com",
      "description": "One of Nomadic Digital's first clients, since 2016: troubleshooting the functionality and performance of a lighting and electrical supplier's online catalog and the WordPress applications around it.",
      "url": "https://lightingandsupplies.com/",
      "startDate": "2016-01",
      "entity": "Nomadic Digital LLC",
      "type": "Client",
      "roles": [
        "Consultant, through Nomadic Digital"
      ],
      "keywords": [
        "WordPress"
      ],
      "highlights": [
        "Since 2016"
      ]
    }
  ],
  "skills": [
    {
      "name": "Core",
      "keywords": [
        "Angular, React, Vue",
        "HTML5, SASS",
        "Node.JS",
        "ExpressJS, NestJS",
        "End-to-End Testing (E2E)",
        "Bootstrap, Material UI, TailwindCSS",
        "WordPress Development",
        "Web Performance",
        "Continuous Integration & Continuous Deployment (CI/CD)",
        "JavaScript (ES5+)",
        "TypeScript",
        "Search Engine Optimization (SEO)",
        "Test Driven Development (TDD)",
        "ADA, 508, and WAI-ARIA Compliance",
        "Management",
        "Mentoring",
        "Tutoring"
      ]
    },
    {
      "name": "Platforms in shipped work",
      "keywords": [
        "WordPress",
        "Pantheon",
        "Bootstrap",
        "PHP",
        "Lando",
        "AWS",
        "React",
        "TypeScript",
        "MySQL",
        "GitLab CI",
        "HTML and SCSS",
        "Drupal 8"
      ]
    }
  ],
  "meta": {
    "canonical": "https://jodriscoll.com/resume.json",
    "version": "v1.0.0",
    "lastModified": "2026-11-12T21:20:28.341Z"
  }
}