Author Archive

Text-only websites

Thursday, June 25th, 2020

I really liked this from Sijmen J. Mulder regarding text-only websites. Web bloat has been a thing for quite a few years now, and it’s good to see that others enjoy the simpler times of text with simple formatting.

I’ve been toying with the idea myself for a long time to do similarly. As an example – my previous post takes over 500 kB to load, while the HTML to build this as text-only is 1.4kB.

Clearing Out

Monday, June 15th, 2020

The current situation has left me in the house around 24h a day. I get out for walks every few days to grab the mail from the office, or to grocery shop. I’ve gotten used to being in the house, and enjoyed the freedom that comes from remote work.

I used to be a minimalist, or at least strived to be one. Living more in tune with my home environment has dramatically changed how I feel. The less I have, the more I can really enjoy what I have. There’s always been a connection for me between how organised/clean my space is and my state of being.

It’s been nice to take control of it again. So far I’ve:

  • Cleared out my digital life: collected journal articles centrally, unpublished older blog posts I no longer enjoyed, organised important documentation, cleared old accounts.
  • Sorted my drawers of paper, most of it being useless notes. Fixed my Doxie and started trying to go as paperless as possible.
  • Trashed old junk I’ve had lying around, unused for months if not years. Do I really need 20 micro-usb cables or just 1-2 really good ones?
  • Started organising and finding places for things to live.

It will be a long time till I’m done, and I am tempted to do Marie Kondo’s techniques.

Resonating Ideas – Remote & Management

Sunday, March 8th, 2020

With the current COVID-19 panic going on (thankfully I went to Costco months ago and it feels like I still have hundreds of loo rolls left), I’ve been checking Twitter a bit more often. It’s been a great week for getting a a few crisp thoughts together on myself and management strategies ahead.

Remote work

I’ve always been an advocate for remote work, I’ve experienced it’s benefits but haven’t managed to do full time. However, as our company became more distributed I was keen to level-out the playing field for all. As many companies unused to this approach have suddenly been thrown into the deep end, there’s loads of advice being thrown about:


This tweet has been resonating with me for days:-

Recently things have been a bit busy, and I’ve not really had time to focus and push vision. When I don’t take the time to align myself, it feels like the rest of my direct team fluster also.

When I first started my current role I started documenting my process, flow, and needs clearly so I could keep them clear in my mind, and as I was always working on it, things were constantly changing. However, this hasn’t been updated for a while and my knowledgebase fell down.

It’s made me want to set time aside in my week to do the same, retrospectively see how the week went, revisit and update what my goals are, the messages I want to relay, and work on documenting myself and how I work.

I’m just about finished reading The Manager’s Path (Camille Fournier), and it’s helped me align my goals and think how better to work with my team as well. It’s no doubt going to be one of those books always on my desk, as I set it’s principles clear in my mind.

Straight outta Uni: Interviews

Friday, November 15th, 2019

I’m looking to share things I’ve faced personally or seen as part of regularly interviewing candidates – to give the best possible start to new people joining the web development industry.

It’s graduation season here in Dundee and I’m seeing a lot of new candidates dressed up in their gowns facing the winter weather. Bristling with enthusiasm, many of these candidates are on the look out for their new role in their chosen industry.

“In the last five years, the PHP ecosystem has improved dramatically. So much to the point that it barely resembles its former self. Yes, today, PHP is a joy to use. Sure, it has its quirks, but so does every language.”

Universities are slow at delivering changes to their curriculum and in my experience help shape two key things: your desire to learn, and the fundamentals to move forward. It’s a massive shift from high school, where your expectations are clearly defined.

As the curriculum can be aged, there’s cases where what you’re learning may not include any of the systems or tools you may use day-to-day. Often junior candidates have not heard of Composer, Laravel, Symfony, Drupal, or even WordPress – despite its strong use in the PHP ecosystem.

Expectations vs. Reality

At uni, it’s not just about the work in front of you. You need to apply and use it to move forward. Fundamentals will be there, but it’s up to you to understand these and apply them in practice.

You will be given projects throughout your university career. Some will be solo projects, and some you will work as a team. The problem comes from this experience being the only experience you have to show when it comes to sending in your CV.

Applying your learning to other projects shows prospective employers that you can learn self-sufficiently, and are exited to use the skills you’re learning.

I made a lot of small things when I was in uni, which showed skills I’d later use today. A few examples:

  • I built small websites for friends and family, testing my HTML/CSS skills. I later built that into a freelance business, giving me a little more income at uni – learning WordPress along the way.
  • I learned how to work with APIs, first to make an ‘Is it t-shirt weather’ page (similar to – which used location data and weather APIs.
  • I made extensions for an up-and-coming social network, Plurk, which taught me how to handle logins and encryption, scheduled tasks, and working with larger amounts of data.

Stepping Up

When I’m reviewing a junior developer I’m looking at their mindset rather than their experience. Have they shown that they have a can-do mindset, and a strong ability to learn? If so, we can help them move things forward. If a candidate has done little to show self-learning, then this can look unfavourably.

What could set me apart?

  • Show a learning mindset by showing what other work you’ve done out-with of coursework.
  • Be aware of the necessary skills, especially in PHP, as universities will be behind. There will be tools we use daily, such as Composer, you may not be aware of at all. I always recommend PHP The Right Way or Laracasts to provide a step up.
  • Share what you’ve done in your CV – if you don’t tell us, we won’t know!
  • Attend a few local meetups. There you can meet practitioners, and often learn – with talks often aimed at all levels. In some cases, conferences sell discounted tickets (let us know if you attend!).

Edit 2020-06-13: I never did end up making this a series, so removing reference to that. Maybe sometime in the future!

Ego and feedback

Saturday, November 9th, 2019

I was an awkward kid growing up. My emotions ran easily and, to be honest to myself, my attempts to do better at school made me a bit of an ass. I hated PE or basically any sort of physical activities growing up due to terrible coordination, so I ended up liking very few sports. What does a bad workman do? Yep – I blamed the tools.

The same happened with artistic endeavors too. I brought in acrylics and eventually my own graphics tablet rather than using the school supplies. I failed basic cycle proficiency too because I wanted to use a brand new bike I hadn’t gotten used to yet, because I thought it would make me better.

In areas I failed short I continually used tools and tech to make me, at least, feel and perform better. It was a crutch. In essence, my ego and desire to perform well meant that I never took the time to improve personally and receive necessary feedback. My hotheadedness meant I was never open for that to happen.

What have I learned?

As a mentee and mentor, the best attributes you can have is humility, openness to feedback, and a willingness to learn new things. It’s so important to me as an employer and I actively search for candidates with those attributes. As a candidate, I want to know that you can be a confident member of my team, but ultimately be able to work well with others and take feedback constructively.

As well as taking feedback well, I’ve learned that giving feedback is a skill in itself. Sometimes, the recipient is right to be offended by some feedback – where the reviewer may be overly harsh or not consider situations. Personally, I like to:

  • Ensure I’m not making assumptions. Rather than something being wrong, ask why something has been done this way and suggest – rather than enforce. If enforcement is required, then be clear as to why this course of action is necessary.
  • I love Manager Tools’ feedback process, and it’s made me better at giving and receiving it.
  • The closer to 1:1 feedback in-person you can give, the better. The first time I did a code review, it was with a team member over email who had no idea it was coming (I had been requested to do it by a manager). With emails, tone is obviously missed, so always find a way to ensure you’re communicating well. I love Zoom calls when remote, as folks can see and hear me clearly while going over things on screen. When email or text is the only option, I use emojis everywhere!
  • Clearly say “I don’t know!”, or let folks know your weaknesses. As a boss, I’m always trying to remind the team that it’s perfectly fine to not have the answer, not know something. Ultimately, I want to know what you’re not confident in so I can help out – or direct you to who can.


Wednesday, November 6th, 2019

It’s rare to have these two actively cuddling, Ollie loves his personal space, so it’s nice to see them relaxing together!


Tuesday, November 5th, 2019

Directing a company, supporting software/clients, and managing a team has made my life a lot more complicated in recent years. When I first started working professionally, all of my notes were forever stored in Evernote Premium. My only problem came from my lack of organisation, so I relied a lot on the search rather than collections and tags – making it a little bit of a mess for me to manage. It didn’t help that Linux support was pretty terrible at the time, with the web interface being very laggy when it first released.

I ended up going a little crazy and trying my own MediaWiki, but found it overkill for personal access and updating was necessary, something I didn’t always do frequently.

Looking for better structure, I moved over to Notion earlier on this year. It’s been very fluid, and forces you to think a little on structure before you author content. I really like it’s open flow to generate and embed content, and expand as necessary. I quickly hit the free limit and went to pro, but I started feeling like it was a little bit too much for what I need.

A few years ago I started a new GitHub repo – til (today I learned). Aimed to focus on a fact that could be categorised and listed, it allowed me somewhere to show as I grew in different areas. Cool little code snippets could be kept easily, but I didn’t keep it up – but I was thinking too small.

In an earlier post I’d talked about Steve Wolfram and his processes, and he had a Wolfram Notebook which he keeps all his info. Similar people have started knowledgebases and making them public on GitHub:

These knowledgebases are Markdown files with simple folder structures, which can be easily edited and synced to wherever I need them. On my machine, I have VS Code setup with markdown preview – and it couldn’t be easier. Since I’ve started it’s helped me keep track of:

  • Tasks, rather than using Todoist or Bullet Journal.
  • Meeting Notes, rather than using Evernote.
  • Documentation, for processes and personal projects.
  • Learning, through notes from books and things I’ve learned along the way.

It’s entirely lo-fi and easy to update, and I’m loving it. 🙂 I’m keeping it private, but I might end up making a public one with more shared knowledge in future.

Featured image by Patrick Tomasso –

Secrets of the Eloquent

Friday, April 5th, 2019

I was really surprised with some of the cool functionality that’s been unearthed with this recent Laravel Daily post. Some of these I’ve seen quite often and have been ones I’ve done myself!

One of my pet peeves for a long time has been what to do if the relationship is empty, turns out there’s an withDefault() method that can be added to the end of a relationship.

Personal Infrastructures

Wednesday, February 27th, 2019

I was blown away recently with the amount of detail that Steven Wolfram’s put on his personal infrastructure and how he works as a remote CEO.

What I’m impressed with here is the level of transparency and the fact that you can tell this infrastructure moved as his needs changed. Systems don’t stay the same forever, but I am amazed how much his space mirrors his needs. When I look at my workspace, it’s chaos in comparison. It’s definitely worth thinking of what’s needed as part of any infrastructure and how to improve it, and I’m addicted to posts like these!

Be nice, be clear

Thursday, February 21st, 2019

When I read Josh Thompson’s recent post about Slack messages, it resonated with me a big deal. Basically, it described a thing that happens to me a lot. Slack is a great chat app, but it makes some people chat the same way we would do in real life. While chat can most definitely be asynchronous, some people’s use of the software forces you to be immediate and distract you from the your own needs and focus.

I see it a lot, with people who start a chat just by saying ‘Hi’, with no further context – requiring you to spend the time and effort in order to figure out somebody’s needs or questions. It gets worse when the same real-life conversational cues are placed in the way before their question.

Them (1pm): Hey

Me (1:05pm): Hey

Them (1:10pm): How are you? 🙂

Me (1:15pm). I’m fine thanks, how are you?

Them (1:20pm): I’m good thanks.

Me: …

Them (1:30pm): Can I ask you a question?

Me: …

I’m more than happy to be conversational when we’re catching up but it’s frustrating when all you’re really asking is a question you need to do you work. Josh makes this clear: write whole messages that explain what you need and when you need a response.