From interface to infrastructure.

Since 1998, I’ve worked across interface design, application development, data and the infrastructure underneath, often within the same project.

Today, much of that work involves building full-stack systems and operating services on AWS, Google Cloud and DigitalOcean.

What I work with today

Cloud & operations

I run and maintain Linux-based services across AWS, Google Cloud and DigitalOcean, covering deployment, networking, security, databases, monitoring and the less visible work that keeps systems dependable.

Representative experience

  • AWS, including EC2
  • Google Cloud: Cloud Run, Cloud Functions, Cloud Storage
  • Firebase and Firestore
  • DigitalOcean Droplets and Spaces
  • Linux, primarily Ubuntu and earlier CentOS
  • Nginx and Apache
  • DNS, TLS and certificates
Show 7 moreHide 7 moreCloud & operations skills
  • SSH access and account security
  • Firewall configuration
  • Backups and recovery
  • Monitoring and performance work
  • Node.js services managed with PM2
  • Docker
  • Vagrant and local virtualised environments

Full-stack engineering

I build web applications from interface to API, choosing technology around the problem and the systems already in place. Maintainability, accessibility and predictable operation matter more to me than novelty.

Representative experience

  • JavaScript and TypeScript
  • Vue and Nuxt
  • React and Next.js
  • HTML and modern CSS
  • Node.js and Bun
  • PHP and Laravel
  • REST APIs and third-party integrations
Show 11 moreHide 11 moreFull-stack engineering skills
  • Sass and Less
  • C# and .NET
  • Python and Django
  • Server-side rendering and hydration
  • WordPress themes and plugins
  • Umbraco and Razor
  • Automated linting, formatting and testing
  • GitHub and Bitbucket workflows
  • Mobile application development
  • Small game development
  • App-store release workflows

Data, search & AI

My backend work often involves connecting data sources, search systems and external services. More recently, I’ve worked with content ingestion, vector search and AI-assisted retrieval.

Representative experience

  • MariaDB and MySQL
  • PostgreSQL and Supabase
  • Firestore
  • Elasticsearch
  • PostgreSQL with pgvector
  • Embeddings and semantic search
  • OpenAI API integrations
Show 6 moreHide 6 moreData, search & AI skills
  • Microsoft SQL Server
  • Redis
  • ClickHouse
  • Sphinx
  • Content ingestion from Markdown, PDF and web pages
  • Crawlers and document-processing pipelines

AI in the day-to-day

AI tools are part of my day-to-day workflow for visual exploration, research, implementation and review. The specific tools change often, so I choose them per task rather than list them here. They help me move from an idea to a considered result more quickly, while I remain responsible for the direction and quality of the work.

Design & UX

My work began with design, and it continues to shape how I approach software. I care about hierarchy, typography, accessibility and interfaces that make complex systems easier to understand.

Representative experience

  • UI and UX design
  • Responsive interface design
  • Prototyping
  • Design systems
  • Visual identity
  • WCAG and accessibility reviews
Show 3 moreHide 3 moreDesign & UX skills
  • Figma and Sketch
  • Adobe Photoshop and Illustrator
  • Adobe Premiere Pro and After Effects

How the pieces come together

A few examples of systems that have brought several disciplines together.

  • Operations platform

    A back-office system for monitoring and maintaining distributed physical installations, combining operational status, external API integrations, camera access and real-time transaction updates.

    Disciplines

    • Product and interface design
    • Vue
    • Backend integrations
    • Proxy and networking
    • Operational monitoring
  • Interactive property selector

    An interactive property and plot-selection product built with Vue and Google Cloud services: containerised applications, serverless functions, object storage and Firestore.

    Disciplines

    • Interface design
    • Vue
    • Cloud Run
    • Cloud Functions
    • Cloud Storage
    • Firestore
  • Search and content processing

    A system that accepts documents and web content, processes the material for retrieval, creates vector representations and supports semantic search through an AI API.

    Disciplines

    • Crawling and content processing
    • PostgreSQL
    • Supabase and pgvector
    • Serverless functions
    • Embeddings
    • API integration

Built over time

Some tools have stayed central to my work; others belong to an earlier chapter. That range is still useful when maintaining established systems, planning migrations or understanding why a product works the way it does.

Show 11 earlier technologiesHide 11 earlier technologies
  • Angular
  • jQuery
  • CakePHP
  • Bootstrap
  • Umbraco
  • Microsoft IIS
  • CentOS
  • Azure
  • Adobe XD
  • Older WordPress and custom CMS development
  • Earlier deployment and GitFlow workflows

Have a project that crosses a few layers?

Whether the work begins with an interface, an API or a server, I’m comfortable working across those boundaries. If that would be useful, I’d be glad to hear what you’re working on.

Let’s talk