tony@sala.dev:~ $ cd services

~/services $ ls

Seven kinds of work I take on as a contractor — from a marketing site to the cluster it runs on. Each one is built test-first and handed over with the keys.

Services

$ ls services/ | wc -l  →  7 services

01 · websites

Marketing & content sites

Fast, accessible sites that say what you do and that your team can edit without calling me.

YOU GET

  • design built in code, not a template
  • content you can edit yourselves
  • SEO basics, analytics, redirects
  • hosting, TLS and DNS set up
[SVELTE][TYPESCRIPT][LARAVEL][CLOUDFLARE]

proof: UEA's move from Liferay to a headless CMS (Storyblok, Next.js)

02 · web-apps

Web applications

Line-of-business apps with real domain logic: portals, dashboards, workflows, admin tools.

YOU GET

  • a domain model in plain language
  • tests from the first commit
  • auth, roles, audit where it matters
  • CI and a deploy you can repeat
[LARAVEL][PHP][SVELTE][SQL]

proof: a fertility-clinic platform from its first commit · a regulated health-tech portal

03 · android

Android apps

Native Kotlin apps with Jetpack Compose, for phones and, where it fits, Wear OS and Android TV.

YOU GET

  • a signed release build
  • phone, Wear OS or TV targets
  • the same pipeline as your web app
[KOTLIN][COMPOSE][WEAR OS][ANDROID TV]

proof: 4 Substation Android apps

04 · backend

Backend systems & APIs

APIs and services that stay correct under change: typed, tested, observable. PHP or Rust.

YOU GET

  • a documented REST, gRPC or WS API
  • value objects and strict types
  • unit and integration suites
  • alerts on what actually breaks
[LARAVEL][RUST][SQL][GRPC]

proof: UEA's GraphQL API on Laravel Vapor · Substation axum API, ~2,700 tests

05 · infra

Infrastructure & DevOps

Somewhere sane for your software to live, and a pipeline that ships it without a ritual.

YOU GET

  • k3s, or a simpler host if it fits
  • GitOps with Flux: repo is truth
  • CI/CD with tests as the gate
  • one-command rollback
[K3S][FLUX][DOCKER][GITHUB ACTIONS][CLOUDFLARE]

proof: a 4-node k3s cluster I run · Terraform on AWS for a clinic platform

06 · rescue

Rescue & maintenance

The legacy codebase nobody wants to touch. Tests go in first, then the refactor, then the upgrade.

YOU GET

  • an honest audit of what is there
  • tests pinned down before changes
  • refactors in small, reviewable PRs
  • PHP and framework upgrades
[PHP][LARAVEL][PSR-12][SQL]

proof: 642 test files added to a six-year-old Laravel codebase

07 · ai

AI & automation

LLM agents and tools wired into real systems, with a deterministic path first and the model as fallback.

YOU GET

  • agents that call your real APIs
  • fast local path, LLM as fallback
  • chat or voice front ends
  • a log of every action taken
[CLAUDE][RUST][LARAVEL][TELEGRAM]

proof: harnessd (Jira → Claude Code → PR) · Substation voice + Telegram agent

the stack, honestly

hover or tab through a row to see where I've used it

2 · depth  █ used daily · ░ not yet

questions people ask

4 · faq

Both. A day rate suits ongoing work or a scope that is still moving; fixed-scope work is priced after a written plan, so the number has something real behind it. Either way, pricing comes after a short call, not before. See /process for the three ways to work together.

NORMAL /services available UK · remote tony@sala.dev updated
available Start a project →