Michael Pilgram — 15 years building full-stack web applications. Independent engineer who reaches for the right language and tools for the job — TypeScript, PHP, Go, whatever fits. I care a lot about performance and clean, honest UX. Based in the UK.
15 years in web development, now working independently across the full stack. I'm not tied to one ecosystem — I pick the language and tooling that fit the output rather than forcing everything through a single stack. Most days that's TypeScript and React; when the job calls for it, PHP, Go, or something else entirely. Either way, I spend a lot of time on the things users feel but rarely notice — speed, smooth interactions, and interfaces that just make sense. Lately I've been deep in edge computing and MCP servers for AI agents.
const michael = {
location: "🇬🇧 United Kingdom",
role: "Independent Full-Stack Engineer",
focus: "Edge-first apps & AI tooling",
values: {
performance: "Fast by default, not as an afterthought",
ux: "Good design gets out of the way",
code: "Understand the problem before the pattern",
tools: "Pick the right one for the job, not by habit"
},
// Not a fixed stack — a sample of what I reach for
languages: ["TypeScript", "PHP", "Go", "SQL"],
reachFor: {
web: ["Next.js", "React", "Tailwind"],
data: ["PostgreSQL", "Supabase"],
infra: ["Vercel", "Railway", "Cloudflare"],
ai: ["MCP servers", "edge functions"]
}
}- Edge-first apps — deployed close to users on Vercel and Cloudflare
- MCP servers — tooling that makes AI agents genuinely useful
- Type-safe full-stack — from the database up, end to end
- Web apps — fast, responsive, and built to last, whatever the stack
Not a fixed stack — I choose per project. A sample of what I use often:
- Understand the problem before reaching for a pattern
- Let the data guide decisions, not just instinct
- Keep code simple enough that it mostly disappears
- Ship something that works, then make it right and fast
- Care about the details users feel but rarely see
- MCP Servers — building tooling for AI agents
- Edge Computing — keeping apps fast wherever people are
- UI/UX — interfaces that feel obvious to use
- Right tool, right job — matching the language to the problem
- Observability — understanding why, not just what