# Joseph O'Driscoll > Web Application Consultant. Interfaces for content-heavy products. 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. Key facts for hiring and research agents: - Current title: Web Application Consultant - Location: Florida, US · works remote - Career on record: 2004–2026, 22 roles, 77 public projects - Current engagements: Nomadic Digital LLC (Owner); Taoti Creative (Solutions Engineer); Sageworx (Solutions Architect); millermedia7 (Web Engineering Lead); PDA.nyc (Open Source Solutions Engineer); SAUCE.nyc (Open Source Solutions Engineer); Ancient LLC (Ancient UI Architect Lead) - Most-used platforms in shipped work: WordPress (43), Pantheon (37), Bootstrap (26), PHP (20), Lando (12), AWS (11), React (11), TypeScript (9), MySQL (8), GitLab CI (7), HTML and SCSS (7), Drupal 8 (5) - Contact: Contact form, https://jodriscoll.com/#contact. No public email address. ## Machine-readable - [Full public record](https://jodriscoll.com/llms-full.txt): Profile, every role, every project, the weaknesses page and all posts (text/plain) - [Resume](https://jodriscoll.com/resume.json): JSON Resume v1 (application/json) - [Content API: resume](https://jodriscoll.com/api/content/resume): Canonical profile, roles, projects and stats (application/json) - [Content API](https://jodriscoll.com/api/content): Everything public; add ?stack=react|vue|angular|wordpress|drupal for framework-shaped records (application/json) - [Sitemap](https://jodriscoll.com/sitemap.xml): Every public page (application/xml) - [RSS](https://jodriscoll.com/rss.xml): Writing feed (application/rss+xml) ## Services - Web maintenance: Keeping small sites and large ones running. - Front-end rebuilds: From a single section through a full redesign. - Migrations: Moving build pipelines and content platforms. - Front-end tooling: Modernizing how the front end is built and shipped. - Coding standards: Writing them, then implementing them. - Testing: Checking the work before it ships. ## Work - [GameKal](https://jodriscoll.com/things-built/gamekal): 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. - [PepsiCo Pepviz](https://jodriscoll.com/things-built/pepviz): 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. - [Fisher of Fire](https://jodriscoll.com/things-built/fisher-of-fire): 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. - [PawDings](https://jodriscoll.com/things-built/pawdings): 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. - [Nioh 3 Tracker](https://jodriscoll.com/things-built/nioh-3-tracker): A progress tracker for Nioh 3, built with the game's community where the wikis fell short and printed strategy guides no longer exist. - [ZEFR](https://jodriscoll.com/things-built/zefr): 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. - [Cascade Space](https://jodriscoll.com/things-built/cascade-space): 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. - [Echoes of History](https://jodriscoll.com/things-built/echoes-of-history): 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. - [TruBridge](https://jodriscoll.com/things-built/trubridge): 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. - [Election Center](https://jodriscoll.com/things-built/election-center): 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. - [International Women's Forum](https://jodriscoll.com/things-built/iwf): 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. - [AAMI](https://jodriscoll.com/things-built/aami): 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. - [Combioh](https://jodriscoll.com/things-built/combioh): 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. - [APTA](https://jodriscoll.com/things-built/apta): 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. - [OCAD University](https://jodriscoll.com/things-built/ocad): Development on the public Drupal site for OCAD University, Canada's largest university of art and design. - [Sequoia Capital](https://jodriscoll.com/things-built/sequoia-capital): A custom Gutenberg block theme for Sequoia Capital on WordPress VIP, with motion from CSS animation, Animate on Scroll and Lottie. - [SageLife](https://jodriscoll.com/things-built/sagelife): 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. - [TAK.gov](https://jodriscoll.com/things-built/tak-gov): 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. - [i6tix](https://jodriscoll.com/things-built/i6tix): 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. - [Rehab.com](https://jodriscoll.com/things-built/rehab-com): 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. - [Portfolio ver. 3](https://jodriscoll.com/things-built/portfolio-v3): 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. - [Portfolio ver. 2](https://jodriscoll.com/things-built/angular-portfolio): 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. - [Patient Portal](https://jodriscoll.com/things-built/patient-portal): 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. - [Energy Rate Calculator](https://jodriscoll.com/things-built/energy-rate-calculator): 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. - [Trinity Cyber](https://jodriscoll.com/things-built/trinity-cyber): 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. - [Royal Farms Rewards Portal](https://jodriscoll.com/things-built/rofo-rewards): 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. - [Black & Decker · Nostos](https://jodriscoll.com/things-built/black-and-decker-nostos): Nostos, a multilingual React application for Black & Decker, internationalized with react-intl and built on Reactstrap and Sass. - [PTC Therapeutics](https://jodriscoll.com/things-built/ptc-bio): Headless WordPress for PTC Therapeutics: content and languages managed in WordPress and served over the REST API to a separate React front end. - [File & Serve Xpress](https://jodriscoll.com/things-built/file-and-serve-xpress): 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. - [Project Health Dashboard](https://jodriscoll.com/things-built/mindgrub-project-health): An internal React dashboard that tracked project health across the agency, built on CoreUI and Reactstrap with Chart.js reporting. - [UMBC Home Visiting Training](https://jodriscoll.com/things-built/umbc-miechv): 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. - [UNISYS](https://jodriscoll.com/things-built/unisys): 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. - [NCIT](https://jodriscoll.com/things-built/ncit): A Composer-managed Drupal 8 site on Pantheon, with Feeds and Feeds Tamper importing content and Pantheon's Solr powering search. - [NAMW](https://jodriscoll.com/things-built/namw): A Composer-managed Drupal 8 site on Pantheon, with Paragraphs for page building, Config Split per environment, Docksal locally and Behat tests. - [Relief Wizard](https://jodriscoll.com/things-built/relief-wizard): A Drupal 8.8 site on Pantheon built around Webform, with Lando locally and a Bootstrap theme. - [The Children’s Inn at NIH](https://jodriscoll.com/things-built/childrens-inn-nih): 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. - [ComEd · Powering Lives](https://jodriscoll.com/things-built/comed-powering-lives): A WordPress multisite for ComEd's Powering Lives program, with Lando locally and GitLab CI handing builds to Azure DevOps. - [Baltimore Gas & Electric (BGE)](https://jodriscoll.com/things-built/bge): 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. - [AARP Pharmacy](https://jodriscoll.com/things-built/aarp-pharmacy): A custom WordPress theme for AARP Pharmacy, built on Bootstrap 4 with a Lando local environment and hosted on Pantheon. - [Entergy · Shore Power](https://jodriscoll.com/things-built/entergy-shore-power): A lead-generation site for Entergy's Shore Power service, a custom WordPress theme on Bootstrap 4 with GitLab CI deploying to Pantheon. - [Entergy · TLG](https://jodriscoll.com/things-built/entergy-tlg): A custom WordPress theme for Entergy's TLG, on Bootstrap 4, with Lando locally and GitLab CI deploying to Pantheon through Terminus. - [Dragos](https://jodriscoll.com/things-built/dragos): A redesign for Dragos, the industrial-cybersecurity company: a custom WordPress theme on Bootstrap 4, with Lando locally and GitLab CI deploying to Pantheon. - [Volexity](https://jodriscoll.com/things-built/volexity): A custom WordPress theme for Volexity, the security firm, built with Gulp and jQuery and deployed by GitLab CI to Pantheon. - [Cloudtamer.io](https://jodriscoll.com/things-built/cloudtamer): The October 2019 launch site for Cloudtamer.io, the cloud-governance company: a custom WordPress theme with FacetWP-powered search, on Pantheon. - [Check To Protect](https://jodriscoll.com/things-built/check-to-protect): 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. - [Communities In Schools](https://jodriscoll.com/things-built/communities-in-schools): A custom 2018 WordPress theme for Communities In Schools, the national dropout-prevention nonprofit, built on Bootstrap 4 for Pantheon. - [Brown Goldstein Levy](https://jodriscoll.com/things-built/brown-goldstein-levy): A custom WordPress theme for the Baltimore law firm, on Bootstrap and jQuery, with Lando locally and GitLab CI deploying to Pantheon through Terminus. - [EQRx](https://jodriscoll.com/things-built/eqrx): 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. - [Gilchrist Hospice · Infoweb](https://jodriscoll.com/things-built/gilchrist-infoweb): Infoweb, a custom WordPress intranet for Gilchrist Hospice staff, built on Bootstrap 4 and hosted on Pantheon. - [Archdiocese of Baltimore · #iamcatholic](https://jodriscoll.com/things-built/iamcatholic): #iamcatholic, a campaign microsite for the Archdiocese of Baltimore built with Sizeable, on WordPress and Pantheon. - [InSource Solutions](https://jodriscoll.com/things-built/insource-solutions): A custom WordPress theme for InSource Solutions, built on Bootstrap 4 and hosted on Pantheon. - [New Braunfels Utilities](https://jodriscoll.com/things-built/new-braunfels-utilities): The Texas utility's custom WordPress site on Bootstrap 4 and Pantheon, including a rate calculator its staff manage through ACF. - [NDPI](https://jodriscoll.com/things-built/ndpi): A custom WordPress theme for NDPI, built on Bootstrap 4 and hosted on Pantheon. - [ThinkBabies](https://jodriscoll.com/things-built/think-babies): A custom WordPress theme for ThinkBabies, the national early-childhood campaign, built on Bootstrap 4 and hosted on Pantheon. - [Venture Trailers](https://jodriscoll.com/things-built/venture-trailers): A custom 2019 WordPress theme for Venture Trailers, the trailer manufacturer, built on Bootstrap 4 for Pantheon. - [Vyleesi](https://jodriscoll.com/things-built/vyleesi): A custom WordPress theme for the Vyleesi pharmaceutical brand, built on Bootstrap 4 and hosted on Pantheon. - [YouCanWA.org](https://jodriscoll.com/things-built/you-can-washington): YouCanWA.org, a Washington State youth campaign: a WordPress theme on Bootstrap and Pantheon, animated with GSAP and ScrollMagic. - [Focus On](https://jodriscoll.com/things-built/focus-on): A custom WordPress theme for Focus On, hosted on WP Engine. - [Alive & Thrive](https://jodriscoll.com/things-built/alive-and-thrive): 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. - [Chemonics](https://jodriscoll.com/things-built/chemonics): Upkeep and development of the WordPress site for Chemonics, the international-development firm, on WDG's theme and hosted on Pantheon. - [ASAP](https://jodriscoll.com/things-built/asap): A WordPress multisite for ASAP on Social Driver's theme: I maintained and extended the network on Pantheon. - [Viaplace](https://jodriscoll.com/things-built/viaplace): Upkeep and development of the Viaplace WordPress site on the Genesis Framework, hosted on Pantheon. - [MindBuzz](https://jodriscoll.com/things-built/mindbuzz): Upkeep and development of the MindBuzz WordPress site on a Themify theme, hosted on Pantheon. - [Under Armour](https://jodriscoll.com/things-built/under-armour): 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. - [CVS Health · SilverScript Call Center](https://jodriscoll.com/things-built/cvs-silverscript): 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. - [Samsung Display](https://jodriscoll.com/things-built/samsung-display-pid): Samsung Display's product-information site, formerly pid.samsungdisplay.com, on Drupal 7, packaged as RPMs and deployed to AWS with CodeDeploy. - [Transport Research Laboratory](https://jodriscoll.com/things-built/trl): The Drupal 7 site for TRL, the UK's Transport Research Laboratory, packaged as RPMs for deployment. - [Jellyfish UK](https://jodriscoll.com/things-built/jellyfish-uk): Jellyfish's own UK website on Drupal 7, including a patched reCAPTCHA module that every contact form relied on. - [Channel 5](https://jodriscoll.com/things-built/channel-5): WordPress for the UK broadcaster Channel 5, maintained from Jellyfish's repository and hosted on AWS. - [Kahootz](https://jodriscoll.com/things-built/kahootz): WordPress for Kahootz, the UK collaboration-software company, hosted on AWS while at Jellyfish. - [Avention](https://jodriscoll.com/things-built/avention): A Jellyfish-built WordPress theme for Avention, the business-data company, hosted on AWS. - [Casepoint](https://jodriscoll.com/things-built/casepoint): Casepoint's WordPress site, maintained for the e-discovery company on AWS while at Jellyfish. - [HomeProtect.co.uk](https://jodriscoll.com/things-built/homeprotect): 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. - [PAUL UK](https://jodriscoll.com/things-built/paul-uk): PAUL UK's Magento storefront, for the French bakery chain's UK business. - [Drive Empower](https://jodriscoll.com/things-built/drive-empower): 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. - [JasonMPerry.com](https://jodriscoll.com/things-built/jason-perry): 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. - [LightingAndSupplies.com](https://jodriscoll.com/things-built/lighting-and-supplies): 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. ## Writing - [Two names for one temp folder](https://jodriscoll.com/blog/two-names-for-one-temp-folder): 537 passes on a Mac, 538 in Linux. One temp folder with two names, and a one-line fix. (2026-11-12) - [The AI that ate my file handles](https://jodriscoll.com/blog/the-ai-that-ate-my-file-handles): A Mac said it was out of open files. The cause was the coding agent, and three commands proved it. (2026-11-12) - [Locked out by my own fortress](https://jodriscoll.com/blog/locked-out-by-our-own-fortress): GameKal's Home page went from about 20 seconds to 1.8 by serving a public catalog as files instead of guarding every read. (2026-11-11) - [Measure before you restyle](https://jodriscoll.com/blog/measure-before-you-restyle): A redesign made the portfolio's Work page 653 KB of HTML. Measuring it found one decoration responsible for 37% of that, and one change cut the page by 29%. (2026-11-10) - [Icons are a performance budget too](https://jodriscoll.com/blog/icons-are-a-performance-budget-too): Switching to SVG is where icon performance starts, not where it ends. Ten small fixes, sorted by what they actually cost you, and the one rule that decides which of them to use. (2026-10-28) - [A redirect is not a DNS record](https://jodriscoll.com/blog/a-redirect-is-not-a-dns-record): www.jodriscoll.com returned Cloudflare error 522 while the bare domain worked. The fix was one Redirect Rule, after a detour through Wrangler error 100117. (2026-10-21) - [One source, many front ends](https://jodriscoll.com/blog/one-source-many-fronts): The portfolio keeps a single record of the work and translates it for nine front ends: WordPress, Drupal, React, Angular and more. Drafts and private notes never leave. (2026-06-24) ## Pages - [Home](https://jodriscoll.com/): Interfaces for content-heavy products. Selected work, stack index, services and current engagements. - [Resume](https://jodriscoll.com/resume): Every role with dates, the employment mix, platforms and things built. Printable. - [Work](https://jodriscoll.com/things-built): All 77 public projects, what each is built on, and who it was built with. - [Writing](https://jodriscoll.com/blog): Engineering notes: what broke, what was measured, what changed. - [Stacks](https://jodriscoll.com/technologies): One canonical content record, translated into the shape each front-end framework expects. - [Weaknesses](https://jodriscoll.com/weaknesses): A written self-assessment. Known issues in how I build a career and work with people: keeping up with a moving stack, staying in the code, caution where the field is loud about AI, the hours mentoring loses, and a practice that is wide and thin in places. ## Optional - [GitHub](https://github.com/jodriscoll) - [LinkedIn](https://www.linkedin.com/in/jtodriscoll) - [Everything above in full](https://jodriscoll.com/llms-full.txt)