Jess ChampionWeb Product Engineer

I'm a web engineer who shapes how a team builds, not just what it ships. My depth is in the frontend, with solid range across the full stack, specialising in JavaScript, TypeScript, React and Node.js. I set the patterns, tooling and technical direction while staying hands-on in the code the whole way through, such as when I led the frontend build for a marketplace that processed over $500k in its first weekend. Where I know the tools well, I'll own solutions end to end; where they're less familiar, or the architecture is complex, I partner with domain experts, because the best systems come from the right mix of people.

I graduated in 2011 with a Bachelor of Computing and Mathematical Science, First Class Honours, then spent five years in operational development, ITIL-certified, diagnosing and fixing production issues in high-traffic codebases for some of New Zealand's leading brands. It gave me a close-up view of how development practices, patterns and anti-patterns play out over a system's lifespan, and it's where my commitment to maintainable, well-documented systems comes from - the kind that earn long-term trust from the business and its customers.

Since moving into delivery teams, I've brought that same long view to the team itself. Its culture and process can be engineered as deliberately as its code, and refined over time to reduce friction.

People-centred engineering

At each step from design to delivery to living with the product, I anchor the decisions and trade-offs back to who's using it, when and why.

A product's quality is the sum of countless decisions, from the big calls made with the team, designers and the business down to the small ones developers make every day. I actively bring user and problem context into the team by collaborating with product and design and, where possible, joining the research phase to hear stories straight from the people who'll use what we build. I've found that a deep understanding of the user and problem context helps a team break the work down in a way that improves delivery flow and product outcomes.

On a clinical records platform holding highly sensitive health data, I led a redesign of the access model around how frontline kaimahi actually share and restrict records, co-designing the edge cases with them across several rounds, like needing to keep a staff member out of their own whānau's records. Removing that daily administrative overhead let them focus on their core mahi.

Leadership

I lead through reasoning and earned respect more than positional authority: people follow because they trust the thinking and the relationship. When a discussion runs on without clear consensus, I'll make the call, and own the outcome, because momentum matters more to me than perfection. I've tested this approach under pressure. Leading a team of three across two Ministry of Education deliveries, I ran both end-to-end and in parallel - including StudyIt, a study platform that held around 10,000 students an hour at exam peak - driving the pre-release coordination a regulated environment demands through to go-live on both.

When I'm leading peers rather than a team I run, I use a similar approach: I work to understand concerns and build a solution around them that still achieves the outcome I'm after. When I brought a design system into a team that had resisted the idea, I worked to understand the principal developer's reasoning, and we shaped a composable system on React Aria that addressed his concerns without sacrificing accessibility or the polish I wanted built in at the component level. Once it was in place, the team could build new UI faster from components that already carried our UX patterns.

Passionate about

The most effective teams I've been a part of had an active practice of continuous reflection and improvement, and I work to build that into every team I join. When standards and practices are agreed upon together, and people feel they have a genuine say, it builds real commitment to showing up for the team and holding to what was agreed.

Psychological safety is what keeps a team resilient: people who feel safe raise issues early, share half-formed ideas, and pressure-test each other's thinking through healthy debate. So I keep incident reviews blameless and solution-focused, treating a failure as something for the team and the system to learn from rather than something to pin on a person.

On that foundation, I build a culture of knowledge sharing: circulating useful articles, preparing talks to introduce ideas I want the team to try, and championing the people who do the same. That's how you get teams that are productive, supportive and creative, where we have fun while delivering great products, and where people are always growing.

While I'm always happy to talk through a concept or help a developer who's stuck on a self-development side project, I find the best way to grow developers is aligning opportunities with the work we have to deliver. So I look for work that lets people take on new technical and interpersonal challenges in ways that suit their interests and strengths. I'll fit the scale of the challenge to a developer's current level, setting them up for success. For example, a more junior developer might go to a low-risk meeting on their own to represent the team and report back, while someone more senior takes on the challenge of leading a feature end-to-end: meetings, planning, tickets, release. I stay as a safety net and escalation point behind them, so the stretch feels safe to take on, while sharing these opportunities around the team so everyone gets a turn at the more interesting work.

I've had this approach come full circle. It started with mentoring a grad on a support team I led, finding him opportunities to build web and app experience inside our existing work, and backing his move onto the web delivery team. Years later, on a different team, I had the privilege of hiring him again as a senior web developer.

Quality is a set of trade-offs. My years in production support taught me to prioritise readability and code that's easy to reason about and change from the early stages of delivery, so the system can evolve as real usage and bug reports teach us more. I design with loose coupling and high cohesion, building modular components that communicate through defined public APIs. Inside those boundaries, I lean on functional programming ideas, composability, pure functions, immutable data, predictable state, and contained side effects, so the UI resolves to a finite, well-defined set of states that's straightforward to test.

Automated unit and e2e tests protect the core business logic and the behaviour we've specified, while leaving the presentation layer free to change. That safety net lets us ship a first cut and refine it once real users have shaped it, instead of polishing something unproven. On one low-coverage codebase, I introduced release gates, build, linting and e2e tests across the critical journeys. Within months, customers were reporting how much more stable the system was in production.

Tests double as living documentation of how the code should behave. I back that up with shared docs, a README or a wiki, capturing the key design decisions and the standards we've agreed on, which also helps new team members, and increasingly AI agents, get up to speed quickly. Claude and Cursor are part of my daily workflow; they're stronger at reasoning about and adjusting existing code than writing it from scratch, so when I start something fresh with them, I work in small, discrete steps, close to pair programming, keeping the architecture and patterns in my own hands and testing as I go.

I've seen how a small UX issue or a slow page can become a real problem for thousands of people once a system is under production load. So I bring engineering thinking into product development to build web applications that hold up under the pressure. For example, by moving one marketing site from server-side rendering to static publishing on a CDN, I reduced initial response times from four to eight seconds down to around 400 milliseconds.

I ground design decisions in real user research: surveys, interviews and usage data, while anchoring designs around user journeys and optimising workflow around core tasks to cut admin overhead from people's everyday work. On a larger project, changing course late is expensive, so I'd rather shape and test ideas in wireframes or prototypes to find the problems when they're cheap to fix, and move to code once the design has held up to scrutiny.

I care about the finishing touches that make a product feel considered: smooth, performant animations and transitions, and the accessibility details like full keyboard navigation. Building these into a design system or shared component layer means the investment pays off across the whole product as the polished pieces get reused. Working closely with talented designers has sharpened my own eye for this. On lean teams with no dedicated designer, I can run the UX practices myself: research, wireframing, interaction and accessibility detail.

Where I add value

  • Client collaboration

    Working directly with clients and stakeholders to understand the business, elicit requirements and evolve the product through feedback cycles.
  • Research and measurement

    Grounding product decisions in evidence through user research such as surveys or interviews, direct user feedback and usage analytics. Designing and setting up the custom measurement strategy: from page load event tracking and scroll depth to conversion and key feature interactions.
  • Bridging design and engineering

    Working closely with designers to advocate for opportunities unlocked by new technologies, ensure UX decisions are technically feasible, and catch edge cases in the design stage rather than in production.
  • Design systems

    Building design systems and reusable component libraries that keep a product consistent and speed up delivery, with accessibility built in at the component level.
  • Frontend architecture

    Architecting frontend applications that stay fast and maintainable as they grow, so the technical foundations hold up over time. Performance is a first-class concern here, measured against metrics such as Core Web Vitals and production load times.
  • Accessibility and discoverability

    Building to WCAG 2.1 AA and NZ government accessibility standards, with the structural foundations such as clean semantic HTML, well-formed content and structured-data schema, which serve both traditional SEO and emerging AI-driven discovery (GEO).
  • Privacy and sensitive data

    Privacy-conscious engineering in regulated domains, with access controls, data masking and careful handling of sensitive data.
  • Legacy codebases

    Getting up to speed quickly in an unfamiliar or legacy codebase, working out where the most urgent technical debt is and paying it down through strategic, progressive refactoring while still delivering features.
  • Modern web platforms

    Deployment foundations for fast, modern web delivery: CI/CD pipelines, infrastructure as code, CDN delivery, and rendering strategy across server-side, static and SPA.
©2026 J Champion