Skills, A to Z

Everything I work with, listed honestly. Rather than percentage bars, which nobody can verify and everybody inflates. Each entry carries one of three levels.

Core
Used regularly, comfortable owning production work in it.
Working
Used on real projects, productive with reference to the docs.
Familiar
Read it and shipped small things, would ramp up before owning it.

By area

Grouped by what it is for

132 entries across 15 areas. Jump to the alphabetical index below if you are looking for something specific.

Languages

The languages I write day to day.

PHPJavaScriptTypeScriptPythonSQLBash / ShellHTML5CSS3GoRegex

Backend Frameworks

Application frameworks and runtimes.

LaravelNode.jsExpressFastifyNestJSFastAPIDjangoSymfony componentsCodeIgniterCeleryBullMQ

Frontend & UI

Everything that runs in the browser.

ReactReact RouterNext.jsViteTailwind CSSAlpine.jsLivewireInertia.jsWeb Accessibility (WCAG)Responsive DesignProgressive Web Apps

Motion & 3D

Animation and WebGL work on the web.

GSAPScrollTriggerThree.jsReact Three FiberFramer MotionLenisCanvas & WebGLLottieSVG Animation

CMS & E-commerce

Platforms clients edit themselves.

WordPressWooCommerceAdvanced Custom FieldsWP-CLIHeadless CMSShopify

Databases & Caching

Storage, query tuning and caches.

MySQLMariaDBPostgreSQLRedisSQLiteMongoDBPrismaEloquent ORMQuery Optimisation

Servers & Web Stack

Operating systems and the services on them.

LinuxUbuntu / DebianAlmaLinux / CentOSNginxApachePHP-FPMsystemdSSHCronLet's Encrypt / Certbot

Control Panels & Hosting

cPanel, WHM and the hosting ecosystem.

cPanelWHMEasyApache 4MultiPHPWHMCSPleskCyberPanelDirectAdminCloudLinux

DevOps & Tooling

Build, deploy, automate, observe.

GitGitHub ActionsGitLab CIDockerAnsibleTerraformPM2Composernpm / pnpmWebpack

Cloud & Infrastructure

Where the servers actually live.

AWSDigitalOceanHetznerLinode / VultrCloudflareObject Storage (S3)Vercel / Netlify

Security

Hardening, detection and recovery.

Server HardeningCSF / LFDFail2banModSecuritySSL / TLSMalware RemovalOWASP Top 10Incident Response

AI & Machine Learning

Applied AI, agents and retrieval.

Claude APIOpenAI APIPrompt EngineeringRAGVector DatabasesAI AgentsModel Context ProtocolLangChainEmbeddings & Semantic SearchLLM Evaluation

Email, DNS & Deliverability

The layer everyone forgets until it breaks.

DNSSPF / DKIM / DMARCEximPostfixGoogle WorkspaceMicrosoft 365DeliverabilityTransactional Email

Performance & SEO

Making sites fast and findable.

Core Web VitalsLighthouse / WebPageTestTechnical SEOSchema.org / JSON-LDGoogle Search ConsoleCaching StrategyImage Optimisation

Practices & Collaboration

How the work actually gets done.

Code ReviewTestingTechnical DocumentationTechnical SupportDebuggingAgile / ScrumClient Communication

Index

Alphabetical index

Every entry with a note on how I actually use it.

A

Advanced Custom Fields Working

Structured editing interfaces so content teams are not fighting a page builder.

Agile / Scrum Working

Working in iterations with visible progress, sized to the team rather than the ceremony.

AI Agents Working

Tool-using agents with iteration caps, scoped permissions, full tracing and an approval gate.

AlmaLinux / CentOS Core

The RHEL side, which is what most cPanel hosting actually runs on.

Alpine.js Working

Small amounts of interactivity in server-rendered pages without shipping a framework.

Ansible Working

Idempotent server provisioning so a box can be rebuilt rather than resurrected.

Apache Core

Virtual hosts, .htaccess, mod_rewrite and the module set that shows up on shared hosting.

AWS Working

EC2, S3, RDS, Route 53 and CloudFront, used where its managed services genuinely earn the cost.

B

Bash / Shell Core

The glue of server work: log parsing, backups, cron jobs and one-off migrations.

BullMQ Working

Redis-backed job queues in Node, retries, backoff and dead-letter handling.

C

Caching Strategy Core

Browser, CDN, page and object caching layered so they do not fight each other.

Canvas & WebGL Working

Generative backgrounds and particle systems, with a static fallback for reduced-motion users.

Celery Working

Background and periodic tasks in Python, with retry policies and visible failures.

Claude API Core

Tool use, streaming, prompt caching and structured output against a defined schema.

Client Communication Core

Saying what something will cost, what it will not fix, and when a cheaper option exists.

Cloudflare Core

DNS, CDN, WAF, page rules and Workers, plus knowing which of its features cause more problems than they solve.

CloudLinux Working

LVE resource limits so one busy account cannot take down every other site on the box.

Code Review Core

Reviewing for correctness and clarity, and writing changes that are reviewable in the first place.

CodeIgniter Familiar

Encountered mostly in maintenance work on older PHP applications.

Composer Core

PHP dependency management, including retrofitting it onto codebases built on require_once.

Core Web Vitals Core

LCP, CLS and INP treated as build constraints rather than a post-launch clean-up job.

cPanel Core

Account-level administration, file and database management, and the settings that trip people up.

Cron Core

Scheduled jobs that report their failures instead of dying silently at 3am.

CSF / LFD Core

Firewall and login-failure daemon configuration on cPanel servers.

CSS3 Core

Grid, container queries, custom properties, :has(), and fluid type with clamp().

CyberPanel Familiar

OpenLiteSpeed-based panel, useful where licence cost is the deciding factor.

D

Debugging Core

Reading logs and reproducing reliably before changing anything. Guessing is slower.

Deliverability Core

Header analysis, blocklist checks, delisting requests and reputation recovery.

DigitalOcean Core

Droplets, volumes, Spaces and managed databases. Often the sensible default for a single application.

DirectAdmin Familiar

Lightweight alternative encountered on some hosting stacks.

Django Working

Chosen when the admin, ORM and auth being there on day one is worth more than flexibility.

DNS Core

Record types, TTL strategy, propagation reality, and audits before a migration.

Docker Working

Multi-stage builds, non-root users, and Compose for development environments that match production.

E

EasyApache 4 Core

Building the web stack profile and enabling the right PHP extensions per site.

Eloquent ORM Core

Relationships and query scopes, with an eye on the N+1 problems ORMs make easy to create.

Embeddings & Semantic Search Working

Hybrid keyword-plus-vector search, because pure vector search is weak on exact terms.

Exim Working

The cPanel mail transfer agent, configuration, queue inspection and log reading.

Express Core

Small, unopinionated HTTP services where a full framework would be overhead.

F

Fail2ban Core

Brute-force protection on SSH, mail and application login endpoints.

FastAPI Core

Typed Python APIs with Pydantic models and OpenAPI docs generated from the code.

Fastify Working

When throughput and schema-validated routes matter more than the size of the plugin ecosystem.

Framer Motion Working

Component transitions, gestures and layout animation in React.

G

Git Core

Branching that suits the team size, readable history, and bisect when something needs finding.

GitHub Actions Core

Test, build and deploy pipelines with secrets handled properly and branch protection enforced.

GitLab CI Working

The same pipeline patterns where the repository already lives on GitLab.

Go Familiar

Read it comfortably and have written small CLI tools; would ramp up before owning a Go service.

Google Search Console Core

Coverage reports, index diagnostics and monitoring after a migration.

Google Workspace Core

Setup, migration and DNS configuration for business mail.

GSAP Core

Timelines and choreography. The most reliable option when animation gets past a couple of keyframes.

H

Headless CMS Working

Strapi and similar, where the editing experience and the frontend genuinely benefit from separation.

Hetzner Working

Hard to beat on price per unit of compute when the region suits your audience.

HTML5 Core

Semantic markup as the foundation. It is what accessibility and SEO both actually rest on.

I

Image Optimisation Core

AVIF and WebP with fallbacks, responsive srcsets and correct lazy-loading boundaries.

Incident Response Working

Containment, evidence preservation, clean-up and a written account of what happened.

Inertia.js Working

React components with Laravel routing and controllers, no separate API to maintain.

J

JavaScript Core

Modern ES2023+ on both sides of the wire: modules, async iteration, and the browser APIs that replaced half of what jQuery did.

L

LangChain Familiar

Used selectively; for most pipelines the direct SDK is less abstraction to debug.

Laravel Core

Eloquent, queues, Horizon, policies, API resources and Pest, the framework I reach for most in PHP.

Lenis Working

Smooth scrolling that keeps native behaviour, keyboard support and anchor links intact.

Let's Encrypt / Certbot Core

Automated issuance and renewal, with the renewal actually tested rather than assumed.

Lighthouse / WebPageTest Core

Lab profiling, alongside field data, because they answer different questions.

Linode / Vultr Working

Straightforward VPS providers with predictable pricing.

Linux Core

Ubuntu, Debian, AlmaLinux and CentOS, provisioning, tuning and diagnosing them under load.

Livewire Working

Server-driven interactive UI in Laravel, which keeps small teams in one language.

LLM Evaluation Working

Test sets with expected outputs and automatic scoring, so prompt changes are measured.

Lottie Familiar

Rendering designer-produced After Effects animations for icons and micro-interactions.

M

Malware Removal Core

Backdoor hunting, root cause analysis and blocklist removal, in that order.

MariaDB Core

The default on most cPanel servers, configured and tuned to the memory actually available.

Microsoft 365 Working

Exchange Online records, mailbox migration and client configuration.

Model Context Protocol Working

MCP servers exposing internal systems to AI assistants in a controlled, auditable way.

ModSecurity Working

Web application firewall rules, tuned so they block attacks rather than customers.

MongoDB Familiar

Used where it was already in place; I would ask hard questions before choosing it fresh.

MultiPHP Core

Running different PHP versions per account, which is what makes staged upgrades possible.

MySQL Core

Schema design, indexing, slow query analysis and replication for migrations.

N

NestJS Working

Structure and dependency injection for Node projects large enough to need them.

Next.js Working

When a React project needs server rendering or static generation for search visibility.

Nginx Core

Reverse proxying, caching, rate limiting, TLS termination and rewrite rules that do what they read like.

Node.js Core

Runtime plus the production side: graceful shutdown, supervision, structured logs and memory limits.

npm / pnpm Core

Lockfile discipline and audit reports that get read rather than ignored.

O

Object Storage (S3) Working

Media offloading, backup destinations, lifecycle policies and signed URLs.

OpenAI API Working

The alternative provider, kept behind the same internal interface so switching stays cheap.

OWASP Top 10 Core

Injection, broken access control, XSS and the rest, as review criteria, not a certificate.

P

PHP Core

PHP 8 with modern syntax, enums, readonly properties, named arguments, and the discipline to work in older codebases too.

PHP-FPM Core

Pool sizing matched to real memory, the single most common cause of a server that swaps under load.

Plesk Working

The other major panel, same concepts, different interface.

PM2 Core

Node process supervision, clustering, log rotation and zero-downtime reloads.

Postfix Working

The MTA on most non-cPanel Linux servers.

PostgreSQL Working

JSONB, full-text search and pgvector for embeddings when a separate vector store is overkill.

Prisma Working

Typed database access in TypeScript with migrations kept in version control.

Progressive Web Apps Working

Service workers, offline fallbacks and installability where they solve an actual user problem.

Prompt Engineering Core

Prompts in version control, evaluated against real examples rather than tuned by vibe.

Python Core

Services, data work and server automation. Type hints on public interfaces, checked in CI.

Q

Query Optimisation Core

Reading EXPLAIN output and adding the index that was never created, rather than adding another cache layer.

R

RAG Core

Chunking, embeddings, hybrid retrieval and re-ranking, with citations so answers can be checked.

React Core

Component architecture a second developer can read, with state kept as local as it can be.

React Router Core

Route-level code splitting, data loading and nested layouts.

React Three Fiber Working

Declarative Three.js in React, with drei for the parts nobody should write twice.

Redis Core

Caching, sessions, queues and rate limiting, with eviction policy chosen deliberately.

Regex Working

For log analysis, redirect maps and validation, used sparingly, because it is rarely the right parser.

Responsive Design Core

Fluid type and spacing, container queries, and real testing on mid-range devices.

S

Schema.org / JSON-LD Core

Structured data that matches visible content, which is what the guidelines require.

ScrollTrigger Core

Scroll-linked sequences, pinning and scrubbing, without hijacking the browser's native scroll.

Server Hardening Core

Reducing attack surface first, fewer ports, fewer services, fewer permanent credentials.

Shopify Familiar

Liquid theme edits and app integration; not a platform I position myself as a specialist in.

SPF / DKIM / DMARC Core

Authentication set up in the right order, with DMARC reports read before enforcement.

SQL Core

Joins, window functions, and reading an EXPLAIN plan to find out why a query got slow.

SQLite Working

Genuinely underrated for small applications, local tooling and test suites.

SSH Core

Key management, config files, tunnelling and jump hosts. Password login disabled everywhere.

SSL / TLS Core

Certificate lifecycle, modern cipher configuration, HSTS and mixed-content clean-up.

SVG Animation Working

Path drawing and morphing, often the cheapest way to add motion that stays crisp at any size.

Symfony components Working

Used standalone to modernise legacy PHP without committing to a full framework rewrite.

systemd Core

Unit files, timers, journal analysis and resource limits per service.

T

Tailwind CSS Working

Used where a team already prefers it; design tokens still live in one place either way.

Technical Documentation Core

READMEs that work from a clean checkout, and runbooks written before they are needed.

Technical SEO Core

Crawlability, canonicals, redirects, sitemaps and index management.

Technical Support Core

Diagnosing a problem from a vague report, and explaining the fix without condescension.

Terraform Familiar

Infrastructure as code where the environment is complex enough to warrant it.

Testing Core

Pest, PHPUnit, pytest, Vitest and Playwright, weighted toward the paths that carry money.

Three.js Working

WebGL scenes, custom shader material and instanced geometry, budgeted against the performance cost.

Transactional Email Working

Postmark, SES and Mailgun on an authenticated subdomain, separate from marketing sends.

TypeScript Core

Types where they catch real mistakes. API contracts, data models, shared code between frontend and backend.

U

Ubuntu / Debian Core

My default for application servers, with unattended security upgrades configured from day one.

V

Vector Databases Working

pgvector and Qdrant, chosen on whether a separate store is justified at all.

Vercel / Netlify Working

Static and edge-rendered frontends where a full server is unnecessary overhead.

Vite Core

The build tool I default to, fast dev server, sensible production output, easy to reason about.

W

Web Accessibility (WCAG) Core

Keyboard paths, focus management, contrast, heading order and reduced-motion support, tested, not assumed.

Webpack Working

Mostly maintenance on existing configurations; new projects go to Vite.

WHM Core

Server-level configuration, packages, transfers, resource limits and Tweak Settings.

WHMCS Working

Billing and provisioning automation for hosting operations.

WooCommerce Working

Checkout customisation, shipping and tax rules, and query tuning for large catalogues.

WordPress Core

Custom themes and plugins, plus the recovery work on sites buried in plugin conflicts.

WP-CLI Core

Bulk operations, search-replace across serialised data, and scripted migrations.

Looking for something that is not on this list?

Ask. If it is close to something here I will say so, and if it is genuinely outside what I do I will tell you that instead of learning on your budget.

Ask about it