AI Solutions Architect | Technical Product Leader

Jim O'Harra-Sutton builds the bridge between AI transformation, platform engineering, and teams that ship.

My recent AI modernization work is one part of a broader portfolio: 20+ years leading Adobe.com engineering, managing web and marketing automation teams at Absorb, and combining architecture, product judgment, SEO, analytics, design collaboration, and delivery systems into production web experiences.

20+years building web platforms
85%reported AI-assisted development speed gain
30+non-engineers enabled through AI CMS workflows
Millionsof users reached through Adobe.com work

LinkedIn | GitHub

AI transformation

Private LLMs, AI-assisted coding workflows, CMS automation, and legacy modernization.

Platform engineering

React, Next.js, AEM, Contentful, CI/CD, analytics, SEO, and production web systems.

Team leadership

Management across development, website, and marketing automation teams.

AI Transformation

Private LLMs, AI-powered CMS workflows, Codex and Claude-assisted development, automated refactoring, and production content generation.

Platform Engineering

React, Next.js, Node, PHP, Java, AEM, Contentful, CI/CD, DevOps automation, testing, and legacy modernization.

Team Leadership

Management across website, development, and marketing automation teams, with product ownership across CMS, growth technology, and engineering workflows.

Growth Systems

SEO, analytics, Marketo, Salesforce, marketing automation, developer metrics, Figma, Jira, and cross-functional delivery.

Tooling Range

Comfortable from strategy room to source code.

Engineering

ReactNext.jsNodeJavaScriptTypeScriptPHPJavaCSSAEMContentful

AI and Automation

CodexClaudeLLM workflowsAI refactoringCMS generationGitHub ActionsVercelDockerJenkinsTravis CI

Leadership

People managementTeam planningTechnical product managementMentoringCross-functional deliveryRoadmappingDeveloper metrics

Growth and Product Tools

SEOAnalyticsMarketoSalesforceFigmaJiraMarketing automationPersonalizationAccessibilityPerformance

Career Depth

AI is the newest chapter, built on years of platform leadership.

Absorb Software

Lead Technical Product Manager

2022-2025

Led website, development, and marketing automation work across platform, CMS, growth technology, and AI transformation initiatives.

  • Managed Website, Development, and Marketing Automation teams.
  • Built private LLM and AI-powered CMS workflows with Contentful.
  • Owned MarTech systems including Marketo, Salesforce, analytics, SEO, and integrated marketing platforms.
  • Architected GitHub Actions and Vercel CI/CD pipelines while moving platforms toward Next.js and headless CMS patterns.
  • Introduced AI-assisted coding and operational workflows using Codex and Claude.

Adobe

Senior Front-End Engineer / Technical Lead

2008-2022

Built and modernized Adobe.com experiences, CMS-driven applications, and large-scale front-end platforms serving broad global audiences.

  • Led architecture for Adobe.com platforms serving millions of users.
  • Delivered AEM-powered applications and reusable page systems.
  • Worked across React, JavaScript, CSS, SEO, analytics, performance, personalization, and platform modernization.
  • Partnered with design, product, marketing, and engineering teams to ship high-visibility commerce and product experiences.

Earlier Agency and Product Work

Full-stack developer, trainer, and support tools developer

Pre-2008

Delivered client websites, commerce experiences, support tooling, and training systems across JavaScript, CSS, PHP, ASP.NET, and related web stacks.

  • Built web experiences for brands including Disney's Baby Einstein and Peet's Coffee.
  • Created Drupal, PHP, ASP.NET, JavaScript, CSS, and operational support tooling.
  • Trained technical support agents and built tools that improved internal workflows.

Selected Work

Mar 2015

Adobe.com Product Catalog

React and AEM-driven dynamic presentation for Adobe's product library.

Sep 2013

Adobe.com Creative Cloud Plans

Commerce-focused Adobe product page built with React and Adobe Experience Manager.

Jun 2008

Adobe.com Homepage

Personalized Adobe.com homepage implementation shaped by customer interest and owned Adobe products.

2011-2014

Ruralmeanderings.com

Drupal 7 implementation, custom HTML, CSS, PHP, JavaScript, theme development, and site administration.

2007-2008

Disney's Baby Einstein

ASP.NET, CSS, and JavaScript development for a brand redesign.

2007

Peet's Coffee

Product website work spanning e-commerce and customer community features.

Featured Case Study

Recent AI-assisted modernization work.

Reworking a legacy frontend into a modern app workflow

Older frontend pattern

$(function () {
  $("#promo-toggle").on("click", function () {
    $(".promo-panel").toggleClass("is-open");
    var current = $("#promo-copy").text();
    if (current === "Legacy Promo") {
      $("#promo-copy").text("Modern Promo");
    } else {
      $("#promo-copy").text("Legacy Promo");
    }
  });

  $.get("/api/offers", function (data) {
    $("#offer-count").text(data.total);
  });
});

Modernized app flow

'use client';

import { useEffect, useState } from 'react';

type OfferResponse = { total: number };

export default function PromoPanel() {
  const [isOpen, setIsOpen] = useState(false);
  const [copy, setCopy] = useState('Legacy Promo');
  const [offerCount, setOfferCount] = useState<number | null>(null);

  useEffect(() => {
    async function loadOffers() {
      const res = await fetch('/api/offers');
      const data: OfferResponse = await res.json();
      setOfferCount(data.total);
    }

    loadOffers();
  }, []);

  return (
    <section className="panel">
      <button
        id="promo-toggle"
        onClick={() => {
          setIsOpen((value) => !value);
          setCopy((value) =>
            value === 'Legacy Promo' ? 'Modern Promo' : 'Legacy Promo'
          );
        }}
      >
        Toggle promo
      </button>

      <div className={isOpen ? 'promo-panel is-open' : 'promo-panel'}>
        <p id="promo-copy">{copy}</p>
        <p>Offer count: {offerCount ?? 'Loading...'}</p>
      </div>
    </section>
  );
}

What changed

  • Upgraded the app and dependency stack so the frontend was running on a current toolchain instead of an aging setup.
  • Refactored the styling pipeline and page structure to make layouts, navigation, and content-driven pages easier to extend.
  • Added trusted local HTTPS and fixed production-versus-development parity issues that were slowing down iteration.

How AI helped

  • Used AI to break down the migration into smaller refactor passes instead of trying to rewrite the frontend all at once.
  • Used AI to analyze the legacy UI, carry over the existing look and feel, and map that experience onto more modern frontend patterns and standards.
  • Used AI to draft implementation approaches for auth screens, page composition, and styling-pipeline changes before refining them manually.
  • Used AI as a working scratchpad for upgrade notes, cleanup passes, and follow-up tasks as the frontend stabilized.

This must have taken months, right?

Not even close. The full frontend migration into Next.js took about 10 hours between two days, and the PHP modernization work took about 4 hours to not only resolve all the out of date functions, but also to add new functionality to bring the project up to modern standards. The longest part of the whole effort was probably waiting for DNS servers to finally agree that I really did create a new email domain and yes, it should be allowed to verify already so I can send out my emails.

Ah, emails! Now there's a problem, right? How long did that take you?

Let me tell you, with modern day standards that can format beautiful HTML emails from Node scripts... in a matter of seconds, I was done with the actual code to write the emails before DNS even knew what hit it.

So you just "talked to AI" and it did it all for you?

Not exactly, no. It's much more than that. The part that really speeds things up is knowing the state of the project, what you want it to do, what you want it to look like, and then working with AI right in your development environment (In my case, The "new-at-the-time-of-this-article" Codex 5.4 agent) over the course of lots of questions back and forth. It does take some trial and error, and it certainly does still help to have the knowledge of what it's supposed to do if you were to write it by hand.

With my 20+ years of professional development, I was able to work with Codex to show it what the site was, what the errors I'm seeing are, what it's supposed to do now, what my services are, all the connection settings for those services, and a strong idea of what the code should look like, as well as what the CMS components should do in order to share them across multiple cases. Otherwise, if left completely to its own devices, it might not create the most efficient code or CMS components.

Sure it looks nice, but the code is probably sloppy

Well, you have to be careful, because it can be, but that's where the developers and architects still come into play. I make sure the code is concise, clean, reusable and developer friendly. I refine the prompts to ask Codex further questions that help identify any issues there and keep doing so until it's in a state that I'm happy with. I also make sure the site is user friendly to devices, accessibility readers, and even page load speeds are kept in the 90+ range. Any major issues that would slow the page down (which also affects SEO value, by the way) are identified and addressed.

OK, so it was fast because you already had something to work with?

Well, in the case of those whole-site conversion projects, yes. However, I can also just start completely from scratch and build an entire application by asking Codex the right questions and pointing to the proper services. I mean, you didn't think I built this portfolio site by hand after just boasting about AI's capabilities, did you?

And how can this be? For he IS...

Jim O'Harra-Sutton, AI Solutions Architect