
Hello,I'm Dan
I'm a Senior Frontend Engineer, with ten years of professional experience, based in Cambridge, UK, with a deep curiosity for how things work — from building scalable, user-friendly interfaces, to exploring hands-on projects like 3D printing, making chainmail, and even chocolate from scratch. I bring the same precision and creativity to code as I do to every challenge I take on.
Core Expertise
- Frontend Development
- Accessibility
- Design Systems
- Component Libraries
- Prototyping UI's
Current Focus
- Next.js & React
- TypeScript & JS fundamentals
- Tailwind & ShadCN base
- Using AI agents to improve workflows
Technical Skills & Experience
My main language since I switched from full time PHP 9 years ago. I don't think I've ever stopped learning it. From college, to reading Eloquent JavaScript in my first proper JS role, to more recently the content on ui.dev.
The best thing to happen to JavaScript, though I have not always thought this. It's made complex systems a joy to scale and maintain. I've yet to take the plunge on Total TypeScript but Matt Pocock has some of the best content on TS I've seen.
I've been wrangling with CSS for a long time. I try my best to stay up to date, doing this site I actually learned about calc-size, as this allowed me to animate this very box with an auto height.
The foundation of the web. I've been writing HTML since early web social media. I'm comfortable with semantic HTML and accessibility best practices. But I also understand that websites are complex and some functionality requires a few extra elements.
The backbone of most projects I've worked on, since Backbone. I'm comfortable building dashboards, design systems and anything in between.
A personal favourite. It enables rapid development with all the modern conveniences baked in. I particularly like the ease of prototyping and hosting on Vercel.
Clean, consistent styling at speed. I've helped teams adopt it effectively in large-scale apps. I love how it encourages a component-driven mindset and massively lowers cognitive load often taken by CSS. A massive recent benefit is how nicely it pairs with LLM's.
A fantastic tool for building accessible, reusable component libraries. I love how it simplifies design system implementation. Rapid prototyping and time to MVP are greatly improved by revolutionary tools like this.
From CSS frameworks to component libraries, I've built and maintained systems that scale across teams. Storybook documentation, good defaults, deployed or as part of a monorepo.
A key focus in most of my roles. I'll never forget the line "A person holding a baby is no different to someone with one arm". I strive to make my work accessible to all users, regardless of their abilities, or disabilities, temporary or not.
I've not used Node in anger a lot. But the heavy overlap with JavaScript and a few projects such as Discord bots have shown me I can at least run with it.
A crucial tool in my workflow. I am proficient, but I am not a wizard. I know how to rebase, merge and manage conflicts while not causing issues for other team members.
* Proficiency is self-assessed based on experience, comfort level, and familiarity with the technology. I know skill bars are a bit naff but it's visually appealing. The proper details are on my CV page.