Hi there 👋, I'm Liam.
Self-taught, UK based, 3 years of learning and building. Looking for my
first development role while exploring full-stack.
Skills & Technologies
Core Frontend
- Semantic HTML, modern CSS, JavaScript (ES6+)
- React & Next.js (app and pages routers)
- TypeScript (basic to intermediate use)
- Tailwind CSS
- RHF and Zod for form handling and validation
Backend & Full Stack
- Node.js, Express, PostgreSQL (basic to intermediate)
- Experience building APIs and connecting to databases
Testing & Tooling
- Version control with Git & GitHub
- Deployments with Vercel and Render
- Working knowledge of Vitest, Jest, and Playwright
Exploring
- PHP & Laravel
- Accessibility best practices
- TanStack (Query, Router, Table)
- Frontend performance optimization
Projects

Personal Finance Dashboard
A personal finance tracker built with Next.js and Supabase. Features dynamic budgeting, savings goals (“pots”), and transaction history. Built to deepen my understanding of full-stack app structure, state management with TanStack Query, and TypeScript integration.
- Next.js
- Typescript
- TanStack Query
- Supabase

Product Feedback App
A responsive web app for submitting and discussing product feedback. Features voting, filtering, nested comments, and a detailed suggestion board.
- Next.js
- TypeScript
- Tailwind
- Zustand

GitHub Issue Viewer
A lightweight web app to browse GitHub issues using the GitHub API. Implements data caching and pagination with React Query for a smooth experience.
- React
- TypeScript
- React Query
- Tailwind
- GitHub API

Multi-Step Form
A polished multi-step form with validation using Zod and React Hook Form. Supports step navigation, error handling, and a toast notification on submission.
- React
- TypeScript
- React Hook Form
- Zod
- Tailwind

Planetary Facts
A responsive, modern web app built with Next.js 15, React 19, and Tailwind CSS 4, showcasing facts and visuals about the planets in our solar system.
- Next.js
- JavaScript
- Tailwind
About Me
I'm a self-taught developer making the jump into tech after 3 years of dedicated learning. My path started with a simple console.log("Hello World") through The Odin Project - once I saw I could make a computer respond to what I'd typed, I was completely hooked.
Coming from a background as an ESRI/ARCFM technician, I've always been someone who likes to dig into how things are made - whether that's music gear, film processes, or now web apps. What drew me to frontend initially was the immediate visual feedback loop, but I'm naturally progressing toward full-stack work and currently diving into PHP with plans to learn Laravel.
My learning approach is methodical - when React wasn't clicking, I stepped back to solidify my JavaScript foundations. I spent 4 months with Python and OOP concepts, which made certain JS concepts much clearer. Every project I build has a specific learning goal, whether that's data fetching, state management, or styling techniques.
I'm looking for a role that balances autonomy with mentorship - I learn well in sink-or-swim situations but also want to absorb best practices from experienced developers. Longer term, I'm excited about the prospect of mentoring others myself; helping people understand complex concepts is one of the most satisfying parts of any role I've had.
Currently job hunting after redundancy, I'm open to relocating for the right opportunity and hoping to land something this year. What excites me most is the constant learning and the possibility of building something people actually use and benefit from.
Contact
I would love to hear about your project and how I could help. Please fill in the form, and I’ll get back to you as soon as possible.