I'm a Software Developer from Lancashire in the UK. Currently a Director at Servd. In my spare time, I'm a Rails/Laravel/Craft CMS freelancer. I also do a bit of writing, I've got a blog and a new guide to writing better CSS. If you'd like to get in touch, send me an email or a tweet.
A few weeks ago I sadly handed in my resignation as Tech Lead at Residently . It’s been such a fantastic four years; I feel like I’ve grown so much, in ways I hadn’t anticipated. I’d like to thank all my fellow Residently-ers who have supported and mentored me during my time there. But where one door shuts, another opens, and I’m excited to announce that I’ll be joining Servd as…
Throughout my software engineering career, I’ve had the good fortune to be part of some great teams from which I’ve learnt loads. It’s been great to see what characteristics work and don’t work, what’s hard and what’s easy. The key feature of high-productivity teams that I’ve seen is a good push-and-pull dynamic between pragmatism and idealism. Full-throttle pragmatism results…
For the past 3 years, I’ve been dipping my toe into the shallow end of freelance software developing. In other words, I’ve been working a full-time development job as well as freelancing in my evenings and weekends. While the journey has been a bit bumpy at times, it’s been a massively rewarding experience that I feel has pushed me forward leaps and bounds. Doing part-time…
Day to day, I read and write a quite a lot of SCSS . I often follow BEM ’s guidelines whilst writing it. So naturally over time I’ve developed opinions on what I think concise, clear but also maintainable BEM + SCSS looks like. The Ideal Example # So below is how, in an ideal world, I would write SCSS : .block { &__element { &:hover { ... } @media screen and (min-width: 768px) { ... }…
Left to their own devices, a dev team of imperfect communication (i.e. all dev teams), will often reimplement the same things over and over. This is a waste of time and money and makes changes to codebases harder and harder. Writing more emails and sending more slack messages to explain all the features and bug fixes becomes background noise. People stop paying attention to it and…
The more I use CSS , the more I think it’s an absolute wild wild west. It’s mature, ubiquitous, yet lacks basic, common-sense features that come as a given in other similar tools. After working with several modern MVC web apps that have well architected back-ends, extensive test coverage and good documentation, I often find the stylesheets to be giant steaming piles of…
Managing complexity within an application is one of the key challenges for any software developer. Cleanly reconciling new features with existing architectures is something we strive for. After working on a sizeable Xamarin app for the last two years, the single most powerful tool that I’ve discovered is“Message Passing”, also known as Message Oriented Programming ( MOP )…
Coming to Craft CMS , one of the first things you notice is it’s interesting choice of words for describing things in the CMS . Such as… Entries Globals Singles Structures Channels A developer can quickly piece together what they mean by intuition or by checking the documentation. However for your clients, who may or may not be technically savy, it can be a huge barrier to…
Came across a crash the other day whilst trying to implement a custom ViewCellRenderer for a Xamarin iOS app I’m working on: System.InvalidOperationException: Implement IBoxedCell on cell renderer: MyApp.iOS.Controls.MyNativeViewCell, MyAppiOS, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null at…
tl;dr 6 pieces of advice for CS undergraduates: It’s ok not knowing what you want to do after university. Apply for placements and internships. Get to know as many as of your fellow CS undergrads as possible. Work on stuff on the side. Keep your finger on the tech pulse. Do SOME studying. Before I started my Computer Science degree at university, I had barely written a single line of…