Services

What I build, and how

Every engagement is scoped up front, built in a repository you own, and shipped through an automated pipeline. Pick the service that fits, or mix them — most projects touch more than one.

Websites that load fast and read well

Marketing sites, brochure sites and landing pages built by hand — responsive, accessible, and free of page-builder bloat.

  • Responsive layouts from phones to 1200px desktops
  • Semantic HTML, clean CSS, minimal JavaScript
  • SEO fundamentals: metadata, sitemaps, structured data
  • Hosting set-up on Apache/Nginx with TLS and caching

Custom web applications

Data-driven apps with accounts, dashboards, imports/exports and reporting — built on PHP 8 / Symfony with MariaDB.

  • Authentication, roles and per-record authorization
  • Forms, validation, file imports and scheduled jobs
  • Reports, charts and printable/PDF output
  • Admin interfaces for managing data across users

Support for applications you already run

Keep an existing PHP application healthy: upgrades, bug fixes, performance work and security hardening.

  • Framework and PHP version upgrades
  • Bug fixes with regression tests
  • Query and caching work for slow pages
  • Security headers, CSP, rate limiting, audit logging

Integrations and automation

Connect your application to the services it depends on — payments, email, maps, market data, AI assistants — with sane limits and fail-safes.

  • Third-party REST APIs and webhooks
  • Transactional email (Postmark, SMTP) and notifications
  • Google Maps, pricing feeds, Claude-powered features
  • Budget-capped API usage with kill-switches

CI/CD, testing and deployment

Pipelines that test every change and deploy on green — zero-downtime releases, migrations, smoke tests and automatic rollback.

  • GitHub Actions pipelines with coverage gates
  • Deployer-based atomic releases with rollback
  • Backups, point-in-time restore, monitoring
  • Secrets management and server hardening

Technical consulting

A second set of eyes: code reviews, architecture advice, estimates, and help choosing what to build next.

  • Code and architecture reviews
  • Scoping and estimates for new work
  • Hand-over documentation for your team
  • Fixed-price or hourly engagements

Engagement models

Three ways to work together

Fixed-price project

A defined scope, a written estimate, and a price that doesn't move unless the scope does. Best for new sites and well-understood features.

Hourly

For support, investigation and work that can't be scoped up front. Time is tracked and reported; you set the cap.

Monthly retainer

A block of hours each month for upgrades, fixes, monitoring and small improvements, with priority response.

Not sure which one you need?

Describe the problem and I'll suggest the smallest thing that solves it.

Describe your project