Hi, I'm Sam!

I’m a web developer, specialising in WordPress and Shopify builds, although I also work happily in other PHP and Node frameworks. My experience is mostly in small to medium agencies, taking unofficial leadership in the development team, but also getting involved in other departments including design, strategy and marketing.

Front-end devs that shout about "pixel-perfect" sites don't impress me - I feel like that should be the baseline for competency. When I'm implementing a design I like to look a little further down the road - user experience, accessibility, performance - the stuff that actually adds value to a project rather than just translating the design into code.

A couple of philosophical thoughts:

1. Justify your actions

When I do something, I try to make sure I know why I’m doing it. I push back against design and engineering decisions that favour aesthetic over user experience. There needs to be a good reason to add complexity into your system.

For client work, I aim to provide recommendations on the basis of low effort, high value. Maybe that’s common sense, but I feel like it's easy to get swept up in a wave of quotes that cost a lot, but don’t move the needle on performance - and that doesn’t make for a sustainable client-agency relationship in my experience.

2. Radical honesty

I reckon you can do business and keep your conscience at the same time. Tell clients when you're going out on a limb. Tell them their idea might be expensive, but not good. Admit it when you mess up.

The reputation hit of falling out of your spin is not worth the short term advantage of inflating your capability. Building mutual trust in an ongoing relationship is absolutely crucial. Keeping clear and honest communication means that everyone gets to do their best work.

3. Spread expertise

One of the things I crave is for someone to tell me when I'm wrong. I've spent a lot of time writing unstructured, un-reviewed code and I know it ends up looking pretty cowboy. I've done my best to self-direct my learning, but having someone who knows tell you what you need to know and why you need to know it is just way more effective.

"Hey, you know you can't use forEach on nodelists with an IE11 target?"

"Oh, I've seen this before- it's probably because iOS Webkit doesn't respect pointer-events: none properly"

"The build includes autoprefixer - you probably don't need to write a mixin for that"

I seek out learning from my peers and aim to pass on what I know wherever I can.

That's it.

A few things about me that you know now. Enjoy your visit, and I'll see you online.